/*
 * Masterlink WordPress Theme — 主样式表
 * 微茗智能企业官网，基于 React 项目视觉效果还原
 * 纯 CSS 编写，无构建工具/预处理器依赖
 */

/* ============================================================
   1. CSS Reset & 基础样式
   ============================================================ */

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: Arial, "Microsoft YaHei", sans-serif;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img,
video {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: inherit;
}

button {
    font: inherit;
    color: inherit;
}

/* ============================================================
   2. CSS 变量 — 全局颜色系统
   ============================================================ */

:root {
    /* 主色调 — 青绿色 */
    --color-primary: #3b8e8e;
    --color-primary-alt: #3b8e91;
    --color-primary-2: #059692;
    --color-primary-3: #009795;
    --color-primary-4: #008f8f;
    --color-primary-5: #48bebc;

    /* 强调色 — CTA 按钮金色 */
    --color-accent: #ffc62e;

    /* 背景色 */
    --color-bg-dark: #0e1421;
    --color-bg-light: #f2f1f5;

    /* 文字色 */
    --color-text: #333;
    --color-text-light: #eee;
    --color-text-dim: #999;
    --color-text-muted: #666;

    /* 边框 */
    --color-border-light: #dcdcdc;
    --color-border: #ddd;
}

/* ============================================================
   3. 定位工具类 (Position)
   ============================================================ */

.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.fixed {
    position: fixed;
}

.sticky {
    position: sticky;
}

/* inset */
.inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.inset-x-0 {
    left: 0;
    right: 0;
}

.inset-y-0 {
    top: 0;
    bottom: 0;
}

.top-0 {
    top: 0;
}

.top-1\/2 {
    top: 50%;
}

.top-4 {
    top: 16px;
}

.top-\[76px\] {
    top: 76px;
}

.top-\[92px\] {
    top: 92px;
}

.top-\[108px\] {
    top: 108px;
}

.right-0 {
    right: 0;
}

.right-3 {
    right: 12px;
}

.right-4 {
    right: 16px;
}

.right-6 {
    right: 24px;
}

.right-\[258px\] {
    right: 258px;
}

.bottom-0 {
    bottom: 0;
}

.bottom-\[11\%\] {
    bottom: 11%;
}

.bottom-\[12\%\] {
    bottom: 12%;
}

.bottom-36 {
    bottom: 144px;
}

.left-0 {
    left: 0;
}

.left-3 {
    left: 12px;
}

.left-6 {
    left: 24px;
}

.left-1\/2 {
    left: 50%;
}

/* z-index */
.z-10 {
    z-index: 10;
}

.z-\[25\] {
    z-index: 25;
}

.z-30 {
    z-index: 30;
}

.z-40 {
    z-index: 40;
}

.z-50 {
    z-index: 50;
}

/* ============================================================
   4. 显示工具类 (Display)
   ============================================================ */

.block {
    display: block;
}

.inline-block {
    display: inline-block;
}

.inline-flex {
    display: inline-flex;
}

.flex {
    display: flex;
}

.grid {
    display: grid;
}

.hidden {
    display: none;
}

.contents {
    display: contents;
}

/* ============================================================
   5. Flex & Grid 布局
   ============================================================ */

/* Flexbox */
.flex-col {
    flex-direction: column;
}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-nowrap {
    flex-wrap: nowrap;
}

.flex-1 {
    flex: 1 1 0%;
}

.shrink-0 {
    flex-shrink: 0;
}

.items-center {
    align-items: center;
}

.items-end {
    align-items: flex-end;
}

.justify-center {
    justify-content: center;
}

.justify-between {
    justify-content: space-between;
}

.justify-end {
    justify-content: flex-end;
}

.justify-items-center {
    justify-items: center;
}

.justify-items-end {
    justify-items: end;
}

.place-items-center {
    place-items: center;
}

.content-start {
    align-content: flex-start;
}

.content-between {
    align-content: space-between;
}

.self-start {
    align-self: flex-start;
}

.self-center {
    align-self: center;
}

.self-end {
    align-self: flex-end;
}

/* Grid */
.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

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

.grid-rows-\[1fr_auto\] {
    grid-template-rows: 1fr auto;
}

.grid-flow-col {
    grid-auto-flow: column;
}

.auto-cols-\[minmax\(210px\2c 260px\)\] {
    grid-auto-columns: minmax(210px, 260px);
}

/* gap */
.gap-1 {
    gap: 4px;
}

.gap-1\.5 {
    gap: 6px;
}

.gap-2 {
    gap: 8px;
}

.gap-3 {
    gap: 12px;
}

.gap-4 {
    gap: 16px;
}

.gap-5 {
    gap: 20px;
}

.gap-6 {
    gap: 24px;
}

.gap-7 {
    gap: 28px;
}

.gap-8 {
    gap: 32px;
}

.gap-10 {
    gap: 40px;
}

.gap-12 {
    gap: 48px;
}

.gap-\[60px\] {
    gap: 60px;
}

/* ============================================================
   6. 尺寸工具类 (Width / Height)
   ============================================================ */

.w-5 {
    width: 20px;
}

.w-6 {
    width: 24px;
}

.w-7 {
    width: 28px;
}

.w-10 {
    width: 40px;
}

.w-11 {
    width: 44px;
}

.w-12 {
    width: 48px;
}

.w-14 {
    width: 56px;
}

.w-16 {
    width: 64px;
}

.w-28 {
    width: 112px;
}

.w-40 {
    width: 160px;
}

.w-\[70px\] {
    width: 70px;
}

.w-\[90px\] {
    width: 90px;
}

.w-\[132px\] {
    width: 132px;
}

.w-\[140px\] {
    width: 140px;
}

.w-\[164px\] {
    width: 164px;
}

.w-\[166px\] {
    width: 166px;
}

.w-\[180px\] {
    width: 180px;
}

.w-\[244px\] {
    width: 244px;
}

.w-full {
    width: 100%;
}

.h-0\.5 {
    height: 2px;
}

.h-5 {
    height: 20px;
}

.h-6 {
    height: 24px;
}

.h-7 {
    height: 28px;
}

.h-8 {
    height: 32px;
}

.h-9 {
    height: 36px;
}

.h-10 {
    height: 40px;
}

.h-11 {
    height: 44px;
}

.h-12 {
    height: 48px;
}

.h-13\.5 {
    height: 54px;
}

.h-14 {
    height: 56px;
}

.h-19 {
    height: 76px;
}

.h-23 {
    height: 92px;
}

.h-28 {
    height: 112px;
}

.h-\[31px\] {
    height: 31px;
}

.h-\[42px\] {
    height: 42px;
}

.h-\[60px\] {
    height: 60px;
}

.h-\[68px\] {
    height: 68px;
}

.h-\[70px\] {
    height: 70px;
}

.h-\[140px\] {
    height: 140px;
}

.h-\[200px\] {
    height: 200px;
}

.h-\[220px\] {
    height: 220px;
}

.h-\[240px\] {
    height: 240px;
}

.h-full {
    height: 100%;
}

.h-px {
    height: 1px;
}

.min-h-10 {
    min-height: 40px;
}

.min-h-\[43px\] {
    min-height: 43px;
}

.min-h-\[54px\] {
    min-height: 54px;
}

.min-h-\[76px\] {
    min-height: 76px;
}

.min-h-\[120px\] {
    min-height: 120px;
}

.min-h-\[200px\] {
    min-height: 200px;
}

.min-h-\[280px\] {
    min-height: 280px;
}

.min-h-\[540px\] {
    min-height: 540px;
}

.min-h-screen {
    min-height: 100vh;
}

.min-w-0 {
    min-width: 0;
}

.min-w-9 {
    min-width: 36px;
}

.min-w-12 {
    min-width: 48px;
}

.min-w-\[80px\] {
    min-width: 80px;
}

.min-w-\[100px\] {
    min-width: 100px;
}

.min-w-\[112px\] {
    min-width: 112px;
}

.max-w-2xl {
    max-width: 672px;
}

.max-w-4xl {
    max-width: 896px;
}

.max-w-\[390px\] {
    max-width: 390px;
}

.max-w-full {
    max-width: 100%;
}

.max-w-none {
    max-width: none;
}

.max-h-\[calc\(100vh-76px\)\] {
    max-height: calc(100vh - 76px);
}

.w-\[min\(1500px\2c calc\(100\%-32px\)\)\] {
    width: min(1500px, calc(100% - 32px));
}

.w-\[min\(1200px\2c calc\(100\%_-_32px\)\)\] {
    width: min(1200px, calc(100% - 32px));
}

.w-\[min\(1240px\2c calc\(100\%_-_32px\)\)\] {
    width: min(1240px, calc(100% - 32px));
}

.w-\[min\(1700px\2c calc\(100\%_-_32px\)\)\] {
    width: min(1700px, calc(100% - 32px));
}

.w-\[min\(560px\2c calc\(100\%-32px\)\)\] {
    width: min(560px, calc(100% - 32px));
}

.w-\[min\(220px\2c 100\%\)\] {
    width: min(220px, 100%);
}

.w-\[min\(140px\2c 100\%\)\] {
    width: min(140px, 100%);
}

/* ============================================================
   7. 间距工具类 (Margin / Padding)
   ============================================================ */

.m-0 {
    margin: 0;
}

.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

.mt-2 {
    margin-top: 8px;
}

.mt-3 {
    margin-top: 12px;
}

.mt-4 {
    margin-top: 16px;
}

.mt-5 {
    margin-top: 20px;
}

.mt-8 {
    margin-top: 32px;
}

.mt-10 {
    margin-top: 40px;
}

.mt-\[17px\] {
    margin-top: 17px;
}

.mt-\[30px\] {
    margin-top: 30px;
}

.mt-auto {
    margin-top: auto;
}

.mb-1 {
    margin-bottom: 4px;
}

.mb-4 {
    margin-bottom: 16px;
}

.mb-6 {
    margin-bottom: 24px;
}

.mb-8 {
    margin-bottom: 32px;
}

.mb-10 {
    margin-bottom: 40px;
}

.ml-6 {
    margin-left: 24px;
}

.p-0 {
    padding: 0;
}

.p-3 {
    padding: 12px;
}

.p-4 {
    padding: 16px;
}

.p-6 {
    padding: 24px;
}

.p-8 {
    padding: 32px;
}

.px-3 {
    padding-left: 12px;
    padding-right: 12px;
}

.px-4 {
    padding-left: 16px;
    padding-right: 16px;
}

.px-5 {
    padding-left: 20px;
    padding-right: 20px;
}

.px-6 {
    padding-left: 24px;
    padding-right: 24px;
}

.px-8 {
    padding-left: 32px;
    padding-right: 32px;
}

.px-\[9\%\] {
    padding-left: 9%;
    padding-right: 9%;
}

.py-1 {
    padding-top: 4px;
    padding-bottom: 4px;
}

.py-1\.5 {
    padding-top: 6px;
    padding-bottom: 6px;
}

.py-2 {
    padding-top: 8px;
    padding-bottom: 8px;
}

.py-3 {
    padding-top: 12px;
    padding-bottom: 12px;
}

.py-5 {
    padding-top: 20px;
    padding-bottom: 20px;
}

.py-6 {
    padding-top: 24px;
    padding-bottom: 24px;
}

.py-7 {
    padding-top: 28px;
    padding-bottom: 28px;
}

.py-12 {
    padding-top: 48px;
    padding-bottom: 48px;
}

.py-16 {
    padding-top: 64px;
    padding-bottom: 64px;
}

.py-20 {
    padding-top: 80px;
    padding-bottom: 80px;
}

.py-\[76px\] {
    padding-top: 76px;
    padding-bottom: 76px;
}

.pt-\[12\%\] {
    padding-top: 12%;
}

.pt-\[67px\] {
    padding-top: 67px;
}

.pt-\[76px\] {
    padding-top: 76px;
}

.pb-2 {
    padding-bottom: 8px;
}

.pb-8 {
    padding-bottom: 32px;
}

.pb-\[12\%\] {
    padding-bottom: 12%;
}

.pl-5 {
    padding-left: 20px;
}

.pl-\[22px\] {
    padding-left: 22px;
}

/* ============================================================
   8. 文字排版工具类 (Typography)
   ============================================================ */

/* 字号 */
.text-3xl {
    font-size: 30px;
}

.text-2xl {
    font-size: 24px;
}

.text-lg {
    font-size: 18px;
}

.text-base {
    font-size: 16px;
}

.text-sm {
    font-size: 14px;
}

.text-\[12px\] {
    font-size: 12px;
}

.text-\[13px\] {
    font-size: 13px;
}

.text-\[14px\] {
    font-size: 14px;
}

.text-\[15px\] {
    font-size: 15px;
}

.text-\[16px\] {
    font-size: 16px;
}

.text-\[17px\] {
    font-size: 17px;
}

.text-\[18px\] {
    font-size: 18px;
}

.text-\[20px\] {
    font-size: 20px;
}

.text-\[22px\] {
    font-size: 22px;
}

.text-\[24px\] {
    font-size: 24px;
}

.text-\[26px\] {
    font-size: 26px;
}

.text-\[28px\] {
    font-size: 28px;
}

.text-\[30px\] {
    font-size: 30px;
}

/* 字重 */
.font-normal {
    font-weight: 400;
}

.font-medium {
    font-weight: 500;
}

.font-semibold {
    font-weight: 600;
}

.font-bold {
    font-weight: 700;
}

/* 行高 */
.leading-5 {
    line-height: 20px;
}

.leading-6 {
    line-height: 24px;
}

.leading-7 {
    line-height: 28px;
}

.leading-8 {
    line-height: 32px;
}

.leading-\[28px\] {
    line-height: 28px;
}

.leading-\[31px\] {
    line-height: 31px;
}

.leading-\[32px\] {
    line-height: 32px;
}

.leading-none {
    line-height: 1;
}

.leading-tight {
    line-height: 1.25;
}

/* 文字对齐 */
.text-center {
    text-align: center;
}

/* 文字颜色 */
.text-slate-100 {
    color: #f1f5f9;
}

.text-slate-200 {
    color: #e2e8f0;
}

.text-slate-300 {
    color: #cbd5e1;
}

.text-slate-400 {
    color: #94a3b8;
}

.text-slate-500 {
    color: #64748b;
}

.text-slate-600 {
    color: #475569;
}

.text-slate-900 {
    color: #0f172a;
}

.text-slate-950 {
    color: #020617;
}

.text-white {
    color: #fff;
}

.text-\[--color-text\] {
    color: var(--color-text);
}

.text-\[\#333\] {
    color: #333;
}

.text-\[\#555\] {
    color: #555;
}

.text-\[\#666\] {
    color: #666;
}

.text-\[\#777\] {
    color: #777;
}

.text-\[\#999\] {
    color: #999;
}

.text-\[\#eee\] {
    color: #eee;
}

.text-\[\#ccc\] {
    color: #ccc;
}

.text-amber-400 {
    color: #fbbf24;
}

.text-\[--color-primary\] {
    color: var(--color-primary);
}

.text-\[\#3b8e8e\] {
    color: var(--color-primary);
}

.text-\[\#48bebc\] {
    color: var(--color-primary-5);
}

.text-\[\#009795\] {
    color: var(--color-primary-3);
}

.text-gray-400 {
    color: #9ca3af;
}

.text-gray-600 {
    color: #4b5563;
}

/* 文字溢出 */
.whitespace-normal {
    white-space: normal;
}

.whitespace-nowrap {
    white-space: nowrap;
}

.break-words {
    word-break: break-word;
    overflow-wrap: break-word;
}

/* ============================================================
   9. 背景工具类 (Background)
   ============================================================ */

.bg-transparent {
    background-color: transparent;
}

.bg-white {
    background-color: #fff;
}

.bg-black\/35 {
    background-color: rgba(0, 0, 0, 0.35);
}

.bg-black\/40 {
    background-color: rgba(0, 0, 0, 0.4);
}

.bg-black\/50 {
    background-color: rgba(0, 0, 0, 0.5);
}

.bg-black\/55 {
    background-color: rgba(0, 0, 0, 0.55);
}

.bg-black\/60 {
    background-color: rgba(0, 0, 0, 0.6);
}

.bg-slate-100 {
    background-color: #f1f5f9;
}

.bg-slate-800 {
    background-color: #1e293b;
}

.bg-slate-900 {
    background-color: #0f172a;
}

.bg-slate-950 {
    background-color: var(--color-bg-dark);
}

.bg-slate-950\/45 {
    background-color: rgba(14, 20, 33, 0.45);
}

.bg-slate-950\/95 {
    background-color: rgba(14, 20, 33, 0.95);
}

.bg-slate-950\/96 {
    background-color: rgba(14, 20, 33, 0.96);
}

.bg-white\/5 {
    background-color: rgba(255, 255, 255, 0.05);
}

.bg-white\/10 {
    background-color: rgba(255, 255, 255, 0.1);
}

.bg-white\/12 {
    background-color: rgba(255, 255, 255, 0.12);
}

.bg-white\/30 {
    background-color: rgba(255, 255, 255, 0.3);
}

.bg-white\/90 {
    background-color: rgba(255, 255, 255, 0.9);
}

.bg-\[\#f2f1f5\] {
    background-color: var(--color-bg-light);
}

.bg-\[\#f4f4f4\] {
    background-color: #f4f4f4;
}

.bg-\[\#ffc62e\] {
    background-color: var(--color-accent);
}

.bg-\[\#008f8f\] {
    background-color: var(--color-primary-4);
}

.bg-\[\#009795\] {
    background-color: var(--color-primary-3);
}

.bg-\[\#3b8e91\]\/75 {
    background-color: rgba(59, 142, 145, 0.75);
}

.bg-\[\#3b8e91\]\/92 {
    background-color: rgba(59, 142, 145, 0.92);
}

.bg-\[rgba\(14\2c 20\2c 33\2c 0\.8\)\] {
    background-color: rgba(14, 20, 33, 0.8);
}

.bg-\[rgba\(14\2c 20\2c 33\2c 0\.92\)\] {
    background-color: rgba(14, 20, 33, 0.92);
}

.bg-cover {
    background-size: cover;
}

.bg-center {
    background-position: center;
}

.bg-no-repeat {
    background-repeat: no-repeat;
}

.bg-\[linear-gradient\(to_right\2c \#00ffde\2c \#008f8f\)\] {
    background: linear-gradient(to right, #00ffde, #008f8f);
}

/* ============================================================
   10. 边框工具类 (Border)
   ============================================================ */

.border {
    border-width: 1px;
    border-style: solid;
}

.border-0 {
    border-width: 0;
}

.border-2 {
    border-width: 2px;
}

.border-b {
    border-bottom-width: 1px;
    border-bottom-style: solid;
}

.border-t {
    border-top-width: 1px;
    border-top-style: solid;
}

.border-transparent {
    border-color: transparent;
}

.border-white {
    border-color: #fff;
}

.border-white\/10 {
    border-color: rgba(255, 255, 255, 0.1);
}

.border-white\/15 {
    border-color: rgba(255, 255, 255, 0.15);
}

.border-white\/70 {
    border-color: rgba(255, 255, 255, 0.7);
}

.border-\[\#ddd\] {
    border-color: #ddd;
}

.border-\[\#dcdcdc\] {
    border-color: #dcdcdc;
}

.border-\[\#ded5c5\] {
    border-color: #ded5c5;
}

.border-\[\#3b8e8e\] {
    border-color: var(--color-primary);
}

.border-\[\#3b8e8e\]\/20 {
    border-color: rgba(59, 142, 142, 0.2);
}

.border-\[\#3b8e8e\]\/45 {
    border-color: rgba(59, 142, 142, 0.45);
}

.border-\[\#3b8e91\] {
    border-color: var(--color-primary-alt);
}

.border-\[\#3b8e91\]\/80 {
    border-color: rgba(59, 142, 145, 0.8);
}

.border-\[\#009795\] {
    border-color: var(--color-primary-3);
}

/* 圆角 */
.rounded {
    border-radius: 4px;
}

.rounded-\[5px\] {
    border-radius: 5px;
}

.rounded-\[6px\] {
    border-radius: 6px;
}

.rounded-\[8px\] {
    border-radius: 8px;
}

.rounded-lg {
    border-radius: 8px;
}

.rounded-xl {
    border-radius: 12px;
}

.rounded-full {
    border-radius: 9999px;
}

.rounded-t-lg {
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}

.last\:border-b-0:last-child {
    border-bottom-width: 0;
}

/* ============================================================
   11. 阴影效果 (Box Shadow)
   ============================================================ */

.shadow-2xl {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.shadow-lg {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}

.shadow-xl {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.shadow-\[0_16px_38px_rgba\(20\2c 30\2c 45\2c \.06\)\] {
    box-shadow: 0 16px 38px rgba(20, 30, 45, 0.06);
}

.shadow-\[0_28px_70px_rgba\(11\2c 28\2c 40\2c \.18\)\] {
    box-shadow: 0 28px 70px rgba(11, 28, 40, 0.18);
}

.shadow-\[0_0_0_1px_rgba\(230\2c 230\2c 230\2c 0\.9\)\] {
    box-shadow: 0 0 0 1px rgba(230, 230, 230, 0.9);
}

/* ============================================================
   12. 透明度 (Opacity)
   ============================================================ */

.opacity-0 {
    opacity: 0;
}

.opacity-100 {
    opacity: 1;
}

/* ============================================================
   13. Overflow
   ============================================================ */

.overflow-hidden {
    overflow: hidden;
}

.overflow-y-auto {
    overflow-y: auto;
}

.overflow-x-auto {
    overflow-x: auto;
}

.overflow-visible {
    overflow: visible;
}

/* ============================================================
   14. 对象适配 (Object Fit)
   ============================================================ */

.object-contain {
    object-fit: contain;
}

.object-cover {
    object-fit: cover;
}

/* ============================================================
   15. 变换 (Transform)
   ============================================================ */

.-translate-x-1\/2 {
    transform: translateX(-50%);
}

.-translate-x-12 {
    transform: translateX(-48px);
}

.-translate-x-24 {
    transform: translateX(-96px);
}

.-translate-x-\[132px\] {
    transform: translateX(-132px);
}

.-translate-y-1\/2 {
    transform: translateY(-50%);
}

.translate-x-3 {
    transform: translateX(12px);
}

.translate-y-1 {
    transform: translateY(4px);
}

.translate-y-2 {
    transform: translateY(8px);
}

.-translate-y-1\.5 {
    transform: translateY(-6px);
}

.scale-x-0 {
    transform: scaleX(0);
}

.scale-x-100 {
    transform: scaleX(1);
}

.rotate-45 {
    transform: rotate(45deg);
}

.origin-center {
    transform-origin: center;
}

.origin-left {
    transform-origin: left;
}

/* ============================================================
   16. 过渡 & 动画 (Transitions)
   ============================================================ */

.transition {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-colors {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-opacity {
    transition-property: opacity;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-shadow {
    transition-property: box-shadow;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-\[width\] {
    transition-property: width;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-\[opacity\2c transform\] {
    transition-property: opacity, transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-\[opacity\2c transform\2c background-color\] {
    transition-property: opacity, transform, background-color;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.duration-150 {
    transition-duration: 150ms;
}

.duration-200 {
    transition-duration: 200ms;
}

.duration-300 {
    transition-duration: 300ms;
}

.duration-500 {
    transition-duration: 500ms;
}

.duration-700 {
    transition-duration: 700ms;
}

.duration-\[600ms\] {
    transition-duration: 600ms;
}

.ease-out {
    transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

/* ============================================================
   17. 光标 & 交互
   ============================================================ */

.cursor-pointer {
    cursor: pointer;
}

.pointer-events-none {
    pointer-events: none;
}

.pointer-events-auto {
    pointer-events: auto;
}

.no-underline {
    text-decoration: none;
}

.list-none {
    list-style: none;
}

/* ============================================================
   18. before / after 伪元素工具
   ============================================================ */

.before\:absolute::before {
    position: absolute;
}

.before\:top-1\/2::before {
    top: 50%;
}

.before\:left-0::before {
    left: 0;
}

.before\:h-0\.5::before {
    height: 2px;
}

.before\:h-5::before {
    height: 20px;
}

.before\:w-0\.5::before {
    width: 2px;
}

.before\:w-5::before {
    width: 20px;
}

.before\:-translate-y-1\/2::before {
    transform: translateY(-50%);
}

.before\:-translate-y-1\.5::before {
    transform: translateY(-6px);
}

.before\:bg-white::before {
    background-color: #fff;
}

.before\:bg-\[\#3b8e8e\]::before {
    background-color: var(--color-primary);
}

.before\:content-\[\'\'\]::before {
    content: '';
}

.after\:absolute::after {
    position: absolute;
}

.after\:right-3::after {
    right: 12px;
}

.after\:bottom-0::after {
    bottom: 0;
}

.after\:left-3::after {
    left: 12px;
}

.after\:block::after {
    display: block;
}

.after\:hidden::after {
    display: none;
}

.after\:h-0\.5::after {
    height: 2px;
}

.after\:w-5::after {
    width: 20px;
}

.after\:translate-y-1::after {
    transform: translateY(4px);
}

.after\:scale-x-0::after {
    transform: scaleX(0);
}

.after\:bg-white::after {
    background-color: #fff;
}

.after\:bg-\[\#3b8e8e\]::after {
    background-color: var(--color-primary);
}

.after\:transition-transform::after {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.after\:duration-200::after {
    transition-duration: 200ms;
}

.after\:origin-center::after {
    transform-origin: center;
}

.after\:content-\[\'\'\]::after {
    content: '';
}

/* Link hover underline animation */
.hover\:after\:scale-x-100:hover::after {
    transform: scaleX(1);
}

/* ============================================================
   19. hover 交互状态
   ============================================================ */

.hover\:border-\[\#3b8e8e\]:hover {
    border-color: var(--color-primary);
}

.hover\:bg-white\/10:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.hover\:bg-white\/12:hover {
    background-color: rgba(255, 255, 255, 0.12);
}

.hover\:bg-\[\#3b8e8e\]:hover {
    background-color: var(--color-primary);
}

.hover\:bg-\[\#3b8e91\]\/75:hover {
    background-color: rgba(59, 142, 145, 0.75);
}

.hover\:bg-\[rgba\(254\2c 188\2c 0\2c 1\)\]:hover {
    background-color: rgba(254, 188, 0, 1);
}

.hover\:text-\[\#3b8e8e\]:hover {
    color: var(--color-primary);
}

.hover\:text-white:hover {
    color: #fff;
}

.hover\:text-\[\#009795\]:hover {
    color: var(--color-primary-3);
}

.hover\:text-gray-600:hover {
    color: #4b5563;
}

.hover\:opacity-90:hover {
    opacity: 0.9;
}

.hover\:shadow-\[0_10px_28px_rgba\(0\2c 0\2c 0\2c 0\.1\)\]:hover {
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);
}

/* ============================================================
   20. 容器 & 区块布局
   ============================================================ */

.container {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 640px) {
    .container {
        max-width: 640px;
    }
}

@media (min-width: 768px) {
    .container {
        max-width: 768px;
    }
}

@media (min-width: 1024px) {
    .container {
        max-width: 1024px;
    }
}

@media (min-width: 1280px) {
    .container {
        max-width: 1280px;
    }
}

/* ============================================================
   21. 多行截断 (Line Clamp)
   ============================================================ */

.line-clamp-1 {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ============================================================
   22. Prose — 文章内容样式
   ============================================================ */

.prose {
    color: var(--color-text);
    line-height: 1.75;
}

.prose h1,
.prose h2,
.prose h3,
.prose h4 {
    color: #1a1a1a;
    font-weight: 700;
    line-height: 1.3;
    margin-top: 2em;
    margin-bottom: 0.5em;
}

.prose h1 {
    font-size: 2em;
}

.prose h2 {
    font-size: 1.5em;
}

.prose h3 {
    font-size: 1.25em;
}

.prose p {
    margin-bottom: 1.25em;
}

.prose ul,
.prose ol {
    margin-bottom: 1.25em;
    padding-left: 1.625em;
}

.prose li {
    margin-bottom: 0.25em;
}

.prose img {
    margin-top: 2em;
    margin-bottom: 2em;
    border-radius: 8px;
}

.prose blockquote {
    border-left: 4px solid var(--color-primary);
    padding-left: 1em;
    margin: 1.5em 0;
    color: #666;
    font-style: italic;
}

.prose a {
    color: var(--color-primary);
    text-decoration: underline;
}

.prose a:hover {
    color: var(--color-primary-2);
}

.prose table {
    width: 100%;
    border-collapse: collapse;
    margin: 2em 0;
}

.prose th,
.prose td {
    border: 1px solid #ddd;
    padding: 8px 16px;
    text-align: left;
}

.prose th {
    background-color: #f8f8f8;
    font-weight: 600;
}

.prose pre {
    background-color: #1e293b;
    color: #e2e8f0;
    padding: 16px;
    border-radius: 8px;
    overflow-x: auto;
    margin: 1.5em 0;
}

.prose code {
    background-color: #f1f5f9;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.875em;
}

.prose pre code {
    background-color: transparent;
    padding: 0;
}

/* ============================================================
   23. Header — 固定导航栏
   ============================================================ */

/* 导航主容器高度定义 */
header.fixed {
    /* 已通过工具类定义，此处仅补充主题特有样式 */
}

/* 汉堡菜单按钮 */
header button.border-primary\/60 {
    /* 已通过工具类定义 */
}

/* 导航链接 hover 下划线动画（桌面端） */
@media (min-width: 768px) {
    header nav a.after\:block::after {
        display: block;
    }
}

/* 移动端导航面板 */
@media (max-width: 767px) {
    header .grid.hidden {
        display: none;
    }

    header nav .w-full {
        max-width: 100%;
    }
}

/* ============================================================
   24. 下拉菜单 (Dropdown)
   ============================================================ */

/* 桌面端 group hover 显示下拉 */
@media (min-width: 768px) {
    .group:hover .md\:group-hover\:pointer-events-auto {
        pointer-events: auto;
    }

    .group:hover .md\:group-hover\:opacity-100 {
        opacity: 1;
    }
}

/* ============================================================
   25. Hero Banner — 首页轮播
   ============================================================ */

/* 轮播容器 */
.ml-banner {
    position: relative;
    overflow: hidden;
}

/* 轮播幻灯片 */
.ml-banner-slide {
    position: absolute;
    inset: 0;
    transition: opacity 0.7s ease;
}

.ml-banner-slide.opacity-0 {
    opacity: 0;
    pointer-events: none;
}

.ml-banner-slide.opacity-100 {
    opacity: 1;
}

/* 轮播箭头按钮 */
.ml-banner-prev,
.ml-banner-next {
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.ml-banner-prev:hover,
.ml-banner-next:hover {
    background-color: var(--color-primary);
}

/* ============================================================
   26. 产品卡片 (Product Cards)
   ============================================================ */

/* 产品卡片容器 — 背景图 + 遮罩 */
article[class*="group"] {
    /* 遮罩层已在模板中通过绝对定位 div 实现 */
}

/* group hover 时遮罩颜色变化 */
.group:hover .group-hover\:bg-\[\#3b8e91\]\/78 {
    background-color: rgba(59, 142, 145, 0.78);
}

/* hover 时详情按钮显示 */
.group:hover .group-hover\:opacity-100 {
    opacity: 1;
}

/* hover 时装饰图标隐藏 */
.group:hover .group-hover\:opacity-0 {
    opacity: 0;
}

/* hover 时图片缩放 */
.group:hover .group-hover\:scale-\[1\.03\] {
    transform: scale(1.03);
}

/* ============================================================
   27. 企业指标卡片 (Metrics)
   ============================================================ */

/* 已在模板中通过内联样式和工具类定义 */
/* .bg-slate-950/45 + .text-amber-400 实现半透明暗色 + 金色数字 */

/* ============================================================
   28. 首页新闻卡片 (News Cards — Home)
   ============================================================ */

/* 新闻卡片 grid 布局，图片 + 文字两端排版 */
/* hover 时整个卡片背景变 #059692 */

.group:hover .group-hover\:bg-\[\#059692\] {
    background-color: var(--color-primary-2);
}

.group:hover .group-hover\:text-white {
    color: #fff;
}

.group:hover .group-hover\:text-white\/65 {
    color: rgba(255, 255, 255, 0.65);
}

/* ============================================================
   29. 新闻列表页 (Category / News List)
   ============================================================ */

/* 时间背景图标样式已在模板内联 style 中定义 */
/* 分页按钮样式 */

/* "了解更多"渐变按钮 */
a[style*="linear-gradient"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ============================================================
   30. 文章详情页 (Single Post)
   ============================================================ */

/* 侧边栏文章列表 */
aside .group:hover .group-hover\:text-\[\#3b8e8e\] {
    color: var(--color-primary);
}

/* 标签云 */
.rounded-full {
    /* 已通过工具类定义 */
}

/* ============================================================
   31. 通用存档页 (Archive)
   ============================================================ */

/* 卡片列表链接 */

/* ============================================================
   32. 页面模板 (Page)
   ============================================================ */

/* 编辑器迁移内容区域样式继承 prose */

/* ============================================================
   33. 浮动联系栏 (Floating Contact Rail)
   ============================================================ */

/* 浮动联系栏容器 */
.ml-rail-item {
    position: relative;
    height: 70px;
    width: 244px;
}

/* 默认收起状态：70px 宽 */
.ml-rail-item > a,
.ml-rail-item > button {
    position: relative;
    margin-left: auto;
    display: block;
    height: 70px;
    width: 70px;
    overflow: hidden;
    border: 1px solid var(--color-primary-alt);
    background-color: #999;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    transition: width 0.3s ease-out;
    padding: 0;
    cursor: pointer;
}

.ml-rail-icon {
    display: grid;
    place-items: center;
}

.ml-rail-icon svg {
    display: block;
    width: 30px;
    height: 30px;
}

/* hover 展开到 244px */
.ml-rail-item > a:hover,
.ml-rail-item > button:hover {
    width: 244px;
}

/* 收起状态显示的图标+文字 */
.ml-rail-item > a > span:first-child,
.ml-rail-item > button > span:first-child {
    position: absolute;
    top: 0;
    right: 0;
    display: grid;
    height: 70px;
    width: 70px;
    place-items: center;
    text-align: center;
    color: #fff;
    transition: opacity 0.15s ease;
}

/* hover 时隐藏收起状态内容 */
.ml-rail-item > a:hover > span:first-child,
.ml-rail-item > button:hover > span:first-child {
    opacity: 0;
}

/* 展开状态容器 */
.ml-rail-item > a > span:last-child,
.ml-rail-item > button > span:last-child {
    position: absolute;
    top: 0;
    right: 0;
    height: 70px;
    width: 244px;
    overflow: hidden;
}

/* 展开状态背景条（从左侧展开） */
.ml-rail-item > a > span:last-child > span:first-child,
.ml-rail-item > button > span:last-child > span:first-child {
    position: absolute;
    inset-y: 0;
    left: 0;
    width: 100%;
    transform-origin: left;
    transform: scaleX(0);
    background-color: rgba(59, 142, 145, 0.92);
    transition: transform 0.3s ease-out;
}

.ml-rail-item > a:hover > span:last-child > span:first-child,
.ml-rail-item > button:hover > span:last-child > span:first-child {
    transform: scaleX(1);
}

/* 展开状态文字 */
.ml-rail-item > a > span:last-child > span:last-child,
.ml-rail-item > button > span:last-child > span:last-child {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 0 32px;
    text-align: center;
    font-size: 18px;
    line-height: 28px;
    color: #fff;
    opacity: 0;
    transition: opacity 0.15s ease;
}

.ml-rail-item > a:hover > span:last-child > span:last-child,
.ml-rail-item > button:hover > span:last-child > span:last-child {
    opacity: 1;
}

/* 微信弹窗 */
.ml-wechat-popup {
    pointer-events: none;
    position: absolute;
    top: 50%;
    right: 258px;
    width: 164px;
    transform: translateY(-50%) translateX(12px);
    border: 1px solid rgba(59, 142, 145, 0.8);
    background-color: #fff;
    padding: 12px;
    text-align: center;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    opacity: 0;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

/* 微信按钮 hover 时显示弹窗 */
.ml-rail-item > button:hover + .ml-wechat-popup {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
    pointer-events: auto;
}

/* 返回顶部按钮 */
.ml-back-top {
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

.ml-back-top.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.ml-back-top:hover {
    background-color: var(--color-primary);
}

/* ============================================================
   34. Footer — 页脚
   ============================================================ */

footer {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* Footer 链接 hover 颜色过渡 */
footer a.text-slate-400:hover {
    color: var(--color-primary);
}

/* 版权区域 */
footer .border-t {
    /* 已通过工具类定义 */
}

/* ============================================================
   35. Modal — 弹窗
   ============================================================ */

#trial-modal {
    /* 已通过内联工具类定义 */
    /* display:none 初始隐藏 */
}

#trial-modal.flex {
    display: flex;
}

/* 关闭按钮 */
#trial-modal .ml-trial-modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    font-size: 24px;
    cursor: pointer;
    color: #9ca3af;
    transition: color 0.2s;
}

#trial-modal .ml-trial-modal-close:hover {
    color: #4b5563;
}

/* ============================================================
   36. 表单样式 (Forms)
   ============================================================ */

/* 通用表单控件 */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="url"],
input[type="search"],
textarea,
select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 16px;
    font-family: inherit;
    color: var(--color-text);
    background-color: #fff;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    outline: none;
}

input:focus,
textarea:focus,
select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(59, 142, 142, 0.15);
}

/* 提交按钮 */
button[type="submit"],
input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    min-width: 112px;
    padding: 0 24px;
    border: none;
    border-radius: 8px;
    background-color: var(--color-accent);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

button[type="submit"]:hover,
input[type="submit"]:hover {
    opacity: 0.9;
}

/* 弹窗内表单（CMB2 等） */
#trial-modal form input,
#trial-modal form textarea,
#trial-modal form select {
    margin-bottom: 12px;
}

#trial-modal form button[type="submit"],
#trial-modal form input[type="submit"] {
    width: 100%;
    margin-top: 12px;
}

/* ============================================================
   37. WordPress 页面分页 (Pagination)
   ============================================================ */

.nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 15px;
    color: #666;
}

.nav-links .page-numbers {
    display: inline-flex;
    height: 36px;
    min-width: 36px;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border: 1px solid #dcdcdc;
    background-color: #fff;
    color: #666;
    text-decoration: none;
    transition: color 0.2s, border-color 0.2s;
}

.nav-links .page-numbers:hover {
    color: var(--color-primary);
}

.nav-links .page-numbers.current {
    border-color: var(--color-primary-3);
    background-color: var(--color-primary-3);
    color: #fff;
}

.nav-links .page-numbers.dots {
    border: none;
    background: transparent;
}

.nav-links .prev,
.nav-links .next {
    color: #999;
}

/* ============================================================
   38. WordPress 默认元素样式覆盖
   ============================================================ */

/* 确保 WordPress 默认对齐 */
.alignleft {
    float: left;
    margin-right: 1.5em;
    margin-bottom: 1em;
}

.alignright {
    float: right;
    margin-left: 1.5em;
    margin-bottom: 1em;
}

.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1em;
}

/* 无障碍 — 屏幕阅读器文字 */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

/* WordPress Gallery */
.gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin: 2em 0;
}

.gallery-item {
    margin: 0;
}

.gallery-icon img {
    width: 100%;
    height: auto;
}

.gallery-caption {
    font-size: 14px;
    color: #999;
    text-align: center;
    margin-top: 4px;
}

/* WordPress embeds */
.wp-caption {
    max-width: 100%;
    margin: 1.5em 0;
}

.wp-caption-text {
    font-size: 14px;
    color: #999;
    text-align: center;
    margin-top: 4px;
}

/* ============================================================
   39. 通用页面 Banner (Page/Category/Archive)
   ============================================================ */

/* banner 区域面包屑 */
.border-b.border-white\/10 a:hover {
    color: var(--color-primary);
}

/* banner 区域分类标签 */
.rounded-t-lg {
    /* 已通过工具类定义 */
}

/* ============================================================
   40. CTA 区域 (Contact CTA Section)
   ============================================================ */

#company-contact {
    background-size: cover;
    background-position: center;
}

/* ============================================================
   41. 语言切换器 (Language Switcher)
   ============================================================ */

.ml-lang-switcher {
    position: relative;
}

.ml-lang-switcher > div {
    position: absolute;
    right: 0;
    z-index: 40;
    margin-top: 8px;
    min-width: 80px;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background-color: #0f172a;
    padding: 4px 0;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

.ml-lang-switcher > div a {
    display: block;
    padding: 8px 16px;
    font-size: 14px;
    color: #fff;
    text-decoration: none;
}

.ml-lang-switcher > div a:hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: var(--color-primary);
}

/* 移动端语言切换 */
@media (max-width: 767px) {
    div.md\:hidden > div {
        position: absolute;
        right: 24px;
        z-index: 40;
        margin-top: 8px;
        min-width: 100px;
        border-radius: 8px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        background-color: #0f172a;
        padding: 4px 0;
        box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    }

    div.md\:hidden > div a {
        display: block;
        padding: 12px 16px;
        font-size: 14px;
        color: #fff;
        text-decoration: none;
        text-align: center;
    }

    div.md\:hidden > div a:hover {
        background-color: rgba(255, 255, 255, 0.1);
    }
}

/* ============================================================
   42. 响应式设计 (Responsive)
   ============================================================ */

/*
 * 断点体系：
 * - sm: 640px
 * - md: 768px
 * - lg: 1024px
 * - xl: 1280px
 * - 2xl: 1536px
 */

/* sm ≥ 640px */
@media (min-width: 640px) {
    .sm\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sm\:grid-cols-\[minmax\(240px\2c 390px\)_minmax\(0\2c 1fr\)\] {
        grid-template-columns: minmax(240px, 390px) minmax(0, 1fr);
    }

    .sm\:min-h-\[230px\] {
        min-height: 230px;
    }

    .sm\:h-full {
        height: 100%;
    }
}

/* md ≥ 768px */
@media (min-width: 768px) {
    /* Layout */
    .md\:static {
        position: static;
    }

    .md\:absolute {
        position: absolute;
    }

    .md\:fixed {
        position: fixed;
    }

    .md\:inset-x-0 {
        left: 0;
        right: 0;
    }

    .md\:top-0 {
        top: 0;
    }

    .md\:top-\[92px\] {
        top: 92px;
    }

    .md\:left-1\/2 {
        left: 50%;
    }

    .md\:flex {
        display: flex;
    }

    .md\:block {
        display: block;
    }

    .md\:hidden {
        display: none;
    }

    .md\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .md\:grid-cols-\[400px_1fr\] {
        grid-template-columns: 400px 1fr;
    }

    .md\:grid-cols-\[451px_1fr\] {
        grid-template-columns: 451px 1fr;
    }

    .md\:grid-cols-\[1\.1fr_1\.2fr_\.9fr\] {
        grid-template-columns: 1.1fr 1.2fr 0.9fr;
    }

    .md\:grid-cols-\[1fr_300px\] {
        grid-template-columns: 1fr 300px;
    }

    .md\:grid-flow-col {
        grid-auto-flow: column;
    }

    .md\:auto-cols-\[minmax\(210px\2c 260px\)\] {
        grid-auto-columns: minmax(210px, 260px);
    }

    /* Flexbox */
    .md\:flex-1 {
        flex: 1 1 0%;
    }

    .md\:flex-nowrap {
        flex-wrap: nowrap;
    }

    .md\:items-center {
        align-items: center;
    }

    .md\:justify-center {
        justify-content: center;
    }

    .md\:justify-end {
        justify-content: flex-end;
    }

    /* Sizing */
    .md\:h-13 {
        height: 52px;
    }

    .md\:h-23 {
        height: 92px;
    }

    .md\:h-\[92px\] {
        height: 92px;
    }

    .md\:h-full {
        height: 100%;
    }

    .md\:h-\[440px\] {
        height: 440px;
    }

    .md\:max-h-none {
        max-height: none;
    }

    .md\:min-h-\[660px\] {
        min-height: 660px;
    }

    .md\:min-h-\[360px\] {
        min-height: 360px;
    }

    .md\:min-h-\[440px\] {
        min-height: 440px;
    }

    .md\:w-fit {
        width: fit-content;
    }

    .md\:w-max {
        width: max-content;
    }

    .md\:max-w-\[calc\(100\%-340px\)\] {
        max-width: calc(100% - 340px);
    }

    .md\:max-w-\[calc\(100vw-32px\)\] {
        max-width: calc(100vw - 32px);
    }

    .md\:min-w-\[112px\] {
        min-width: 112px;
    }

    /* Spacing */
    .md\:px-2 {
        padding-left: 8px;
        padding-right: 8px;
    }

    .md\:px-4 {
        padding-left: 16px;
        padding-right: 16px;
    }

    .md\:px-6 {
        padding-left: 24px;
        padding-right: 24px;
    }

    .md\:px-9 {
        padding-left: 36px;
        padding-right: 36px;
    }

    .md\:px-10 {
        padding-left: 40px;
        padding-right: 40px;
    }

    .md\:px-\[54px\] {
        padding-left: 54px;
        padding-right: 54px;
    }

    .md\:py-0 {
        padding-top: 0;
        padding-bottom: 0;
    }

    .md\:py-7 {
        padding-top: 28px;
        padding-bottom: 28px;
    }

    .md\:py-8 {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    .md\:py-14 {
        padding-top: 56px;
        padding-bottom: 56px;
    }

    .md\:py-22 {
        padding-top: 88px;
        padding-bottom: 88px;
    }

    .md\:pt-\[92px\] {
        padding-top: 92px;
    }

    .md\:mx-auto {
        margin-left: auto;
        margin-right: auto;
    }

    .md\:gap-4 {
        gap: 16px;
    }

    .md\:gap-12 {
        gap: 48px;
    }

    .md\:p-0 {
        padding: 0;
    }

    /* Typography */
    .md\:text-\[13px\] {
        font-size: 13px;
    }

    .md\:text-\[20px\] {
        font-size: 20px;
    }

    .md\:text-\[28px\] {
        font-size: 28px;
    }

    .md\:text-\[34px\] {
        font-size: 34px;
    }

    .md\:text-\[36px\] {
        font-size: 36px;
    }

    .md\:text-\[42px\] {
        font-size: 42px;
    }

    .md\:text-lg {
        font-size: 18px;
    }

    .md\:leading-5 {
        line-height: 20px;
    }

    .md\:text-center {
        text-align: center;
    }

    /* Background */
    .md\:bg-transparent {
        background-color: transparent;
    }

    .md\:bg-\[rgba\(14\2c 20\2c 33\2c 0\.92\)\] {
        background-color: rgba(14, 20, 33, 0.92);
    }

    /* Border */
    .md\:border-b-0 {
        border-bottom-width: 0;
    }

    /* Overflow */
    .md\:overflow-visible {
        overflow: visible;
    }

    .md\:overflow-x-auto {
        overflow-x: auto;
    }

    /* Shadow */
    .md\:shadow-none {
        box-shadow: none;
    }

    .md\:shadow-2xl {
        box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    }

    /* Transform */
    .md\:-translate-x-1\/2 {
        transform: translateX(-50%);
    }

    .md\:-translate-x-12 {
        transform: translateX(-48px);
    }

    .md\:whitespace-normal {
        white-space: normal;
    }

    /* Effects */
    .md\:opacity-0 {
        opacity: 0;
    }

    .md\:transition-opacity {
        transition-property: opacity;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms;
    }

    .md\:duration-200 {
        transition-duration: 200ms;
    }

    .md\:pointer-events-none {
        pointer-events: none;
    }

    /* Pseudo */
    .md\:after\:block::after {
        display: block;
    }
}

/* lg ≥ 1024px */
@media (min-width: 1024px) {
    .lg\:block {
        display: block;
    }

    .lg\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lg\:px-3 {
        padding-left: 12px;
        padding-right: 12px;
    }

    .lg\:px-\[11\%\] {
        padding-left: 11%;
        padding-right: 11%;
    }

    .lg\:gap-1\.5 {
        gap: 6px;
    }

    .lg\:text-\[14px\] {
        font-size: 14px;
    }

    .lg\:text-\[16px\] {
        font-size: 16px;
    }

    .lg\:max-w-\[136px\] {
        max-width: 136px;
    }

    .lg\:max-w-\[calc\(100\%-430px\)\] {
        max-width: calc(100% - 430px);
    }

    .lg\:-translate-x-24 {
        transform: translateX(-96px);
    }
}

/* xl ≥ 1280px */
@media (min-width: 1280px) {
    .xl\:block {
        display: block;
    }

    .xl\:flex {
        display: flex;
    }

    .xl\:inline-flex {
        display: inline-flex;
    }

    .xl\:hidden {
        display: none;
    }

    .xl\:px-4 {
        padding-left: 16px;
        padding-right: 16px;
    }

    .xl\:px-12 {
        padding-left: 48px;
        padding-right: 48px;
    }

    .xl\:px-\[14\%\] {
        padding-left: 14%;
        padding-right: 14%;
    }

    .xl\:gap-2 {
        gap: 8px;
    }

    .xl\:gap-10 {
        gap: 40px;
    }

    .xl\:text-base {
        font-size: 16px;
    }

    .xl\:text-2xl {
        font-size: 24px;
    }

    .xl\:text-\[15px\] {
        font-size: 15px;
    }

    .xl\:text-\[21px\] {
        font-size: 21px;
    }

    .xl\:text-\[22px\] {
        font-size: 22px;
    }

    .xl\:text-\[32px\] {
        font-size: 32px;
    }

    .xl\:text-xl {
        font-size: 20px;
    }

    .xl\:leading-\[34px\] {
        line-height: 34px;
    }

    .xl\:max-w-\[156px\] {
        max-width: 156px;
    }

    .xl\:min-w-\[132px\] {
        min-width: 132px;
    }

    .xl\:w-\[min\(1700px\2c calc\(100\%_-_48px\)\)\] {
        width: min(1700px, calc(100% - 48px));
    }

    .xl\:-translate-x-\[132px\] {
        transform: translateX(-132px);
    }
}

/* 2xl ≥ 1536px */
@media (min-width: 1536px) {
    .\32 xl\:gap-3 {
        gap: 12px;
    }

    .\32 xl\:px-5 {
        padding-left: 20px;
        padding-right: 20px;
    }

    .\32 xl\:text-base {
        font-size: 16px;
    }

    .\32 xl\:max-w-none {
        max-width: none;
    }
}

/* ============================================================
   43. 打印样式
   ============================================================ */

/* ============================================================
   43. Homepage Migration — 首页完整迁移
   ============================================================ */

.ml-home {
    --ml-home-header-height: 76px;
    overflow: hidden;
    background: #f2f1f5;
    color: #111827;
    padding-top: var(--ml-home-header-height);
}

.ml-home-hero {
    position: relative;
    height: calc(100vh - var(--ml-home-header-height));
    height: calc(100svh - var(--ml-home-header-height));
    min-height: 560px;
    background: #0e1421;
}

.ml-home-hero .ml-banner-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.7s ease;
}

.ml-home-hero .ml-banner-slide.opacity-100 {
    z-index: 1;
    opacity: 1;
    pointer-events: auto;
}

.ml-home-hero .ml-banner-slide.opacity-0 {
    z-index: 0;
    opacity: 0;
    pointer-events: none;
}

.ml-home-hero .ml-banner-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ml-home-hero__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.18) 45%, rgba(0, 0, 0, 0.48));
}

.ml-home-hero__button {
    position: absolute;
    bottom: 12%;
    left: 50%;
    z-index: 3;
    display: inline-flex;
    min-height: 52px;
    min-width: 168px;
    transform: translateX(-50%);
    align-items: center;
    justify-content: center;
    border: 2px solid #ded5c5;
    border-radius: 5px;
    padding: 0 34px;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}

.ml-home-hero__button:hover {
    border-color: var(--color-primary);
    background: rgba(59, 142, 145, 0.75);
    color: #fff;
}

.ml-home-hero__nav {
    position: absolute;
    top: 50%;
    z-index: 4;
    display: grid;
    width: 52px;
    height: 52px;
    transform: translateY(-50%);
    place-items: center;
    border: 0;
    background: rgba(0, 0, 0, 0.5);
    color: #fff;
    font-size: 38px;
    line-height: 1;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.ml-home-hero__nav:hover {
    background: var(--color-primary);
}

.ml-home-hero__nav--prev {
    left: 28px;
}

.ml-home-hero__nav--next {
    right: 28px;
}

.ml-home-hero__dots {
    position: absolute;
    right: 0;
    bottom: 32px;
    left: 0;
    z-index: 4;
    display: flex;
    justify-content: center;
    gap: 10px;
}

.ml-home-hero__dot {
    width: 34px;
    height: 3px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.46);
    transition: background-color 0.2s ease, width 0.2s ease;
}

.ml-home-hero__dot.is-active {
    width: 48px;
    background: #fff;
}

.ml-home-section-head {
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto 42px;
    text-align: center;
}

.ml-home-section-head h2 {
    margin: 0;
    color: #020617;
    font-size: 34px;
    font-weight: 500;
    line-height: 1.25;
}

.ml-home-section-head p {
    max-width: 900px;
    margin: 12px auto 0;
    color: #475569;
    font-size: 18px;
    line-height: 1.75;
}

.ml-home-section-head--light h2,
.ml-home-section-head--light p {
    color: #fff;
}

.ml-home-products {
    padding: 64px 0;
    background: #f2f1f5;
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.55s ease, transform 0.55s ease;
}

.ml-home-products.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.ml-home-products__grid {
    display: grid;
    width: min(1240px, calc(100% - 32px));
    margin: 0 auto;
    grid-template-columns: minmax(0, 390px);
    justify-content: center;
    gap: 32px;
}

.ml-home-product-card {
    position: relative;
    width: 100%;
    max-width: 390px;
    min-height: 540px;
    overflow: hidden;
    background-color: #000;
    background-position: center;
    background-size: cover;
    box-shadow: 0 28px 70px rgba(11, 28, 40, 0.18);
}

.ml-home-product-card__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    transition: background-color 0.3s ease;
}

.ml-home-product-card:hover .ml-home-product-card__overlay {
    background: rgba(59, 142, 145, 0.78);
}

.ml-home-product-card__content {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 540px;
    grid-template-rows: minmax(0, 1fr) auto;
    row-gap: 24px;
    padding: 12% 9%;
    text-align: center;
    color: #fff;
}

.ml-home-product-card__content > div {
    display: grid;
    align-content: start;
    justify-items: center;
}

.ml-home-product-card h3 {
    max-width: 100%;
    margin: 0;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.2;
    overflow-wrap: break-word;
}

.ml-home-product-card__rule {
    display: block;
    width: 64px;
    height: 1px;
    margin: 20px auto 16px;
    background: rgba(255, 255, 255, 0.9);
}

.ml-home-product-card p {
    max-width: 100%;
    margin: 0 0 32px;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.65;
    overflow-wrap: break-word;
}

.ml-home-product-card__links {
    display: grid;
    width: 100%;
    align-content: start;
    gap: 12px;
}

.ml-home-product-card__links a {
    display: flex;
    min-width: 0;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.3);
    padding: 9px 14px;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
    overflow-wrap: anywhere;
    hyphens: auto;
    transition: background-color 0.2s ease;
}

.ml-home-product-card__links a:hover {
    background: #febc00;
    color: #fff;
}

.ml-home-product-card__detail {
    display: inline-flex;
    width: min(220px, 100%);
    min-height: 54px;
    margin: 0 auto;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
    border-radius: 999px;
    padding: 8px 20px;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
    opacity: 0;
    transition: opacity 0.2s ease, background-color 0.2s ease;
}

.ml-home-product-card:hover .ml-home-product-card__detail {
    opacity: 1;
}

.ml-home-product-card__detail:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

.ml-home-product-card__mark {
    position: absolute;
    bottom: 11%;
    left: 50%;
    display: grid;
    width: 56px;
    height: 56px;
    transform: translateX(-50%) rotate(45deg);
    grid-template-columns: repeat(2, 20px);
    grid-template-rows: repeat(2, 20px);
    gap: 6px;
    place-content: center;
    transition: opacity 0.2s ease;
}

.ml-home-product-card__mark span {
    background: #fff;
}

.ml-home-product-card:hover .ml-home-product-card__mark {
    opacity: 0;
}

.ml-home-metric,
.ml-home-news-card {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 0.55s ease, transform 0.55s ease;
}

.ml-home-metric.is-visible,
.ml-home-news-card.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.ml-home-metrics {
    position: relative;
    overflow: hidden;
    background-color: #0e1421;
    background-position: center;
    background-size: cover;
    padding: 64px 0;
}

.ml-home-metrics::before {
    display: none;
}

.ml-home-metrics .ml-home-section-head,
.ml-home-metrics__grid {
    position: relative;
    z-index: 1;
}

.ml-home-metrics__grid {
    display: grid;
    width: min(1200px, calc(100% - 32px));
    margin: 0 auto;
    gap: 16px;
}

.ml-home-metric {
    min-height: 120px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(14, 20, 33, 0.45);
    padding: 24px;
    text-align: center;
}

.ml-home-metric strong {
    display: block;
    color: #fbbf24;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.2;
}

.ml-home-metric p {
    margin: 8px 0 0;
    color: #fff;
    font-size: 16px;
    line-height: 1.75;
}

.ml-home-enterprise {
    background: #f2f1f5;
}

.ml-home-enterprise img {
    width: min(1500px, calc(100% - 32px));
    margin: 0 auto;
    object-fit: cover;
}

.ml-home-news {
    background: #f2f1f5;
    padding: 84px 0 92px;
}

.ml-home-news__grid {
    display: grid;
    width: min(1700px, calc(100% - 64px));
    margin: 0 auto;
    gap: 28px;
}

.ml-home-news-card {
    display: grid;
    overflow: hidden;
    border: 0;
    border-radius: 5px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(20, 30, 45, 0.04);
    transition: opacity 0.55s ease, transform 0.55s ease, box-shadow 0.3s ease;
}

.ml-home-news-card__image {
    display: block;
    overflow: hidden;
    aspect-ratio: 466 / 317;
    background: #f4f4f4;
}

.ml-home-news-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.ml-home-news-card:hover {
    box-shadow: 0 16px 36px rgba(0, 151, 149, 0.13);
}

.ml-home-news-card:hover .ml-home-news-card__image img {
    transform: scale(1.03);
}

.ml-home-news-card__body {
    display: flex;
    min-width: 0;
    min-height: 260px;
    flex-direction: column;
    justify-content: space-between;
    padding: 28px 42px 24px;
    color: #333;
    transition: background-color 0.25s ease, color 0.25s ease;
}

.ml-home-news-card:first-child .ml-home-news-card__body,
.ml-home-news-card:hover .ml-home-news-card__body {
    background: #009795;
    color: #fff;
}

.ml-home-news-card h3 {
    order: 1;
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 32px;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.ml-home-news-card h3 a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.ml-home-news-card:first-child h3 a,
.ml-home-news-card:hover h3 a {
    color: #fff;
}

.ml-home-news-card time {
    order: 2;
    display: inline-flex;
    width: fit-content;
    min-height: 31px;
    align-items: center;
    background: url("../images/time_bg1.png") left center no-repeat;
    padding-left: 22px;
    color: #8c969c;
    font-size: 16px;
    font-weight: 600;
    line-height: 31px;
    transition: color 0.25s ease;
}

.ml-home-news-card:first-child time,
.ml-home-news-card:hover time {
    color: rgba(255, 255, 255, 0.78);
}

.ml-home-news-card__more {
    order: 3;
    display: inline-flex;
    width: 140px;
    height: 43px;
    align-items: center;
    justify-content: center;
    background: linear-gradient(90deg, #00ffde, #008f8f);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
}

.ml-home-news__empty {
    grid-column: 1 / -1;
    margin: 0;
    padding: 48px 24px;
    background: #fff;
    color: #64748b;
    text-align: center;
}

@media (min-width: 640px) {
    .ml-home-metrics__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .ml-home {
        --ml-home-header-height: 92px;
    }

    .ml-home-products,
    .ml-home-metrics {
        padding: 88px 0;
    }

    .ml-home-products__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ml-home-product-card,
    .ml-home-product-card__content {
        min-height: 660px;
    }

    .ml-home-product-card h3 {
        font-size: 28px;
    }

    .ml-home-product-card p {
        font-size: 19px;
    }

    .ml-home-product-card__detail {
        font-size: 20px;
    }

}

@media (min-width: 1024px) {
    .ml-home-product-card__content {
        padding-right: 11%;
        padding-left: 11%;
    }

    .ml-home-product-card__links a {
        font-size: 16px;
    }

    .ml-home-metrics__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1180px) {
    .ml-home-products__grid {
        grid-template-columns: repeat(3, minmax(0, 390px));
    }
}

@media (min-width: 1280px) {
    .ml-home-products__grid {
        gap: 40px;
    }

    .ml-home-product-card__content {
        padding-right: 14%;
        padding-left: 14%;
    }

    .ml-home-product-card h3 {
        font-size: 32px;
    }

    .ml-home-product-card p {
        font-size: 21px;
    }

    .ml-home-metric p {
        font-size: 20px;
    }

    .ml-home-news__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ml-home-news-card {
        height: 316px;
        grid-template-columns: 47.4% 52.6%;
    }

    .ml-home-news-card__image {
        height: 100%;
        aspect-ratio: auto;
    }

    .ml-home-news-card__body {
        height: 100%;
        min-height: 0;
    }
}

@media (max-width: 767px) {
    .ml-home-hero {
        height: calc(100vh - var(--ml-home-header-height));
        height: calc(100svh - var(--ml-home-header-height));
        min-height: 430px;
    }

    .ml-home-hero__button {
        min-height: 46px;
        min-width: 142px;
        padding: 0 24px;
        font-size: 15px;
    }

    .ml-home-hero__nav {
        width: 42px;
        height: 42px;
        font-size: 30px;
    }

    .ml-home-hero__nav--prev {
        left: 12px;
    }

    .ml-home-hero__nav--next {
        right: 12px;
    }

    .ml-home-section-head h2 {
        font-size: 26px;
    }

    .ml-home-section-head p {
        font-size: 16px;
    }

    .ml-home-products,
    .ml-home-metrics,
    .ml-home-news {
        padding: 64px 0;
    }

    .ml-home-product-card,
    .ml-home-product-card__content {
        min-height: 540px;
    }

    .ml-home-product-card h3 {
        font-size: 24px;
    }

    .ml-home-product-card p,
    .ml-home-product-card__detail {
        font-size: 17px;
    }

    .ml-home-metric p {
        font-size: 16px;
    }

    .ml-home-news__grid {
        width: calc(100% - 32px);
        gap: 40px;
    }

    .ml-home-news-card__body {
        padding: 28px 24px 30px;
    }

    .ml-home-news-card h3 {
        min-height: auto;
        font-size: 20px;
        line-height: 30px;
    }
}

/* ============================================================
   44. Partners Page Migration — 生态伙伴
   ============================================================ */

.ml-partners {
    width: 100%;
    margin: 0;
    overflow: hidden;
    background: #fff;
    color: #333;
}

.ml-partners-container {
    width: min(1200px, calc(100% - 40px));
    margin: 0 auto;
}

.ml-partners-section-title {
    text-align: center;
}

.ml-partners-section-title h2 {
    margin: 0;
    color: #333;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.2;
}

.ml-partners-section-title p {
    margin: 12px 0 0;
    color: #999;
    font-size: 18px;
    line-height: 1.5;
}

.ml-partners-section-title span {
    display: block;
    width: 48px;
    height: 4px;
    margin: 20px auto 0;
    background: #009795;
}

.ml-partners-button {
    display: inline-flex;
    min-width: 184px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 24px;
    background: #009795;
    padding: 0 48px;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    cursor: pointer;
    transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.ml-partners-button:hover {
    transform: translateY(-2px);
    background: #008b89;
    color: #fff;
    box-shadow: 0 10px 28px rgba(0, 151, 149, 0.22);
}

.ml-partners-about {
    padding: 76px 0 78px;
    background: #fff;
}

.ml-partners-about__panel {
    display: grid;
    margin-top: 56px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 16px 45px rgba(0, 0, 0, 0.1);
}

.ml-partners-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 32px;
}

.ml-partners-copy h3 {
    margin: 0;
    color: #333;
    font-size: 26px;
    font-weight: 600;
    line-height: 1.35;
    overflow-wrap: break-word;
}

.ml-partners-copy p {
    margin: 20px 0 0;
    color: #555;
    font-size: 16px;
    line-height: 2;
    overflow-wrap: anywhere;
}

.ml-partners-story {
    position: relative;
    min-width: 0;
    outline: none;
}

.ml-partners-story:focus-visible {
    box-shadow: 0 0 0 3px rgba(59, 142, 142, 0.28);
}

.ml-partners-story__frame {
    position: relative;
    min-height: 360px;
    overflow: hidden;
    background: #f3f3f3;
}

.ml-partners-story__slide {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    transform: scale(1.015);
    transition: opacity 0.35s ease, transform 0.45s ease;
}

.ml-partners-story__slide.is-active {
    opacity: 1;
    transform: scale(1);
}

.ml-partners-story__slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ml-partners-story__nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: grid;
    width: 44px;
    height: 44px;
    transform: translateY(-50%);
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.3);
    color: #fff;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.ml-partners-story__nav--prev {
    left: 8px;
}

.ml-partners-story__nav--next {
    right: 8px;
}

.ml-partners-story__nav:hover {
    border-color: rgba(255, 255, 255, 0.75);
    background: rgba(0, 0, 0, 0.5);
}

.ml-partners-story__dots {
    position: absolute;
    bottom: 16px;
    left: 50%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translateX(-50%);
    gap: 8px;
}

.ml-partners-story__dot {
    width: 8px;
    height: 8px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: width 0.2s ease, background-color 0.2s ease;
}

.ml-partners-story__dot.is-active {
    width: 22px;
    background: #fff;
}

.ml-partners-support {
    padding: 76px 0 78px;
    background: #f5f5f5;
    color: #333;
}

.ml-partners-support h2 {
    margin: 0;
    color: #333;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
}

.ml-partners-support__grid {
    display: grid;
    gap: 24px;
    margin-top: 48px;
}

.ml-partners-support-card {
    min-height: 316px;
    background: #fff;
    padding: 40px 32px;
    text-align: center;
    box-shadow: 0 1px 6px rgba(20, 30, 45, 0.04);
    transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.ml-partners-support-card:hover {
    transform: translateY(-4px);
    background: #009795;
    box-shadow: 0 10px 30px rgba(0, 151, 149, 0.3);
}

.ml-partners-support-card__icon {
    width: 96px;
    height: 96px;
    margin: 0 auto;
}

.ml-partners-support-card__icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.ml-partners-support-card h3 {
    margin: 28px 0 0;
    color: #333;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.3;
    transition: color 0.3s ease;
}

.ml-partners-support-card__lines {
    display: grid;
    gap: 8px;
    margin-top: 22px;
    text-align: left;
}

.ml-partners-support-card p {
    margin: 0;
    color: #666;
    font-size: 15px;
    line-height: 1.8;
    transition: color 0.3s ease;
}

.ml-partners-support-card p span {
    color: #009795;
    transition: color 0.3s ease;
}

.ml-partners-support-card:hover h3,
.ml-partners-support-card:hover p,
.ml-partners-support-card:hover p span {
    color: #fff;
}

.ml-partners-action {
    margin-top: 48px;
    text-align: center;
}

@media (min-width: 768px) {
    .ml-partners-about__panel {
        grid-template-columns: 460px minmax(0, 1fr);
    }

    .ml-partners-support__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .ml-partners-about,
    .ml-partners-support {
        padding: 56px 0;
    }

    .ml-partners-section-title h2,
    .ml-partners-support h2 {
        font-size: 26px;
    }

    .ml-partners-about__panel {
        margin-top: 40px;
    }

    .ml-partners-copy {
        padding: 28px 24px;
    }

    .ml-partners-copy h3 {
        font-size: 22px;
    }

    .ml-partners-copy p {
        font-size: 16px;
    }

    .ml-partners-story__frame {
        min-height: 280px;
    }

    .ml-partners-support__grid {
        margin-top: 36px;
    }

    .ml-partners-support-card {
        min-height: 0;
        padding: 28px 24px;
    }

    .ml-partners-action {
        margin-top: 36px;
    }
}

/* ============================================================
   45. Editor-managed Static Pages
   ============================================================ */

.ml-static-page {
    padding-top: 76px;
    background: #fff;
    color: #333;
}

.ml-page-hero {
    background: #fff;
}

.ml-page-hero__media {
    height: 242px;
    background: #0e1421;
}

.ml-page-hero__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}

.ml-page-hero__shade {
    background: rgba(0, 0, 0, 0.42);
}

.ml-page-hero__content {
    padding: 0 24px;
}

.ml-page-hero__title {
    color: #fff;
    font-size: 38px;
    font-weight: 700;
    line-height: 1.24;
}

.ml-page-hero__subtitle {
    margin: 12px 0 0;
    color: #fff;
    font-size: 18px;
    line-height: 1.7;
}

.ml-page-crumb {
    border: 0;
    background: #f3f3f3;
}

.ml-page-crumb__inner {
    min-height: 64px;
    width: min(1360px, calc(100% - 32px));
    padding: 0;
}

.ml-page-crumb__home,
.ml-page-crumb__separator {
    flex: 0 0 auto;
    color: #36414a;
    font-size: 14px;
    line-height: 1.4;
    white-space: nowrap;
}

.ml-page-crumb__link {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    min-height: 64px;
    color: #36414a;
    font-size: 14px;
    line-height: 1.4;
    white-space: nowrap;
}

.ml-page-crumb__home:hover,
.ml-page-crumb__link:hover,
.ml-page-crumb__link.is-current {
    color: #222;
}

.ml-page-crumb__link.is-current {
    color: #009b9b;
    font-weight: 600;
}

.ml-page-crumb__link.is-current::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    background: #009b9b;
}

.ml-page-crumb__nav {
    flex: 1 1 auto;
    min-width: 0;
    gap: 46px;
    scrollbar-width: thin;
}

.ml-page-content {
    padding: 56px 0 72px;
}

.ml-page-content__inner {
    width: min(1360px, calc(100% - 32px));
}

.ml-page-content__body > :first-child {
    margin-top: 0;
}

.ml-editor-page {
    display: grid;
    gap: 42px;
    color: #142128;
}

.ml-editor-intro {
    display: grid;
    gap: 14px;
    max-width: 860px;
}

.ml-editor-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #008f8f;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.4;
    text-transform: uppercase;
}

.ml-editor-kicker::before {
    content: "";
    display: block;
    width: 32px;
    height: 2px;
    background: #ffc62e;
}

.ml-editor-page h2 {
    margin: 0;
    color: #0e1421;
    font-size: 30px;
    line-height: 1.3;
}

.ml-editor-page h3 {
    margin: 0 0 12px;
    color: #0e1421;
    font-size: 21px;
    line-height: 1.35;
}

.ml-editor-page p,
.ml-editor-page li {
    color: #40515a;
    font-size: 16px;
    line-height: 1.85;
}

.ml-editor-page ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding-left: 1.2em;
}

.ml-editor-content {
    display: grid;
    gap: 24px;
}

.ml-editor-content > ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px 22px;
    padding: 22px 24px;
    border: 1px solid rgba(59, 142, 142, 0.14);
    border-radius: 8px;
    background: #f6faf9;
}

.ml-editor-media {
    margin: 0;
    overflow: hidden;
    border-radius: 8px;
    background: #f4f7f7;
}

.ml-editor-media img {
    display: block;
    width: 100%;
    max-height: 520px;
    object-fit: cover;
}

.ml-editor-card-grid {
    display: grid;
    gap: 20px;
}

.ml-editor-card {
    border: 1px solid rgba(59, 142, 142, 0.14);
    border-radius: 8px;
    background: #fff;
    padding: 26px;
    box-shadow: 0 14px 36px rgba(15, 31, 42, 0.06);
}

.ml-editor-two-column {
    display: grid;
    gap: 30px;
}

.ml-editor-news-list {
    display: grid;
    gap: 26px;
    margin-top: 42px;
}

.ml-editor-news-card {
    display: grid;
    gap: 20px;
    border: 1px solid rgba(59, 142, 142, 0.14);
    border-radius: 8px;
    background: #fff;
    padding: 20px;
    box-shadow: 0 14px 36px rgba(15, 31, 42, 0.06);
}

.ml-editor-news-card__image {
    display: block;
    overflow: hidden;
    border-radius: 6px;
    background: #f4f7f7;
}

.ml-editor-news-card__image img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.ml-editor-news-card h3 {
    margin: 0 0 10px;
    font-size: 22px;
    line-height: 1.35;
}

.ml-editor-news-card h3 a {
    color: #0e1421;
    text-decoration: none;
}

.ml-editor-news-card time {
    display: block;
    margin-bottom: 12px;
    color: #008f8f;
    font-size: 14px;
    font-weight: 700;
}

.ml-editor-pagination {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-top: 18px;
}

.ml-editor-pagination .page-numbers {
    display: inline-flex;
    min-width: 38px;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(59, 142, 142, 0.22);
    border-radius: 6px;
    color: #123238;
    text-decoration: none;
}

.ml-editor-pagination .page-numbers.current {
    border-color: #008f8f;
    background: #008f8f;
    color: #fff;
}

.ml-editor-empty {
    padding: 34px;
    border-radius: 8px;
    background: #f6faf9;
    text-align: center;
}

@media (min-width: 768px) {
    .ml-editor-card-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ml-editor-two-column,
    .ml-editor-news-card {
        grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    }
}

@media (max-width: 767px) {
    .ml-editor-page {
        gap: 30px;
    }

    .ml-editor-page h2 {
        font-size: 25px;
    }

    .ml-editor-card {
        padding: 22px;
    }
}

.ml-editor-page {
    gap: 56px;
}

.ml-editor-page * {
    box-sizing: border-box;
}

.ml-editor-intro {
    position: relative;
    max-width: 900px;
}

.ml-editor-intro h2 {
    font-size: 34px;
    line-height: 1.24;
}

.ml-editor-intro p {
    max-width: 760px;
    margin: 0;
}

.ml-editor-section-head {
    display: grid;
    gap: 12px;
    margin-bottom: 24px;
}

.ml-editor-section-head h2 {
    margin: 0;
}

.ml-editor-showcase {
    display: grid;
}

.ml-editor-image-card {
    display: grid;
    gap: 12px;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(14, 20, 33, 0.08);
    border-radius: 8px;
    background: #f5f8f8;
}

.ml-editor-image-card img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.ml-editor-image-card figcaption {
    padding: 0 16px 16px;
    color: #5c6b73;
    font-size: 14px;
    line-height: 1.6;
}

.ml-editor-image-card--hero img {
    max-height: 560px;
    aspect-ratio: 16 / 7;
}

.ml-editor-story,
.ml-editor-case-flow {
    display: grid;
    gap: 34px;
}

.ml-editor-split {
    display: grid;
    gap: 28px;
    align-items: center;
    padding: 34px;
    border: 1px solid rgba(0, 143, 143, 0.12);
    border-radius: 8px;
    background: linear-gradient(135deg, #ffffff 0%, #f7fbfa 100%);
}

.ml-editor-split--text-only {
    max-width: 920px;
}

.ml-editor-section-copy {
    display: grid;
    gap: 16px;
    min-width: 0;
}

.ml-editor-section-copy h2 {
    margin: 0;
    color: #0e1421;
    font-size: 27px;
    line-height: 1.35;
}

.ml-editor-section-copy p {
    margin: 0;
}

.ml-editor-feature-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}

.ml-editor-feature-list li {
    position: relative;
    min-height: 52px;
    padding: 14px 16px 14px 38px;
    border: 1px solid rgba(0, 143, 143, 0.14);
    border-radius: 8px;
    background: #fff;
    color: #33444c;
    line-height: 1.65;
}

.ml-editor-feature-list li::before {
    content: "";
    position: absolute;
    top: 22px;
    left: 18px;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #ffc62e;
    box-shadow: 0 0 0 4px rgba(255, 198, 46, 0.18);
}

.ml-editor-gallery-section {
    display: grid;
}

.ml-editor-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px;
}

.ml-editor-gallery .ml-editor-image-card img {
    aspect-ratio: 4 / 3;
}

.ml-editor-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin-top: 8px;
}

.ml-editor-metrics div {
    display: grid;
    gap: 6px;
    min-height: 108px;
    align-content: center;
    padding: 18px;
    border-radius: 8px;
    background: #eff7f5;
}

.ml-editor-metrics strong {
    color: #008f8f;
    font-size: 22px;
    line-height: 1.25;
}

.ml-editor-metrics span {
    color: #4b5b63;
    font-size: 14px;
    line-height: 1.55;
}

.ml-editor-dark-band {
    display: grid;
    padding: 42px;
    border-radius: 8px;
    background: #0e1421;
}

.ml-editor-dark-band h2,
.ml-editor-dark-band p,
.ml-editor-dark-band li {
    color: #fff;
}

.ml-editor-dark-band .ml-editor-feature-list li {
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.86);
}

.ml-editor-card-grid--two {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.ml-editor-contact-grid {
    display: grid;
    gap: 30px;
}

.ml-editor-contact-panel,
.ml-editor-form-panel {
    display: grid;
    gap: 18px;
    align-content: start;
}

.ml-editor-form-panel {
    padding: 30px;
    border: 1px solid rgba(0, 143, 143, 0.16);
    border-radius: 8px;
    background: #f7fbfa;
}

.ml-editor-contact-panel h2,
.ml-editor-form-panel h2 {
    margin: 0;
}

.ml-editor-contact-panel p,
.ml-editor-form-panel p {
    margin: 0;
}

.ml-editor-image-card--map img {
    aspect-ratio: 16 / 9;
}

.ml-editor-qr-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.ml-editor-qr-grid .ml-editor-image-card img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    padding: 18px;
    background: #fff;
}

.ml-editor-case-grid {
    display: grid;
    gap: 22px;
}

.ml-editor-case-card {
    display: grid;
    gap: 18px;
    overflow: hidden;
    border: 1px solid rgba(0, 143, 143, 0.14);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(15, 31, 42, 0.06);
}

.ml-editor-case-card > div {
    display: grid;
    gap: 12px;
    padding: 0 22px 22px;
}

.ml-editor-case-card .ml-editor-image-card {
    border: 0;
    border-radius: 0;
}

.ml-editor-case-card .ml-editor-image-card img {
    aspect-ratio: 16 / 9;
}

.ml-editor-text-link {
    display: inline-flex;
    width: fit-content;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    border: 1px solid #008f8f;
    border-radius: 6px;
    color: #007d7d;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.ml-editor-text-link:hover {
    background: #008f8f;
    color: #fff;
}

.ml-editor-case-footer {
    display: grid;
    gap: 24px;
    align-items: center;
    padding: 34px;
    border-radius: 8px;
    background: #0e1421;
}

.ml-editor-case-footer h2,
.ml-editor-case-footer p {
    color: #fff;
}

.ml-editor-case-footer p {
    margin: 8px 0 0;
    color: rgba(255, 255, 255, 0.78);
}

.ml-editor-case-footer__media {
    display: grid;
    gap: 14px;
}

.ml-editor-case-footer__media .ml-editor-image-card {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.08);
}

.ml-editor-case-footer__media .ml-editor-image-card img {
    aspect-ratio: 16 / 9;
    object-fit: contain;
    padding: 12px;
    background: #fff;
}

.ml-editor-case-nav {
    display: grid;
    gap: 10px;
    padding-top: 6px;
    color: #52636b;
    font-size: 15px;
    line-height: 1.7;
}

.ml-editor-news-list {
    margin-top: 0;
}

.ml-editor-news-card {
    align-items: center;
}

.ml-editor-page--product {
    gap: 0;
}

.ml-editor-page--product > .ml-editor-intro,
.ml-editor-page--product > .ml-editor-showcase {
    display: none;
}

.ml-editor-page--product .ml-editor-story {
    gap: 54px;
}

.ml-editor-page--product .ml-editor-split {
    gap: 70px;
    align-items: start;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.ml-editor-page--product .ml-editor-section-copy {
    gap: 12px;
}

.ml-editor-page--product .ml-editor-section-copy h2 {
    width: 100%;
    margin: 0;
    padding-bottom: 14px;
    border-bottom: 1px solid #cfdedc;
    color: #009795;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.35;
}

.ml-editor-page--product .ml-editor-section-copy p,
.ml-editor-page--product .ml-editor-section-copy li {
    color: #182b3c;
    font-size: 16px;
    line-height: 1.95;
}

.ml-editor-page--product .ml-editor-section-copy p {
    margin: 0;
}

.ml-editor-page--product .ml-editor-split:first-child .ml-editor-section-copy h2 {
    margin-bottom: 74px;
}

.ml-editor-page--product .ml-editor-split:first-child .ml-editor-section-copy p:nth-of-type(3),
.ml-editor-page--product .ml-editor-split:first-child .ml-editor-section-copy p:nth-of-type(4) {
    color: #009795;
    font-weight: 700;
}

.ml-editor-page--product .ml-editor-split:first-child .ml-editor-section-copy p:nth-of-type(4) {
    margin-top: 18px;
}

.ml-editor-page--product .ml-editor-feature-list {
    display: block;
    margin: 0;
    padding-left: 1.15em;
    list-style: disc;
}

.ml-editor-page--product .ml-editor-feature-list li {
    min-height: 0;
    margin: 0 0 10px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #182b3c;
    line-height: 1.85;
}

.ml-editor-page--product .ml-editor-feature-list li::before {
    content: none;
}

.ml-editor-page--product .ml-editor-image-card {
    gap: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.ml-editor-page--product .ml-editor-image-card img {
    width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: auto;
    object-fit: contain;
}

.ml-editor-page--product .ml-editor-image-card figcaption {
    display: none;
}

.ml-editor-page--product .ml-editor-split:first-child .ml-editor-image-card {
    margin-top: 92px;
}

.ml-editor-page--product .ml-editor-split:first-child .ml-editor-image-card img {
    max-height: 430px;
}

@media (min-width: 768px) {
    .ml-editor-split {
        grid-template-columns: minmax(0, 1fr) minmax(320px, 0.92fr);
    }

    .ml-static-page {
        padding-top: 92px;
    }

    .ml-editor-page--product .ml-editor-split {
        grid-template-columns: minmax(0, 1fr) minmax(360px, 0.74fr);
    }

    .ml-editor-split--reverse .ml-editor-section-copy {
        order: 2;
    }

    .ml-editor-split--text-only {
        grid-template-columns: minmax(0, 1fr);
    }

    .ml-editor-contact-grid {
        grid-template-columns: minmax(0, 0.95fr) minmax(360px, 0.75fr);
    }

    .ml-editor-case-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ml-editor-case-footer {
        grid-template-columns: minmax(0, 1fr) minmax(260px, 0.55fr);
    }
}

@media (max-width: 767px) {
    .ml-page-hero__media {
        height: 220px;
    }

    .ml-page-hero__title {
        font-size: 28px;
    }

    .ml-page-hero__subtitle {
        font-size: 15px;
    }

    .ml-page-crumb__inner {
        min-height: 54px;
        gap: 10px;
        overflow-x: auto;
        white-space: nowrap;
    }

    .ml-page-content {
        padding: 42px 0 58px;
    }

    .ml-editor-page {
        gap: 36px;
    }

    .ml-editor-intro h2 {
        font-size: 26px;
    }

    .ml-editor-split,
    .ml-editor-dark-band,
    .ml-editor-case-footer,
    .ml-editor-form-panel {
        padding: 24px;
    }

    .ml-editor-section-copy h2 {
        font-size: 23px;
    }

    .ml-editor-image-card--hero img {
        aspect-ratio: 4 / 3;
    }

    .ml-editor-feature-list,
    .ml-editor-qr-grid {
        grid-template-columns: 1fr;
    }

    .ml-editor-page--product .ml-editor-split:first-child .ml-editor-section-copy h2 {
        margin-bottom: 34px;
    }

    .ml-editor-page--product .ml-editor-split:first-child .ml-editor-image-card {
        margin-top: 12px;
    }
}

/* ============================================================
   46. Runtime Source-aligned Static Pages
   ============================================================ */

.ml-page-runtime {
    background: #fff;
}

.ml-page-runtime .ml-partners {
    width: auto;
    margin-right: 0;
    margin-left: 0;
}

.ml-home-solution {
    background: #fff;
}

.ml-home-solution img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
}

.ml-source-page {
    overflow: hidden;
    background: #fff;
    color: #4f4f4f;
}

.ml-source-section {
    background: #fff;
    padding: 56px 0;
}

.ml-source-section--muted {
    background: #f5f5f5;
}

.ml-source-container {
    width: min(1360px, calc(100% - 48px));
    margin: 0 auto;
}

/* News listing cards aligned with the legacy site */
.ml-news-section {
    background: #fff;
    padding: 76px 0;
}

.ml-news-section--feature .ml-news-section__inner {
    width: min(1240px, calc(100% - 48px));
}

.ml-news-section--activity .ml-news-section__inner {
    width: min(1500px, calc(100% - 48px));
}

.ml-news-section__inner {
    margin: 0 auto;
}

.ml-news-list {
    display: grid;
}

.ml-news-list--feature {
    gap: 100px;
}

.ml-news-list--activity {
    gap: 70px 31px;
}

.ml-news-card {
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.ml-news-card:focus-visible {
    outline: 3px solid rgba(0, 151, 149, 0.45);
    outline-offset: 4px;
}

.ml-news-card__media {
    display: block;
    overflow: hidden;
    background: #f4f4f4;
}

.ml-news-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.ml-news-card:hover .ml-news-card__media img {
    transform: scale(1.03);
}

.ml-news-card__body,
.ml-news-card__content {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.ml-news-card__title {
    display: -webkit-box;
    overflow: hidden;
    color: #333;
    font-weight: 600;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
    transition: color 0.2s ease;
}

.ml-news-card:hover .ml-news-card__title {
    color: #009795;
}

.ml-news-card__meta {
    display: inline-flex;
    width: fit-content;
    min-height: 31px;
    align-items: center;
    background: url("../images/time_bg1.png") left center no-repeat;
    padding-left: 22px;
    color: #009795;
    font-size: 16px;
    font-weight: 600;
    line-height: 31px;
}

.ml-news-card__meta span {
    margin-left: 24px;
}

.ml-news-card__summary {
    display: -webkit-box;
    overflow: hidden;
    color: #777;
    font-size: 16px;
    line-height: 28px;
    overflow-wrap: anywhere;
    -webkit-box-orient: vertical;
}

.ml-news-card__button {
    display: inline-flex;
    height: 42px;
    align-items: center;
    justify-content: center;
    background: linear-gradient(90deg, #00ffde, #008f8f);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
}

.ml-news-card--feature {
    display: grid;
    min-height: 338px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(230, 230, 230, 0.9);
    transition: box-shadow 0.3s ease;
}

.ml-news-card--feature:hover {
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);
}

.ml-news-card--feature .ml-news-card__media {
    height: 240px;
}

.ml-news-card--feature .ml-news-card__body {
    padding: 32px 28px;
}

.ml-news-card--feature .ml-news-card__title {
    font-size: 22px;
    line-height: 32px;
    -webkit-line-clamp: 2;
}

.ml-news-card--feature .ml-news-card__meta {
    margin-top: 17px;
}

.ml-news-card--feature .ml-news-card__summary {
    margin-top: 30px;
    -webkit-line-clamp: 2;
}

.ml-news-card--feature .ml-news-card__button {
    width: 132px;
    margin-top: 32px;
}

.ml-news-card--activity {
    display: block;
    overflow: hidden;
    border: 1px solid #dedede;
    background: #fff;
    transition: box-shadow 0.3s ease;
}

.ml-news-card--activity:hover {
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);
}

.ml-news-card--activity .ml-news-card__media {
    aspect-ratio: 466 / 317;
}

.ml-news-card--activity .ml-news-card__body {
    padding: 28px 32px 32px;
}

.ml-news-card--activity .ml-news-card__title {
    min-height: 64px;
    margin-top: 16px;
    font-size: 22px;
    line-height: 32px;
    -webkit-line-clamp: 2;
}

.ml-news-card--activity .ml-news-card__summary {
    min-height: 84px;
    margin-top: 16px;
    -webkit-line-clamp: 3;
}

.ml-news-card--activity .ml-news-card__button {
    width: 116px;
    margin-top: 28px;
}

.ml-news-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 68px;
    color: #666;
    font-size: 15px;
}

.ml-news-pagination .page-numbers {
    display: inline-flex;
    min-width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    border: 1px solid #dcdcdc;
    background: #fff;
    padding: 0 12px;
    color: #666;
    line-height: 1;
    text-decoration: none;
}

.ml-news-pagination .page-numbers:hover,
.ml-news-pagination .page-numbers.current {
    border-color: #009795;
    background: #009795;
    color: #fff;
}

.ml-news-empty {
    margin: 0;
    padding: 36px;
    background: #f6faf9;
    color: #667;
    font-size: 16px;
    line-height: 1.7;
    text-align: center;
}

@media (min-width: 768px) {
    .ml-news-card--feature {
        grid-template-columns: 451px minmax(0, 1fr);
    }

    .ml-news-card--feature .ml-news-card__media {
        height: 338px;
    }

    .ml-news-card--feature .ml-news-card__body {
        padding: 67px 54px 32px;
    }

    .ml-news-card--feature .ml-news-card__button {
        margin-top: auto;
    }

    .ml-news-list--activity {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .ml-news-list--activity {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .ml-news-section--feature .ml-news-section__inner,
    .ml-news-section--activity .ml-news-section__inner {
        width: calc(100% - 32px);
    }

    .ml-news-section {
        padding: 48px 0 56px;
    }

    .ml-news-list--feature,
    .ml-news-list--activity {
        gap: 40px;
    }

    .ml-news-card--feature .ml-news-card__body,
    .ml-news-card--activity .ml-news-card__body {
        padding: 28px 24px 30px;
    }

    .ml-news-card--feature .ml-news-card__summary {
        margin-top: 24px;
    }

    .ml-news-card--activity .ml-news-card__title {
        min-height: auto;
    }

    .ml-news-card--activity .ml-news-card__summary {
        min-height: auto;
    }

    .ml-news-pagination {
        margin-top: 42px;
    }
}

.ml-source-case-list {
    display: block;
    gap: 0;
    overflow: hidden;
    background: #fff;
    color: #333;
}

.ml-source-case-section {
    background: #fff;
    padding: 64px 0;
}

.ml-source-case-grid {
    display: grid;
    grid-template-columns: minmax(0, 493px);
    justify-content: center;
    gap: 32px;
    width: min(1539px, calc(100% - 48px));
    margin: 0 auto;
}

.ml-source-case-card {
    display: grid;
    grid-template-rows: auto 1fr 47px;
    overflow: hidden;
    min-width: 0;
    border: 1px solid #dedede;
    border-radius: 3px;
    background: #fff;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.ml-source-case-card:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

.ml-source-case-card__media-link {
    display: block;
    color: inherit;
    text-decoration: none;
}

.ml-source-case-card__media {
    display: block;
    margin: 0;
    aspect-ratio: 493 / 209;
    overflow: hidden;
    background: #f6f6f6;
}

.ml-source-case-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.25s ease;
}

.ml-source-case-card:hover .ml-source-case-card__media img {
    transform: scale(1.03);
}

.ml-source-case-card__media.is-contain img {
    object-fit: contain;
    transform: none;
}

.ml-source-case-card__body {
    min-height: 152px;
    padding: 54px 32px 18px;
}

.ml-source-case-card__body h2 {
    margin: 0;
    color: #333;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.45;
    overflow-wrap: anywhere;
    transition: color 0.2s ease;
}

.ml-source-case-card:hover .ml-source-case-card__body h2 {
    color: #009795;
}

.ml-source-case-card__body p {
    margin: 10px 0 0;
    color: #777;
    font-size: 14px;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.ml-source-case-card__footer {
    display: flex;
    min-width: 0;
    height: 47px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 0 32px;
    border-top: 1px solid #e5e5e5;
    color: #777;
    font-size: 14px;
    line-height: 1;
    text-decoration: none;
    transition: color 0.2s ease;
}

.ml-source-case-card__footer span:first-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ml-source-case-card__footer:hover {
    color: #009795;
}

@media (min-width: 768px) {
    .ml-source-case-grid {
        grid-template-columns: repeat(2, minmax(0, 493px));
    }
}

@media (min-width: 1280px) {
    .ml-source-case-grid {
        grid-template-columns: repeat(3, 493px);
        gap: 20px;
    }
}

@media (max-width: 767px) {
    .ml-source-case-grid {
        width: min(100% - 32px, 493px);
    }

    .ml-source-case-section {
        padding: 40px 0 52px;
    }

    .ml-source-case-card__body {
        min-height: 130px;
        padding: 28px 20px 18px;
    }

    .ml-source-case-card__footer {
        padding: 0 20px;
    }
}

.ml-source-case-context {
    background: #fff;
    border-bottom: 1px solid #e8eeee;
    color: #333;
}

.ml-page-runtime--source-case-detail {
    overflow-x: hidden;
}

.ml-source-case-context__inner {
    display: flex;
    width: min(1200px, calc(100% - 48px));
    min-height: 58px;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
    margin: 0 auto;
    padding: 14px 0;
}

.ml-source-case-context__crumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    min-width: 0;
    color: #666;
    font-size: 14px;
    line-height: 24px;
    overflow-wrap: anywhere;
}

.ml-source-case-context__crumb a,
.ml-source-case-context__crumb span {
    color: inherit;
    text-decoration: none;
}

.ml-source-case-context__crumb span {
    margin: 0 4px;
}

.ml-source-case-context__crumb span:last-child {
    margin-right: 0;
}

.ml-source-case-context__crumb a:hover {
    color: #009795;
}

.ml-source-case-context__nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 20px;
}

.ml-source-case-context__nav a {
    color: #555;
    font-size: 14px;
    line-height: 24px;
    text-decoration: none;
    transition: color 0.2s ease;
}

.ml-source-case-context__nav a:hover,
.ml-source-case-context__nav a.is-current {
    color: #009795;
}

.ml-source-case-detail {
    display: grid;
    grid-template-columns: minmax(0, 850px) 300px;
    gap: 50px;
    align-items: start;
    width: min(1200px, calc(100% - 48px));
    margin: 0 auto;
    padding: 44px 0 62px;
    background: #fff;
    color: #333;
}

.ml-source-case-article {
    min-width: 0;
}

.ml-source-case-article__header {
    border-bottom: 1px solid #e5e5e5;
    padding-bottom: 24px;
    text-align: center;
}

.ml-source-case-article__header h2 {
    margin: 0;
    color: #333;
    font-size: 24px;
    font-weight: 700;
    line-height: 36px;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.ml-source-case-article__header p {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 18px;
    margin: 18px 0 0;
    color: #777;
    font-size: 14px;
    line-height: 1.7;
}

.ml-source-case-article__body {
    padding-top: 30px;
}

.ml-source-case-article__body p {
    margin: 12px 0;
    color: #555;
    font-size: 16px;
    line-height: 30px;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.ml-source-case-article__lead {
    margin: 0 0 32px;
    color: #555;
    font-size: 18px;
    font-weight: 600;
    line-height: 32px;
    overflow-wrap: anywhere;
}

.ml-source-case-article__major-title {
    margin: 32px 0;
    color: #008f8f;
    font-size: 28px;
    font-weight: 700;
    line-height: 40px;
    text-align: center;
}

.ml-source-case-article__minor-title {
    margin: 32px 0 8px;
    color: #008f8f;
    font-size: 18px;
    font-weight: 700;
    line-height: 32px;
}

.ml-source-case-article__plain-title {
    margin: 38px 0 18px;
    color: #222;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.45;
    text-align: center;
}

.ml-source-case-article__highlight {
    margin: 32px 0;
    border-radius: 4px;
    background: #f6fbfb;
    padding: 20px 24px;
}

.ml-source-case-article__highlight h3 {
    margin: 0;
    color: #008f8f;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.55;
}

.ml-source-case-article__highlight p {
    margin: 12px 0 0;
}

.ml-source-case-article__module-list p {
    margin: 14px 0;
}

.ml-source-case-article__module-list strong {
    color: #333;
    font-weight: 700;
}

.ml-source-case-article__image {
    width: min(100%, var(--ml-source-image-width, 760px));
    margin: 26px auto;
}

.ml-source-case-article__image img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    background: #f6f8f8;
}

.ml-source-case-article__image figcaption {
    margin-top: 10px;
    color: #666;
    font-size: 14px;
    line-height: 1.6;
    text-align: center;
}

.ml-source-case-article__image-row {
    display: grid;
    width: min(100%, var(--ml-source-image-width, 1080px));
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    gap: 20px;
    align-items: start;
    margin: 26px auto;
}

.ml-source-case-article__image-row .ml-source-case-article__image {
    width: 100%;
    margin: 0;
}

.ml-source-case-article__image--qr {
    width: min(100%, 244px);
    margin-top: 24px;
    margin-bottom: 0;
}

.ml-source-case-article__image--banner {
    width: min(100%, 760px);
    margin-top: 32px;
}

.ml-source-case-detail--anli127 .ml-source-case-article__image img,
.ml-source-case-detail--anli128 .ml-source-case-article__image img,
.ml-source-case-detail--anli129 .ml-source-case-article__image img {
    background: transparent;
}

.ml-source-case-detail--anli133 .ml-source-case-article,
.ml-source-case-detail--anli141 .ml-source-case-article,
.ml-source-case-detail--anli142 .ml-source-case-article {
    max-width: 900px;
}

.ml-source-case-detail--anli133 .ml-source-case-article__image img,
.ml-source-case-detail--anli141 .ml-source-case-article__image img,
.ml-source-case-detail--anli142 .ml-source-case-article__image img {
    object-fit: contain;
}

.ml-source-case-detail--anli141 .ml-source-case-article__image-row,
.ml-source-case-detail--anli142 .ml-source-case-article__image-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ml-source-case-detail--anli141 .ml-source-case-article__video {
    width: min(100%, var(--ml-source-video-width, 879px));
    margin: 18px auto 40px;
}

.ml-source-case-detail--anli141 .ml-source-case-article__video-label {
    margin: 0 0 16px;
    color: #555;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.6;
    text-align: left;
}

.ml-source-case-detail--anli141 .ml-source-case-article__video-player {
    display: block;
    width: 100%;
    max-height: 520px;
    background: #000;
}

.ml-source-case-detail--anli133 .ml-source-case-article__image--qr,
.ml-source-case-detail--anli141 .ml-source-case-article__image--qr,
.ml-source-case-detail--anli142 .ml-source-case-article__image--qr {
    width: min(244px, 100%);
}

.ml-source-case-detail--anli133 .ml-source-case-article__image--qr img,
.ml-source-case-detail--anli141 .ml-source-case-article__image--qr img,
.ml-source-case-detail--anli142 .ml-source-case-article__image--qr img,
.ml-source-case-detail--anli133 .ml-source-case-article__image--banner img,
.ml-source-case-detail--anli141 .ml-source-case-article__image--banner img,
.ml-source-case-detail--anli142 .ml-source-case-article__image--banner img {
    background: transparent;
}

.ml-source-case-article__follow {
    margin-top: 44px;
    color: #333;
    font-size: 18px;
    font-weight: 700;
    line-height: 32px;
    text-align: center;
}

.ml-source-case-article__qr-text {
    margin: 12px 0 0;
    color: #333;
    font-size: 18px;
    font-weight: 700;
    text-align: center;
}

.ml-source-case-article__nav {
    display: grid;
    gap: 10px;
    margin-top: 32px;
    border-top: 1px solid #eee;
    padding-top: 20px;
    color: #555;
    font-size: 15px;
    line-height: 1.7;
}

.ml-source-case-article__nav a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.ml-source-case-article__nav a:hover {
    color: #009795;
}

.ml-source-case-detail--anli130 .ml-source-case-article__header h2,
.ml-source-case-detail--anli131 .ml-source-case-article__header h2,
.ml-source-case-detail--anli132 .ml-source-case-article__header h2 {
    color: #222;
    font-size: 30px;
    font-weight: 600;
    line-height: 42px;
}

.ml-source-case-detail--anli130 .ml-source-case-article__body,
.ml-source-case-detail--anli131 .ml-source-case-article__body {
    padding-top: 40px;
}

.ml-source-case-detail--anli132 .ml-source-case-article__body {
    width: min(100%, 900px);
    margin: 0 auto;
    padding-top: 40px;
}

.ml-source-case-detail--anli130 .ml-source-case-article__plain-title {
    margin: 0 0 16px;
    font-size: 22px;
    line-height: 36px;
    text-align: center;
}

.ml-source-case-detail--anli131 .ml-source-case-article__plain-title {
    margin: 0 0 16px;
    font-size: 24px;
    line-height: 36px;
    text-align: left;
}

.ml-source-case-detail--anli132 .ml-source-case-article__plain-title {
    margin: 40px 0 16px;
    font-size: 22px;
    line-height: 32px;
    text-align: left;
}

.ml-source-case-detail--anli130 .ml-source-case-article__image,
.ml-source-case-detail--anli131 .ml-source-case-article__image,
.ml-source-case-detail--anli132 .ml-source-case-article__image {
    margin: 32px auto;
}

.ml-source-case-detail--anli130 .ml-source-case-article__image img,
.ml-source-case-detail--anli131 .ml-source-case-article__image img,
.ml-source-case-detail--anli132 .ml-source-case-article__image img {
    background: transparent;
}

.ml-source-case-sidebar {
    width: 100%;
}

.ml-source-case-sidebar__sticky {
    position: sticky;
    top: 112px;
}

.ml-source-case-sidebar__head {
    display: flex;
    height: 56px;
    align-items: center;
    background: #1f938e;
    padding: 0 24px;
    color: #fff;
}

.ml-source-case-sidebar__head strong {
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}

.ml-source-case-sidebar__head span {
    margin-left: 12px;
    font-size: 16px;
    line-height: 1;
}

.ml-source-case-sidebar__list {
    padding-top: 20px;
}

.ml-source-case-sidebar__item {
    display: block;
    padding: 22px 0;
    border-top: 1px solid #eee;
    color: #222;
    text-decoration: none;
    transition: border-color 0.2s ease, color 0.2s ease;
}

.ml-source-case-sidebar__item:first-child {
    border-top: 0;
    padding-top: 0;
}

.ml-source-case-sidebar__item:hover {
    border-top-color: #168cff;
}

.ml-source-case-sidebar__item img {
    display: block;
    width: 100%;
    aspect-ratio: 300 / 126;
    margin-bottom: 18px;
    object-fit: cover;
    transition: transform 0.25s ease;
}

.ml-source-case-sidebar__item:hover img {
    transform: scale(1.02);
}

.ml-source-case-sidebar__item h3 {
    margin: 0;
    color: #707070;
    font-size: 16px;
    font-weight: 700;
    line-height: 26px;
    overflow-wrap: anywhere;
    transition: color 0.2s ease;
}

.ml-source-case-sidebar__item:hover h3 {
    color: #168cff;
}

.ml-source-case-sidebar__item time {
    display: block;
    margin-top: 10px;
    color: #006bd6;
    font-size: 14px;
    line-height: 24px;
    transition: color 0.2s ease;
}

.ml-source-case-sidebar__item:hover time {
    color: #168cff;
}

@media (max-width: 1279px) {
    .ml-source-case-detail {
        grid-template-columns: minmax(0, 1fr) 300px;
        gap: 42px;
    }
}

@media (min-width: 768px) {
    .ml-source-case-context__inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
    }

    .ml-source-case-context__crumb {
        max-width: min(760px, calc(100% - 390px));
    }

    .ml-source-case-context__nav {
        flex: 0 0 auto;
    }
}

@media (max-width: 1023px) {
    .ml-source-case-detail {
        grid-template-columns: minmax(0, 1fr);
        width: calc(100% - 32px);
        max-width: 900px;
        gap: 0;
        overflow: hidden;
        padding: 40px 0 56px;
    }

    .ml-source-case-sidebar__sticky {
        position: static;
    }

    .ml-source-case-sidebar {
        border-top: 1px solid #e8eeee;
        padding-top: 34px;
    }
}

@media (max-width: 767px) {
    .ml-source-case-context__inner {
        width: calc(100% - 32px);
        max-width: calc(100vw - 32px);
    }

    .ml-source-case-context__nav {
        gap: 8px 16px;
    }

    .ml-source-case-article__header {
        padding-bottom: 24px;
    }

    .ml-source-case-article__header h2 {
        font-size: 22px;
        line-height: 1.5;
        word-break: break-all;
    }

    .ml-source-case-detail--anli130 .ml-source-case-article__header h2,
    .ml-source-case-detail--anli131 .ml-source-case-article__header h2,
    .ml-source-case-detail--anli132 .ml-source-case-article__header h2 {
        font-size: 22px;
        line-height: 1.5;
    }

    .ml-source-case-article__body {
        padding-top: 30px;
    }

    .ml-source-case-detail--anli130 .ml-source-case-article__body,
    .ml-source-case-detail--anli131 .ml-source-case-article__body,
    .ml-source-case-detail--anli132 .ml-source-case-article__body {
        padding-top: 30px;
    }

    .ml-source-case-article__body p {
        font-size: 15px;
        line-height: 28px;
        word-break: break-all;
    }

    .ml-source-case-article,
    .ml-source-case-article__header,
    .ml-source-case-article__body,
    .ml-source-case-article__image,
    .ml-source-case-article__image-row,
    .ml-source-case-sidebar {
        max-width: 100%;
        min-width: 0;
    }

    .ml-source-case-article__lead {
        margin-bottom: 24px;
        font-size: 17px;
        line-height: 30px;
    }

    .ml-source-case-article__major-title {
        font-size: 23px;
        line-height: 34px;
    }

    .ml-source-case-article__minor-title {
        margin-top: 30px;
    }

    .ml-source-case-article__plain-title {
        font-size: 20px;
    }

    .ml-source-case-detail--anli130 .ml-source-case-article__plain-title,
    .ml-source-case-detail--anli131 .ml-source-case-article__plain-title,
    .ml-source-case-detail--anli132 .ml-source-case-article__plain-title {
        font-size: 20px;
        line-height: 1.45;
    }

    .ml-source-case-article__image-row {
        grid-template-columns: 1fr;
    }

    .ml-source-case-detail--anli141 .ml-source-case-article__image-row,
    .ml-source-case-detail--anli142 .ml-source-case-article__image-row {
        grid-template-columns: 1fr;
    }

    .ml-source-case-sidebar__head {
        padding: 0 22px;
    }

    .ml-source-case-sidebar__head strong {
        font-size: 24px;
    }
}

.ml-source-case-hero {
    position: relative;
    height: 242px;
    overflow: hidden;
    background-position: center;
    background-size: cover;
    color: #fff;
}

.ml-source-case-hero__shade {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.2);
}

.ml-source-case-hero__inner {
    position: relative;
    display: flex;
    width: min(1360px, calc(100% - 48px));
    height: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    text-align: center;
}

.ml-source-case-hero__inner h1 {
    margin: 0;
    color: #fff;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.ml-source-case-hero__inner p {
    max-width: 896px;
    margin: 16px 0 0;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    line-height: 28px;
    overflow-wrap: anywhere;
}

.ml-source-case-context--legacy {
    border-bottom: 1px solid #e8eeee;
    background: #fff;
}

.ml-source-case-context--legacy .ml-source-case-context__inner {
    width: min(1360px, calc(100% - 48px));
    min-height: 58px;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 0;
}

.ml-source-case-context--legacy .ml-source-case-context__crumb {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: nowrap;
    align-items: center;
    overflow-x: auto;
    color: #666;
    font-size: 14px;
    line-height: 24px;
    white-space: nowrap;
}

.ml-source-case-context--legacy .ml-source-case-context__crumb a {
    color: #009795;
}

.ml-source-case-context--legacy .ml-source-case-context__crumb span {
    margin: 0 8px;
}

.ml-source-case-context--legacy .ml-source-case-context__crumb span:last-child {
    margin-right: 0;
}

.ml-source-case-context--legacy .ml-source-case-context__nav {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 36px;
    overflow-x: auto;
    white-space: nowrap;
}

.ml-source-case-context--legacy .ml-source-case-context__nav a {
    display: inline-flex;
    flex-shrink: 0;
    min-height: 58px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: #222;
    font-size: 14px;
    font-weight: 400;
    line-height: 24px;
    text-align: center;
}

.ml-source-case-context--legacy .ml-source-case-context__nav a:hover {
    color: #009795;
}

.ml-source-case-context--legacy .ml-source-case-context__nav a.is-current {
    color: #009795;
}

.ml-source-case-detail--anli127,
.ml-source-case-detail--anli128,
.ml-source-case-detail--anli129 {
    grid-template-columns: minmax(0, 1080px) 300px;
    gap: 64px;
    width: min(1610px, calc(100% - 40px));
    padding: 56px 0;
}

.ml-source-case-detail--anli127 .ml-source-case-article__header,
.ml-source-case-detail--anli128 .ml-source-case-article__header,
.ml-source-case-detail--anli129 .ml-source-case-article__header {
    padding-bottom: 32px;
}

.ml-source-case-detail--anli127 .ml-source-case-article__header h2,
.ml-source-case-detail--anli128 .ml-source-case-article__header h2,
.ml-source-case-detail--anli129 .ml-source-case-article__header h2 {
    color: #222;
    font-size: 30px;
    font-weight: 600;
    line-height: 42px;
}

.ml-source-case-detail--anli127 .ml-source-case-article__header p,
.ml-source-case-detail--anli128 .ml-source-case-article__header p,
.ml-source-case-detail--anli129 .ml-source-case-article__header p {
    margin-top: 20px;
    color: #999;
}

.ml-source-case-article__body--legacy {
    padding-top: 40px;
}

.ml-source-case-detail--anli128 .ml-source-case-article__body--legacy {
    max-width: 900px;
    margin: 0 auto;
}

.ml-source-case-article__body--legacy p {
    margin: 16px 0;
}

.ml-source-case-detail--anli127 .ml-source-case-article__minor-title {
    margin: 48px 0 16px;
    color: #222;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.45;
}

.ml-source-case-article__center-title {
    margin: 24px 0;
    color: #3b8e8e;
    font-size: 17px;
    font-weight: 700;
    line-height: 32px;
    letter-spacing: 2px;
    text-align: center;
}

.ml-source-case-article__tracked-text,
.ml-source-case-article__caption,
.ml-source-case-article__legacy-list,
.ml-source-case-article__legacy-list ul {
    color: #333;
    font-size: 15px;
    line-height: 32px;
    letter-spacing: 2px;
}

.ml-source-case-article__tracked-text--strong {
    font-weight: 600;
}

.ml-source-case-article__caption {
    margin: 8px 0;
    text-align: center;
}

.ml-source-case-article__joined-text {
    color: #555;
    font-size: 16px;
    line-height: 30px;
}

.ml-source-case-article__joined-text--center {
    text-align: center;
}

.ml-source-case-article__legacy-list {
    margin: 16px 0;
}

.ml-source-case-article__legacy-list-title {
    margin: 16px 0;
    color: #f5bc17;
}

.ml-source-case-article__legacy-list ul {
    margin: 8px 0;
    padding-left: 32px;
    list-style: disc;
}

.ml-source-case-article__legacy-list li {
    margin: 0;
}

.ml-source-case-article__image--auto img {
    width: auto;
    margin: 0 auto;
}

.ml-source-case-detail--anli127 .ml-source-case-article__image,
.ml-source-case-detail--anli129 .ml-source-case-article__image {
    margin: 32px auto;
}

.ml-source-case-detail--anli128 .ml-source-case-article__image {
    margin: 24px auto;
}

.ml-source-case-article__legacy-footer {
    margin-top: 48px;
    text-align: center;
}

.ml-source-case-article__legacy-footer p {
    margin: 0;
    color: #555;
    font-size: 17px;
    line-height: 32px;
}

.ml-source-case-article__legacy-footer--strong p {
    color: #333;
    font-size: 18px;
    font-weight: 700;
}

.ml-source-case-article__qr-caption {
    margin: 12px 0 0;
    color: #777;
    font-size: 15px;
    line-height: 1.7;
    text-align: center;
}

.ml-source-case-article__qr-caption--strong {
    color: #333;
    font-size: 18px;
    font-weight: 700;
}

@media (min-width: 1280px) {
    .ml-source-case-detail--anli127,
    .ml-source-case-detail--anli128,
    .ml-source-case-detail--anli129 {
        grid-template-columns: minmax(0, 1080px) 300px;
        gap: 80px;
    }
}

@media (min-width: 768px) {
    .ml-source-case-context--legacy .ml-source-case-context__inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

@media (max-width: 1023px) {
    .ml-source-case-detail--anli127,
    .ml-source-case-detail--anli128,
    .ml-source-case-detail--anli129 {
        grid-template-columns: minmax(0, 1fr);
        width: calc(100% - 32px);
        max-width: 900px;
        gap: 0;
        padding: 40px 0 56px;
    }
}

@media (max-width: 767px) {
    .ml-source-case-hero__inner {
        width: calc(100% - 32px);
    }

    .ml-source-case-hero__inner h1 {
        font-size: 30px;
    }

    .ml-source-case-hero__inner p {
        font-size: 15px;
    }

    .ml-source-case-context--legacy .ml-source-case-context__inner {
        width: calc(100% - 32px);
        max-width: calc(100vw - 32px);
        min-height: 0;
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
        gap: 4px;
        padding: 8px 0;
    }

    .ml-source-case-context--legacy .ml-source-case-context__crumb {
        width: 100%;
        font-size: 13px;
    }

    .ml-source-case-context--legacy .ml-source-case-context__nav {
        width: 100%;
        justify-content: flex-start;
        gap: 24px;
    }

    .ml-source-case-context--legacy .ml-source-case-context__nav a {
        min-height: 34px;
        padding: 0;
    }

    .ml-source-case-detail--anli127 .ml-source-case-article__header h2,
    .ml-source-case-detail--anli128 .ml-source-case-article__header h2,
    .ml-source-case-detail--anli129 .ml-source-case-article__header h2 {
        font-size: 22px;
        line-height: 1.5;
    }

    .ml-source-case-article__body--legacy {
        padding-top: 30px;
    }
}

.ml-source-heading {
    margin: 0;
    padding-bottom: 16px;
    border-bottom: 1px solid #d9e3e3;
    color: #009795;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.18;
}

.ml-source-body {
    padding-top: 32px;
}

.ml-source-split {
    display: grid;
    gap: 40px;
    align-items: center;
}

.ml-source-copy {
    display: grid;
    gap: 14px;
    min-width: 0;
    color: #4f4f4f;
    font-size: 15px;
    line-height: 1.9;
}

.ml-source-copy p {
    margin: 0;
}

.ml-source-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding-left: 1.2em;
    color: #4f4f4f;
    font-size: 15px;
    line-height: 1.9;
}

.ml-source-figure {
    margin: 0;
    text-align: center;
}

.ml-source-figure img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 620px;
    object-fit: contain;
}

.ml-source-figure figcaption {
    margin-top: 14px;
    color: #666;
    font-size: 15px;
    line-height: 1.6;
}

.ml-source-showcase .ml-source-figure img {
    max-height: none;
}

.ml-source-video-wrap {
    background: #000;
}

.ml-source-video {
    display: block;
    width: 100%;
    height: 520px;
    background: #000;
    object-fit: contain;
}

.ml-source-gallery {
    display: grid;
    gap: 24px;
}

.ml-source-gallery .ml-source-figure {
    overflow: hidden;
    background: #fff;
}

.ml-source-gallery .ml-source-figure img {
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.ml-line-page {
    overflow-wrap: anywhere;
}

.ml-line-page p {
    margin: 0;
}

.ml-line-copy,
.ml-line-lms-feature__copy {
    color: #4f4f4f;
    font-size: 15px;
    line-height: 2;
}

.ml-line-copy {
    display: grid;
    gap: 0;
}

.ml-line-copy strong,
.ml-line-lms-feature__copy h3 {
    color: #000;
}

.ml-line-copy__subhead {
    margin-top: 24px !important;
}

.ml-line-check,
.ml-line-marker {
    color: #009795;
    font-weight: 700;
    transition: color 0.3s ease;
}

.ml-line-panel-title {
    margin: 0 0 20px !important;
    color: #000;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.35;
    transition: color 0.3s ease;
}

.ml-line-section-lead {
    margin: 0 0 24px !important;
    color: #000;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}

.ml-line-image {
    display: block;
    width: 100%;
    height: auto;
    margin-right: auto;
    margin-left: auto;
    object-fit: contain;
}

.ml-line-image--fms-feature {
    width: min(326px, 100%);
}

.ml-line-image--fms-line {
    width: min(1099px, 100%);
}

.ml-line-image--fms-info {
    width: min(1236px, 100%);
}

.ml-line-image--fms-module {
    width: min(1272px, 100%);
}

.ml-line-image--fms-execution {
    width: min(952px, 100%);
}

.ml-line-image--lms-tdm {
    width: min(728px, 100%);
}

.ml-line-image--lms-feature {
    width: min(760px, 100%);
}

.ml-line-fms-intro {
    display: grid;
    gap: 40px;
}

.ml-line-fms-feature-panel {
    display: grid;
    gap: 40px;
    align-items: center;
    background: #f5f5f5;
    padding: 24px;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.ml-line-fms-feature-panel:hover {
    background: #009795;
    color: #fff;
}

.ml-line-fms-feature-panel:hover .ml-line-copy,
.ml-line-fms-feature-panel:hover .ml-line-panel-title {
    color: #fff;
}

.ml-line-fms-feature-panel__lists {
    display: grid;
    gap: 32px;
}

.ml-line-fms-execution {
    display: grid;
    gap: 40px;
    align-items: center;
}

.ml-line-card-grid,
.ml-line-module-grid {
    display: grid;
}

.ml-line-card-grid {
    gap: 24px;
}

.ml-line-card {
    background: #fff;
    padding: 28px;
    transition: transform 0.3s ease, border-color 0.3s ease, background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}

.ml-line-card h3 {
    margin: 0;
    color: #000;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
    transition: color 0.3s ease;
}

.ml-line-card--problem {
    min-height: 230px;
    border: 1px solid #e6eeee;
    box-shadow: 0 2px 8px rgba(16, 45, 52, 0.05);
}

.ml-line-card__body {
    display: grid;
    gap: 8px;
    margin-top: 20px;
    color: #4f4f4f;
    font-size: 15px;
    line-height: 1.75;
    transition: color 0.3s ease;
}

.ml-line-card:hover,
.ml-line-module-item:hover {
    transform: translateY(-4px);
    background: #009795;
    color: #fff;
    box-shadow: 0 10px 30px rgba(0, 151, 149, 0.3);
}

.ml-line-card:hover {
    border-color: transparent;
}

.ml-line-card:hover h3,
.ml-line-card:hover p,
.ml-line-card:hover .ml-line-card__body,
.ml-line-card:hover .ml-line-marker {
    color: #fff;
}

.ml-line-lms-product-desc {
    color: #4f4f4f;
    font-size: 15px;
    line-height: 2;
}

.ml-line-lms-product-desc strong {
    color: #000;
}

.ml-line-module-grid {
    gap: 16px;
    margin-top: 32px;
}

.ml-line-module-item {
    display: grid;
    min-height: 96px;
    place-items: center;
    background: #fff;
    padding: 18px;
    color: #333;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    box-shadow: 0 2px 8px rgba(16, 45, 52, 0.05);
    transition: transform 0.3s ease, background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}

.ml-line-lms-feature {
    display: grid;
    gap: 40px;
    align-items: center;
}

.ml-line-lms-feature__copy h3 {
    margin: 0 0 16px;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.35;
}

.ml-line-lms-feature__copy p {
    margin: 0;
}

.ml-line-card--why {
    min-height: 240px;
    background: #f5f5f5;
}

.ml-line-card--why p {
    margin: 20px 0 0;
    color: #4f4f4f;
    font-size: 15px;
    line-height: 2;
    transition: color 0.3s ease;
}

.ml-emes-page p,
.ml-hardware-page p {
    margin: 0;
}

.ml-emes-copy,
.ml-emes-lines,
.ml-emes-plan-card__copy,
.ml-emes-reason p,
.ml-hardware-spec-group__items {
    color: #4f4f4f;
    font-size: 15px;
    line-height: 2;
}

.ml-emes-copy,
.ml-emes-lines,
.ml-emes-showcase,
.ml-emes-tdm,
.ml-emes-plan-card,
.ml-emes-plan-card__copy,
.ml-emes-reason-grid,
.ml-hardware-head,
.ml-hardware-card,
.ml-hardware-spec-stack,
.ml-hardware-visual-stack,
.ml-hardware-spec-group__items {
    display: grid;
}

.ml-emes-copy {
    gap: 8px;
}

.ml-emes-lines {
    gap: 8px;
}

.ml-emes-showcase,
.ml-emes-tdm {
    gap: 32px;
}

.ml-emes-image,
.ml-hardware-image {
    display: block;
    width: 100%;
    height: auto;
    margin-right: auto;
    margin-left: auto;
    object-fit: contain;
}

.ml-emes-image--module {
    width: min(1100px, 100%);
}

.ml-emes-image--dmp {
    width: min(1190px, 100%);
}

.ml-emes-image--tdm {
    width: min(1160px, 100%);
}

.ml-emes-image--plan {
    width: min(552px, 100%);
}

.ml-emes-plan-grid {
    display: grid;
    gap: 32px;
}

.ml-emes-plan-card {
    gap: 18px;
    align-content: start;
    background: #fff;
    padding: 28px;
    box-shadow: 0 3px 15px rgba(0, 0, 0, 0.08);
}

.ml-emes-plan-card h3,
.ml-hardware-spec-group h3 {
    margin: 0;
    color: #000;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.45;
}

.ml-emes-plan-card__copy {
    gap: 4px;
}

.ml-emes-plan-card__copy strong {
    color: #000;
    font-weight: 700;
}

.ml-emes-reason-grid {
    gap: 24px;
}

.ml-emes-reason {
    display: grid;
    gap: 16px;
    min-height: 150px;
    align-content: start;
    background: #f5f5f5;
    padding: 28px;
    transition: transform 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.ml-emes-reason span {
    color: #009795;
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
}

.ml-emes-reason:hover {
    transform: translateY(-4px);
    background: #fff;
    box-shadow: 0 10px 30px rgba(0, 151, 149, 0.14);
}

.ml-hardware-section {
    background: #fff;
    padding: 56px 0;
}

.ml-hardware-head {
    gap: 8px;
    margin-bottom: 32px;
}

.ml-hardware-head h2 {
    margin: 0;
    color: #009795;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.2;
}

.ml-hardware-head p {
    color: #333;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.45;
}

.ml-hardware-head span {
    color: #777;
    font-size: 16px;
    line-height: 1.6;
}

.ml-hardware-card {
    gap: 40px;
    background: #f5f5f5;
    padding: 40px;
    box-shadow: 0 3px 15px 2px rgba(0, 0, 0, 0.15);
}

.ml-hardware-spec-stack {
    gap: 24px;
    align-content: start;
}

.ml-hardware-visual-stack {
    gap: 32px;
    align-content: start;
}

.ml-hardware-image {
    width: min(800px, 100%);
}

.ml-hardware-spec-group__items {
    gap: 4px;
    margin-top: 8px;
}

.ml-product-section .ml-source-container > .ml-source-body:first-child {
    padding-top: 0;
}

.ml-product-page p {
    margin: 0;
}

.ml-product-page {
    overflow-wrap: anywhere;
}

.ml-product-split > *,
.ml-product-grid > *,
.ml-product-flow > *,
.ml-product-feature-card > *,
.ml-product-spectra > *,
.ml-product-monitor-copy > * {
    min-width: 0;
}

.ml-product-image {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

.ml-product-image--medium {
    width: min(450px, 100%);
    margin: 0 auto;
}

.ml-product-image--global {
    width: min(1078px, 100%);
    margin: 32px auto 0;
}

.ml-product-image--wifi {
    width: min(528px, 100%);
    margin: 0 auto;
}

.ml-product-image--icon {
    width: 109px;
    height: 109px;
    margin: 0 auto;
}

.ml-product-image--wide {
    width: min(1300px, 100%);
    margin: 0 auto;
}

.ml-product-image--parts {
    margin-top: 40px;
}

.ml-product-figure img {
    max-height: none;
}

.ml-product-figure--narrow {
    width: min(520px, 100%);
    margin-right: auto;
    margin-left: auto;
}

.ml-product-split,
.ml-product-grid,
.ml-product-flow,
.ml-product-feature-stack,
.ml-product-before-after,
.ml-product-monitor-copy {
    display: grid;
}

.ml-product-split {
    gap: 40px;
    align-items: center;
}

.ml-product-grid {
    gap: 32px;
}

.ml-product-flow {
    gap: 32px;
}

.ml-product-copy,
.ml-product-list {
    color: #4f4f4f;
    font-size: 15px;
    line-height: 2;
}

.ml-product-copy {
    display: grid;
    gap: 0;
}

.ml-product-copy--spaced {
    gap: 0;
    margin-top: 20px;
}

.ml-product-copy--single {
    line-height: 2;
}

.ml-product-list {
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ml-product-emphasis {
    margin-top: 20px !important;
    color: #009795;
    font-weight: 700;
}

.ml-product-strong {
    font-weight: 700;
}

.ml-product-cardless h3,
.ml-product-subhead--black,
.ml-product-question {
    margin: 0 0 20px;
    color: #000;
    font-weight: 700;
    line-height: 1.35;
}

.ml-product-cardless h3 {
    color: #009795;
    font-size: 18px;
}

.ml-product-subhead--black {
    font-size: 20px;
}

.ml-product-question {
    font-size: 19px;
}

.ml-product-question--offset {
    margin-top: 48px;
}

.ml-product-question--offset-small {
    margin-top: 32px;
    font-size: 18px;
}

.ml-product-cardless p {
    margin-top: 20px;
    color: #4f4f4f;
    font-size: 15px;
    line-height: 1.9;
}

.ml-product-event-grid h4 {
    margin: 20px 0 8px;
    color: #000;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
}

.ml-product-app-card img {
    aspect-ratio: 471 / 327;
    object-fit: cover;
}

.ml-product-app-card h3 {
    margin: 16px 0 0;
    color: #000;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.45;
}

.ml-product-application-desc {
    margin-top: 32px !important;
    color: #4f4f4f;
    font-size: 16px;
    line-height: 1.7;
}

.ml-product-feature-stack {
    gap: 28px;
}

.ml-product-feature-card {
    display: grid;
    gap: 24px;
    align-items: center;
}

.ml-product-feature-card h3 {
    margin: 0;
    color: #009795;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
}

.ml-product-feature-card p,
.ml-product-install p {
    margin-top: 12px;
    color: #4f4f4f;
    font-size: 16px;
    line-height: 1.75;
}

.ml-product-diagnosis-copy {
    color: #333;
    font-size: 17px;
    line-height: 1.9;
}

.ml-product-diagnosis-copy h3 {
    margin: 0 0 24px;
    color: #009795;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.2;
}

.ml-product-benefit-label {
    padding-top: 16px;
}

.ml-product-before-after {
    gap: 48px;
}

.ml-product-spectra {
    display: grid;
    gap: 40px;
}

.ml-product-spectra h3 {
    margin: 0;
    color: #009795;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
}

.ml-product-monitor-copy {
    gap: 32px;
    color: #4f4f4f;
    font-size: 15px;
    line-height: 2;
}

.ml-product-monitor-copy h4 {
    margin: 0;
    color: #000;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
}

.ml-product-monitor-copy p {
    margin-top: 4px;
}

.ml-product-monitor-note {
    margin-top: 12px !important;
    color: #777;
    white-space: pre-wrap;
}

.ml-product-benefits {
    display: grid;
    gap: 24px;
}

.ml-product-benefits div {
    display: grid;
    min-height: 128px;
    place-items: center;
    background: #fff;
    padding: 24px;
    color: #333;
    font-size: 23px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    box-shadow: 0 2px 8px rgba(16, 45, 52, 0.06);
    transition: transform 0.3s ease, background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}

.ml-product-benefits div:hover {
    transform: translateY(-4px);
    background: #009795;
    color: #fff;
    box-shadow: 0 12px 24px rgba(0, 151, 149, 0.2);
}

.ml-company-section-title {
    text-align: center;
}

.ml-source-page--company .ml-source-container {
    width: min(1200px, calc(100% - 40px));
}

.ml-company-section-title h2 {
    margin: 0;
    color: #333;
    font-size: 34px;
    font-weight: 700;
    line-height: 1.2;
}

.ml-company-section-title p {
    margin: 12px 0 0;
    color: #999;
    font-size: 18px;
    line-height: 1.5;
}

.ml-company-profile {
    scroll-margin-top: 104px;
    background-color: #fff;
    background-position: center;
    background-size: cover;
    padding: 76px 0;
}

.ml-company-profile__copy {
    max-width: 1060px;
    margin: 22px auto 0;
    color: #555;
    font-size: 16px;
    line-height: 2;
}

.ml-company-profile__copy p {
    margin: 0 0 10px;
    text-indent: 2em;
}

.ml-company-profile__name {
    color: #009795;
    font-size: 22px;
    font-weight: 700;
    text-align: center;
    text-indent: 0 !important;
}

.ml-company-metrics {
    display: grid;
    gap: 24px;
    margin-top: 40px;
    padding-top: 36px;
    border-top: 1px solid #e5eeee;
}

.ml-company-metric {
    text-align: center;
}

.ml-company-metric strong {
    display: block;
    color: #009795;
    font-size: 40px;
    font-weight: 700;
    line-height: 1;
}

.ml-company-metric strong span {
    margin-left: 4px;
    font-size: 22px;
}

.ml-company-metric p {
    margin: 16px 0 0;
    color: #555;
    font-size: 15px;
    line-height: 1.6;
}

.ml-company-culture,
.ml-company-honor,
.ml-company-advantage,
.ml-company-jobs,
.ml-contact-info,
.ml-contact-form-section {
    padding: 76px 0;
    background: #fff;
}

.ml-company-culture {
    scroll-margin-top: 104px;
}

.ml-company-culture__panel {
    display: grid;
    margin-top: 48px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 16px 45px rgba(0, 0, 0, 0.1);
}

.ml-company-culture__slider {
    position: relative;
    min-height: 300px;
    background: #0e1421;
}

.ml-company-culture__frame,
.ml-company-culture__slide {
    position: absolute;
    inset: 0;
}

.ml-company-culture__slide {
    margin: 0;
    opacity: 0;
    transition: opacity 0.45s ease;
}

.ml-company-culture__slide.is-active {
    opacity: 1;
}

.ml-company-culture__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ml-company-slider__nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: grid;
    width: 44px;
    height: 44px;
    transform: translateY(-50%);
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.3);
    color: #fff;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.ml-company-slider__nav--prev {
    left: 12px;
}

.ml-company-slider__nav--next {
    right: 12px;
}

.ml-company-slider__dots {
    position: absolute;
    bottom: 16px;
    left: 50%;
    z-index: 2;
    display: flex;
    transform: translateX(-50%);
    gap: 8px;
}

.ml-company-slider__dot {
    width: 8px;
    height: 8px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: width 0.2s ease, background-color 0.2s ease;
}

.ml-company-slider__dot.is-active {
    width: 22px;
    background: #fff;
}

.ml-company-culture__copy {
    display: grid;
    align-content: center;
    padding: 32px;
}

.ml-company-culture__copy h3 {
    margin: 0;
    color: #333;
    font-size: 30px;
    font-weight: 600;
    line-height: 1.35;
}

.ml-company-culture__en {
    margin: 20px 0 28px;
    color: #009795;
    font-size: 18px;
    letter-spacing: 0;
    text-transform: uppercase;
}

.ml-company-culture__copy p {
    margin: 0 0 12px;
    color: #555;
    font-size: 16px;
    line-height: 1.85;
}

.ml-company-culture__copy strong {
    color: #333;
}

.ml-company-gif img {
    display: block;
    width: 100%;
    height: auto;
}

.ml-company-honor {
    scroll-margin-top: 104px;
}

.ml-company-honor__tabs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 40px;
}

.ml-company-honor__tab {
    min-height: 44px;
    border: 0;
    background: #f4f4f4;
    padding: 10px 28px;
    color: #555;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.ml-company-honor__tab.is-active,
.ml-company-honor__tab:hover {
    background: #009795;
    color: #fff;
}

.ml-company-honor__panels {
    margin-top: 36px;
}

.ml-company-honor__panel {
    display: none;
    gap: 20px;
}

.ml-company-honor__panel.is-active {
    display: grid;
}

.ml-company-honor-card {
    border: 1px solid #e7eeee;
    background: #fff;
    padding: 20px;
    text-align: center;
    box-shadow: 0 8px 22px rgba(20, 30, 45, 0.04);
}

.ml-company-honor-card div {
    display: flex;
    height: 360px;
    align-items: center;
    justify-content: center;
    background: #f7f7f7;
    padding: 16px;
}

.ml-company-honor-card img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.ml-company-honor-card h3 {
    margin: 18px 0 0;
    color: #333;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.7;
}

.ml-company-advantage__grid {
    display: grid;
    gap: 32px;
    max-width: 1100px;
    margin: 48px auto 0;
}

.ml-company-advantage__grid article {
    background: #f5f5f5;
    padding: 32px;
}

.ml-company-advantage__grid h3 {
    margin: 0;
    color: #009795;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.35;
}

.ml-company-advantage__grid p {
    margin: 24px 0 0;
    color: #555;
    font-size: 15px;
    line-height: 1.9;
}

.ml-company-jobs img {
    display: block;
    width: 100%;
    height: auto;
}

.ml-contact-info__grid {
    display: grid;
    width: min(1610px, calc(100% - 40px));
    margin: 0 auto;
    gap: 48px;
}

.ml-contact-panel h2 {
    margin: 0;
    padding-bottom: 28px;
    border-bottom: 1px solid #d7d7d7;
    color: #333;
    font-size: 28px;
    font-weight: 500;
    line-height: 1.3;
}

.ml-contact-panel h2:not(:first-child) {
    margin-top: 44px;
}

.ml-contact-lines {
    display: grid;
    gap: 14px;
    margin-top: 34px;
    color: #777;
    font-size: 16px;
    line-height: 1.75;
}

.ml-contact-lines p,
.ml-contact-social-desc {
    margin: 0;
}

.ml-contact-lines strong {
    color: #666;
    font-weight: 700;
}

.ml-contact-social-desc {
    margin-top: 30px;
    color: #777;
    font-size: 16px;
}

.ml-contact-qr {
    display: flex;
    flex-wrap: wrap;
    gap: 48px;
    margin-top: 24px;
}

.ml-contact-qr .ml-source-figure img {
    width: 150px;
    height: 150px;
    object-fit: cover;
}

.ml-contact-map {
    display: block;
    margin-top: 34px;
    background: #fff;
    padding: 8px;
    box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);
    transition: opacity 0.2s ease;
}

.ml-contact-map:hover {
    opacity: 0.94;
}

.ml-contact-map img {
    display: block;
    width: 100%;
    height: auto;
}

.ml-contact-form-panel {
    max-width: 1400px;
    margin: 48px auto 0;
}

.ml-contact-form-panel .ml-ajax-form {
    gap: 22px;
}

.ml-contact-form-panel textarea {
    min-height: 180px;
}

.ml-contact-form-panel button[type="submit"] {
    width: min(486px, 100%);
    min-height: 44px;
    margin: 24px auto 0;
    border-radius: 22px;
}

@media (min-width: 640px) {
    .ml-source-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ml-line-module-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ml-company-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .ml-source-split {
        grid-template-columns: minmax(0, 1fr) minmax(360px, 0.86fr);
        gap: 64px;
    }

    .ml-source-split--reverse .ml-source-copy {
        order: 2;
    }

    .ml-source-gallery,
    .ml-company-honor__panel {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ml-line-fms-feature-panel__lists,
    .ml-line-card-grid--problems,
    .ml-line-card-grid--why {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ml-emes-plan-grid,
    .ml-emes-reason-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ml-product-grid--3,
    .ml-product-benefits {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ml-product-feature-card {
        grid-template-columns: 109px minmax(0, 1fr);
    }

    .ml-company-metrics {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ml-company-culture__panel {
        grid-template-columns: minmax(0, 1fr) 520px;
    }

    .ml-company-culture__slider {
        min-height: 400px;
    }

    .ml-company-advantage__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ml-contact-info__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 96px;
    }
}

@media (min-width: 1024px) {
    .ml-line-fms-feature-panel {
        grid-template-columns: minmax(0, 1fr) 326px;
    }

    .ml-line-fms-feature-panel__right {
        padding-top: 44px;
    }

    .ml-line-fms-execution {
        grid-template-columns: 0.75fr 1fr;
    }

    .ml-line-card-grid--problems {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ml-line-module-grid,
    .ml-line-card-grid--why {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ml-line-lms-feature {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ml-emes-reason-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .ml-hardware-card {
        grid-template-columns: minmax(0, 1fr) minmax(640px, 800px);
    }

    .ml-product-grid--2,
    .ml-product-monitor-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ml-product-split--intro {
        grid-template-columns: 1.05fr 0.95fr;
    }

    .ml-product-split--industry {
        grid-template-columns: 0.8fr 1fr;
    }

    .ml-product-split--features {
        grid-template-columns: 528px minmax(0, 1fr);
        gap: 48px;
    }

    .ml-product-split--diagnosis {
        grid-template-columns: minmax(0, 854px) 360px;
    }

    .ml-product-spectra {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: center;
    }

    .ml-product-spectra h3 {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767px) {
    .ml-page-crumb__nav {
        max-width: 100%;
        margin-left: 0;
        padding-bottom: 2px;
    }

    .ml-source-container {
        width: min(100% - 32px, 1360px);
    }

    .ml-source-section,
    .ml-company-profile,
    .ml-company-culture,
    .ml-company-honor,
    .ml-company-advantage,
    .ml-company-jobs,
    .ml-contact-info,
    .ml-contact-form-section {
        padding: 56px 0;
    }

    .ml-source-heading,
    .ml-company-section-title h2 {
        font-size: 26px;
    }

    .ml-source-body {
        padding-top: 26px;
    }

    .ml-source-video {
        height: auto;
        aspect-ratio: 16 / 9;
    }

    .ml-line-card {
        min-height: 0;
        padding: 24px;
    }

    .ml-line-card h3,
    .ml-line-lms-feature__copy h3,
    .ml-line-panel-title {
        font-size: 18px;
    }

    .ml-line-fms-feature-panel {
        padding: 20px;
    }

    .ml-line-module-item {
        min-height: 84px;
        font-size: 17px;
    }

    .ml-emes-plan-card,
    .ml-emes-reason,
    .ml-hardware-card {
        padding: 24px;
    }

    .ml-hardware-section {
        padding: 56px 0;
    }

    .ml-hardware-head h2 {
        font-size: 26px;
    }

    .ml-hardware-head p {
        font-size: 18px;
    }

    .ml-product-question {
        font-size: 18px;
    }

    .ml-product-diagnosis-copy h3 {
        font-size: 24px;
    }

    .ml-product-benefits div {
        min-height: 108px;
        font-size: 20px;
    }

    .ml-company-culture__copy {
        padding: 28px 24px;
    }

    .ml-company-culture__copy h3 {
        font-size: 24px;
    }

    .ml-company-honor-card div {
        height: 280px;
    }

    .ml-contact-panel h2 {
        font-size: 24px;
    }

    .ml-contact-qr {
        gap: 28px;
    }
}

@media print {
    header,
    footer,
    aside,
    #trial-modal,
    .ml-rail-item {
        display: none !important;
    }

    body {
        background: #fff;
        color: #000;
    }
}
