/* roulang page: index */
:root {
    --c-primary: #2C6A4F;
    --c-primary-2: #245A43;
    --c-primary-3: #1B4634;
    --c-accent: #C4843A;
    --c-accent-2: #A86C2C;
    --c-pine: #3E8F63;
    --bg: #F4EFE6;
    --bg-muted: #E7E2D8;
    --bg-card: #FBF8F2;
    --bg-dark: #1E2A24;
    --ink: #1C241F;
    --ink-2: #5C675F;
    --ink-3: #7A847C;
    --line: #C9D1C6;
    --line-2: #A7B4AA;
    --white: #FFFbf5;
    --danger: #8B3A2F;
    --danger-bg: #F4E0DB;
    --radius: 14px;
    --radius-sm: 9px;
    --radius-xs: 8px;
    --shadow: 0 8px 22px rgba(30, 42, 36, 0.08);
    --shadow-sm: 0 4px 12px rgba(30, 42, 36, 0.06);
    --space: 22px;
    --container: 1200px;
    --header-top: 42px;
    --header-main: 70px;
    --font: "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; padding: 0; }
body {
    font-family: var(--font);
    font-size: 16px;
    line-height: 1.8;
    color: var(--ink);
    background: var(--bg);
    overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-primary); text-decoration: none; transition: color .2s ease, opacity .2s ease; }
a:hover { color: var(--c-primary-2); }
button, input, select, textarea { font-family: inherit; font-size: 16px; }
button { cursor: pointer; border: 0; background: none; }
p { margin: 0 0 1.35em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0; padding: 0; }
h1, h2, h3, h4 { margin: 0; color: var(--ink); font-weight: 700; letter-spacing: .02em; }
h1 { font-size: clamp(28px, 4.2vw, 46px); line-height: 1.25; }
h2 { font-size: clamp(24px, 3vw, 30px); line-height: 1.3; }
h3 { font-size: 19px; line-height: 1.4; }
.skip {
    position: absolute; left: -999px; top: 8px; background: var(--c-accent); color: #fff;
    padding: 10px 16px; z-index: 2000; border-radius: 8px;
}
.skip:focus { left: 12px; }
.container { width: min(100% - 36px, var(--container)); margin: 0 auto; }
.section { padding: 78px 0; position: relative; }
.section-muted { background: var(--bg-muted); }
.section-paper { background: var(--bg); }
.section-head { margin-bottom: 34px; max-width: 760px; }
.section-head h2 { margin-bottom: 18px; }
.section-head p { color: var(--ink-2); font-size: 16px; line-height: 1.8; }
.kicker {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 13px; letter-spacing: .12em; color: var(--c-primary);
    font-weight: 600; margin-bottom: 12px;
}
.kicker::before {
    content: ""; width: 18px; height: 2px; background: var(--c-accent); display: block;
}
.badge {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(44, 106, 79, .1); color: var(--c-primary-2);
    border: 1px solid rgba(44, 106, 79, .18);
    border-radius: 999px; padding: 4px 10px; font-size: 12px; line-height: 1.4;
}
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 44px; padding: 10px 18px; border-radius: var(--radius-xs);
    font-weight: 650; letter-spacing: .04em; border: 1px solid transparent;
    transition: transform .15s ease, background .2s ease, box-shadow .2s ease, border-color .2s ease;
    text-decoration: none; white-space: nowrap;
}
.btn:active { transform: translateY(1px); }
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 2px solid var(--c-accent); outline-offset: 2px;
}
.btn-primary { background: var(--c-primary); color: #fff; box-shadow: 0 6px 14px rgba(44, 106, 79, .22); }
.btn-primary:hover { background: var(--c-primary-2); color: #fff; }
.btn-ghost { background: transparent; color: var(--white); border-color: rgba(255,251,245,.55); }
.btn-ghost:hover { background: rgba(255,251,245,.1); color: #fff; }
.btn-line { background: transparent; color: var(--c-accent-2); border-color: var(--c-accent); }
.btn-line:hover { background: rgba(196, 132, 58, .1); color: var(--c-accent-2); }
.btn-white { background: #fff; color: var(--c-primary-2); }
.btn-white:hover { background: var(--bg); color: var(--c-primary-3); }
.card {
    background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--radius);
    box-shadow: var(--shadow-sm); padding: 24px; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:hover { transform: translateY(-3px); border-color: var(--c-primary); box-shadow: var(--shadow); }
.card h3 { margin-bottom: 10px; }
.card h3::after {
    content: ""; display: block; width: 28px; height: 3px; background: var(--c-primary); margin-top: 10px; border-radius: 2px;
}
.site-header {
    position: sticky; top: 0; z-index: 1000; box-shadow: 0 8px 20px rgba(30, 42, 36, .06);
}
.header-top {
    background: var(--bg-muted); min-height: var(--header-top);
    display: flex; align-items: center; font-size: 13px; color: var(--ink-2); line-height: 1.5;
}
.header-top-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: min(100% - 36px, var(--container)); margin: 0 auto; padding: 6px 0; }
.header-top a { color: var(--ink); }
.header-top a:hover { color: var(--c-primary); }
.top-contacts { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }
.top-certs { display: flex; gap: 8px; flex-wrap: wrap; }
.header-main {
    background: var(--white); min-height: var(--header-main);
    display: flex; align-items: center; border-bottom: 1px solid var(--line);
}
.header-main-inner {
    width: min(100% - 36px, var(--container)); margin: 0 auto;
    display: flex; align-items: center; gap: 18px; min-height: var(--header-main);
}
.logo {
    display: flex; align-items: center; gap: 10px; color: var(--ink); flex-shrink: 0;
}
.logo:hover { color: var(--c-primary); }
.logo-mark {
    width: 42px; height: 42px; border-radius: 10px; background: var(--c-primary);
    display: grid; place-items: center; box-shadow: 0 6px 14px rgba(44, 106, 79, .25);
}
.logo-text { display: flex; flex-direction: column; line-height: 1.15; }
.logo-text strong { font-size: 18px; font-weight: 800; }
.logo-text span { font-size: 12px; color: var(--ink-2); letter-spacing: .18em; margin-top: 3px; }
.nav-desk {
    display: flex; align-items: center; gap: 4px; margin-left: auto; flex-wrap: nowrap;
}
.nav-desk a {
    color: var(--ink); font-size: 14px; padding: 10px 9px; min-height: 44px;
    display: inline-flex; align-items: center; white-space: nowrap; border-radius: 8px;
}
.nav-desk a:hover, .nav-desk a.active { color: var(--c-primary); background: rgba(44, 106, 79, .08); }
.header-cta { margin-left: 10px; flex-shrink: 0; }
.menu-btn {
    display: none; width: 44px; height: 44px; border-radius: 8px; border: 1px solid var(--line);
    align-items: center; justify-content: center; flex-direction: column; gap: 5px;
}
.menu-btn span { width: 18px; height: 2px; background: var(--ink); display: block; }
.drawer {
    position: fixed; inset: 0 0 0 auto; width: min(86vw, 360px); background: var(--white);
    transform: translateX(100%); transition: transform .28s ease; z-index: 1200;
    box-shadow: -12px 0 30px rgba(30, 42, 36, .16); padding: 24px 22px; display: flex; flex-direction: column; gap: 8px;
}
.drawer.open { transform: translateX(0); }
.drawer a { min-height: 44px; display: flex; align-items: center; color: var(--ink); padding: 8px 6px; border-bottom: 1px solid var(--bg-muted); }
.drawer-mask {
    position: fixed; inset: 0; background: rgba(30, 42, 36, .4); opacity: 0; pointer-events: none;
    transition: opacity .28s ease; z-index: 1100;
}
.drawer-mask.show { opacity: 1; pointer-events: auto; }
.hero {
    position: relative; min-height: 82vh; color: var(--white); overflow: hidden;
}
.hero-slides, .hero-slide {
    position: absolute; inset: 0;
}
.hero-slide {
    opacity: 0; transition: opacity .7s ease; background: #1E2A24 center/cover no-repeat;
}
.hero-slide.is-on { opacity: 1; }
.hero-slide::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(14, 22, 18, .72) 0%, rgba(14, 22, 18, .28) 48%, rgba(14, 22, 18, .78) 100%);
}
.hero-grid {
    position: relative; z-index: 2; width: min(100% - 36px, var(--container)); margin: 0 auto;
    min-height: 82vh; display: grid; grid-template-columns: 1.15fr .85fr; gap: 36px; align-items: center; padding: 54px 0 72px;
}
.hero h2.hero-kicker {
    font-size: 13px; letter-spacing: .2em; font-weight: 600; color: #E8D3B0; margin-bottom: 14px;
}
.hero-lead { font-size: 16px; line-height: 1.85; color: rgba(255,251,245,.88); max-width: 620px; margin: 16px 0 26px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.slide-note {
    min-height: 52px; color: #F0E2C8; font-size: 15px;
}
.hero-ctrl {
    position: absolute; z-index: 3; top: 50%; transform: translateY(-50%);
    width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,251,245,.4);
    background: rgba(30, 42, 36, .35); color: #fff; display: grid; place-items: center;
}
.hero-prev { left: 16px; }
.hero-next { right: 16px; }
.hero-dots { display: flex; gap: 8px; }
.hero-dots button {
    width: 28px; height: 8px; border-radius: 99px; background: rgba(255,251,245,.28); min-height: 8px;
}
.hero-dots button.is-on { background: var(--c-accent); width: 36px; }
.quiz {
    background: rgba(251, 248, 242, .94); color: var(--ink); border-radius: 16px; padding: 22px;
    border: 1px solid rgba(201, 209, 198, .8); box-shadow: 0 16px 32px rgba(14, 22, 18, .22);
}
.quiz h3 { font-size: 18px; margin-bottom: 8px; }
.quiz .preview {
    background: #EEF4EF; border: 1px dashed var(--line-2); border-radius: 10px; padding: 12px 14px; margin: 12px 0 16px;
}
.quiz .preview strong { color: var(--c-primary); font-size: 20px; display: block; line-height: 1.3; }
.quiz-step { display: none; }
.quiz-step.on { display: block; }
.quiz-opts { display: grid; gap: 8px; margin: 12px 0 16px; }
.quiz-opts button {
    min-height: 44px; text-align: left; padding: 8px 12px; border-radius: 8px;
    border: 1px solid var(--line); background: #fff; color: var(--ink);
}
.quiz-opts button:hover, .quiz-opts button.pick { border-color: var(--c-primary); background: #E8F1EC; }
.quiz-progress { height: 6px; background: #E7E2D8; border-radius: 99px; overflow: hidden; margin-bottom: 12px; }
.quiz-progress span { display: block; height: 100%; background: var(--c-primary); width: 25%; transition: width .25s ease; }
.metrics { background: var(--bg-card); }
.metric-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
}
.metric {
    background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 18px 16px 16px;
    position: relative; overflow: hidden;
}
.metric::before {
    content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--c-primary);
}
.metric b { display: block; font-size: 30px; line-height: 1.15; color: var(--c-primary-2); font-variant-numeric: tabular-nums; }
.metric span { color: var(--ink-2); font-size: 13px; display: block; margin-top: 6px; }
.bar { height: 6px; background: var(--bg-muted); border-radius: 99px; margin-top: 12px; overflow: hidden; }
.bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--c-primary), var(--c-pine)); }
.ring {
    --p: 86; width: 54px; height: 54px; border-radius: 50%;
    background: conic-gradient(var(--c-primary) calc(var(--p) * 1%), var(--bg-muted) 0);
    display: grid; place-items: center; margin-left: auto;
}
.ring::after { content: ""; width: 38px; height: 38px; background: #fff; border-radius: 50%; }
.intro-grid {
    display: grid; grid-template-columns: 1.15fr .85fr; gap: 42px; align-items: center;
}
.intro-pic { border-radius: 16px; overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow); min-height: 420px; }
.intro-pic img { width: 100%; height: 100%; object-fit: cover; min-height: 420px; }
.param-list { display: grid; gap: 10px; margin-top: 22px; }
.param {
    display: grid; grid-template-columns: 92px 1fr auto; gap: 10px; align-items: center;
    background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; font-size: 14px;
}
.param .track { height: 7px; background: var(--bg-muted); border-radius: 99px; overflow: hidden; }
.param .track i { height: 100%; display: block; background: var(--c-primary); }
.team-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 22px; }
.team { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px; display: flex; gap: 10px; align-items: center; }
.team b { display: block; font-size: 14px; }
.team span { font-size: 12px; color: var(--ink-2); }
.avatar {
    width: 44px; height: 44px; border-radius: 50%; background: var(--c-primary); color: #fff;
    display: grid; place-items: center; font-weight: 700; flex-shrink: 0;
}
.matrix-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.matrix-card { padding: 24px 24px 20px; }
.num {
    width: 36px; height: 36px; border-radius: 8px; border: 1px solid var(--c-primary);
    color: var(--c-primary); display: grid; place-items: center; font-weight: 700; margin-bottom: 14px; font-size: 13px;
}
.result-tag { display: inline-block; margin-top: 12px; color: var(--c-accent-2); font-size: 13px; font-weight: 650; }
.plan-wrap { display: grid; grid-template-columns: 1.3fr .7fr; gap: 16px; }
.plan-main { padding: 0; overflow: hidden; display: grid; grid-template-columns: 1.1fr .9fr; min-height: 390px; }
.plan-main img, .plan-side img { width: 100%; height: 100%; object-fit: cover; }
.plan-copy { padding: 26px; display: flex; flex-direction: column; justify-content: center; }
.plan-side { display: grid; gap: 16px; }
.plan-mini { padding: 0; overflow: hidden; display: grid; grid-template-columns: 120px 1fr; min-height: 187px; }
.plan-mini .plan-copy { padding: 16px 16px 16px 14px; }
.meta-line { font-size: 13px; color: var(--ink-2); margin: 8px 0 14px; }
.compare-box { display: grid; grid-template-columns: 1.5fr .7fr; gap: 18px; }
table.compare { width: 100%; border-collapse: collapse; background: #fff; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); }
table.compare th, table.compare td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--bg-muted); font-size: 14.5px; }
table.compare th { background: var(--c-primary); color: #fff; font-weight: 650; }
table.compare tr:last-child td { border-bottom: 0; }
.note { font-size: 13px; color: var(--ink-2); margin-top: 12px; }
.verdict {
    background: var(--c-primary-3); color: #F4EFE6; border-radius: 14px; padding: 24px;
}
.verdict h3 { color: #fff; margin-bottom: 12px; }
.verdict li { list-style: none; padding: 8px 0 8px 18px; position: relative; }
.verdict li::before { content: ""; width: 7px; height: 7px; background: var(--c-accent); border-radius: 50%; position: absolute; left: 0; top: 16px; }
.dark-case { background: var(--bg-dark); color: #F4EFE6; padding: 0; }
.dark-grid { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 520px; }
.dark-grid img { width: 100%; height: 100%; object-fit: cover; min-height: 520px; }
.dark-copy { padding: 64px 48px; display: flex; flex-direction: column; justify-content: center; }
.dark-copy h2 { color: #fff; margin: 0 0 22px; }
.idea { border-left: 3px solid var(--c-accent); padding: 4px 0 4px 16px; margin-bottom: 18px; color: #E8E2D6; }
.case-bar { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255,251,245,.12); }
.case-bar b { display: block; font-size: 26px; color: #E8D3B0; }
.case-bar span { font-size: 13px; color: #B7C0B8; }
.dark-copy a { color: #E8D3B0; text-underline-offset: 4px; text-decoration: underline; }
.timeline { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; position: relative; }
.timeline::before {
    content: ""; position: absolute; left: 8%; right: 8%; top: 27px; height: 2px; background: var(--line-2);
}
.t-item { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 16px 16px; position: relative; }
.t-dot {
    width: 16px; height: 16px; border-radius: 50%; background: var(--c-primary); border: 3px solid #fff;
    box-shadow: 0 0 0 2px var(--c-primary); margin-bottom: 12px;
}
.slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 26px; }
.slot { background: var(--bg-card); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.slot b { display: block; }
.slot em { font-style: normal; color: var(--c-pine); font-size: 13px; }
.story { display: grid; grid-template-columns: 220px 1fr; gap: 22px; background: #fff; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; margin-bottom: 16px; }
.story:nth-child(even) { grid-template-columns: 1fr 220px; }
.story:nth-child(even) img { order: 2; }
.story img { width: 100%; height: 100%; object-fit: cover; min-height: 190px; }
.story-copy { padding: 24px 24px 22px; }
.story-copy p { color: var(--ink-2); }
.stats {
    background: var(--c-primary); color: #fff; padding: 36px 0;
}
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; text-align: center; }
.stats b { display: block; font-size: 34px; line-height: 1.1; }
.stats span { font-size: 13px; color: rgba(255,251,245,.82); }
.review-track { display: grid; grid-template-columns: 1.1fr .9fr; gap: 16px; }
.review { padding: 22px; }
.stars { color: var(--c-accent); letter-spacing: 2px; font-size: 14px; margin-bottom: 8px; }
.who { font-size: 13px; color: var(--ink-2); margin-top: 12px; }
.rank {
    background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 20px;
}
.rank ol { list-style: none; display: grid; gap: 10px; }
.rank li { display: flex; justify-content: space-between; align-items: center; min-height: 44px; border-bottom: 1px solid var(--bg-muted); font-size: 14px; }
.prog { height: 8px; background: var(--bg-muted); border-radius: 99px; overflow: hidden; margin: 10px 0 14px; }
.prog i { display: block; height: 100%; width: 68%; background: var(--c-accent); }
.news-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 16px; }
.news-card { padding: 0; overflow: hidden; }
.news-card img { width: 100%; height: 170px; object-fit: cover; }
.news-card .pad { padding: 18px 18px 20px; }
.news-card time { font-size: 12px; color: var(--ink-3); }
.more-link { margin-top: 16px; display: inline-flex; min-height: 44px; align-items: center; }
.mix { display: grid; grid-template-columns: .9fr 1.1fr; gap: 18px; align-items: stretch; }
.cert-pic { border-radius: 16px; overflow: hidden; border: 1px solid var(--line); min-height: 280px; }
.cert-pic img { width: 100%; height: 100%; object-fit: cover; min-height: 280px; }
.g-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.tab {
    min-height: 44px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line);
    background: #fff; color: var(--ink); font-weight: 650;
}
.tab.on { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }
.panel { display: none; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 22px; }
.panel.on { display: block; }
.faq-item { background: #fff; border: 1px solid var(--line); border-radius: 12px; margin-bottom: 10px; overflow: hidden; }
.faq-q {
    width: 100%; text-align: left; min-height: 56px; padding: 12px 18px; display: flex; justify-content: space-between; gap: 12px; align-items: center;
    font-weight: 700; color: var(--ink); font-size: 16px;
}
.faq-q span.ico { width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--c-primary); color: var(--c-primary); display: grid; place-items: center; flex-shrink: 0; }
.faq-a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .28s ease; }
.faq-item.open .faq-a { grid-template-rows: 1fr; }
.faq-a > div { overflow: hidden; }
.faq-a p { padding: 0 18px 16px; color: var(--ink-2); }
.consult { background: linear-gradient(180deg, var(--bg-muted), #EFE8DB); }
.form-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 22px; }
form.lead {
    background: #fff; border: 1px solid var(--c-primary); border-radius: 16px; padding: 26px; box-shadow: var(--shadow);
}
.fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
label { display: block; font-size: 13px; color: var(--ink-2); margin-bottom: 6px; }
input, select, textarea {
    width: 100%; min-height: 44px; border-radius: 8px; border: 1px solid var(--line-2);
    background: #FFFbf5; padding: 8px 12px; color: var(--ink);
}
textarea { min-height: 110px; resize: vertical; }
.full { grid-column: 1 / -1; }
.err input, .err select, .err textarea { border-color: var(--danger); background: var(--danger-bg); }
.hint { color: var(--danger); font-size: 13px; margin-top: 6px; }
.okbox { background: #E7F3EA; border: 1px solid var(--c-pine); color: var(--c-primary-3); padding: 12px 14px; border-radius: 10px; margin-bottom: 14px; }
.sidebox { background: var(--bg-dark); color: #F4EFE6; border-radius: 16px; padding: 24px; }
.sidebox h3 { color: #fff; margin-bottom: 12px; }
.sidebox a { color: #E8D3B0; }
.phonebar {
    background: var(--c-primary-2); color: #fff; padding: 12px 0; font-size: 14px;
}
.phonebar .container { display: flex; justify-content: center; align-items: center; gap: 16px; flex-wrap: wrap; min-height: 44px; }
.phonebar a { color: #fff; font-weight: 700; }
.site-footer { background: #17201C; color: #C9D1C6; padding: 48px 0 18px; }
.foot-grid { display: grid; grid-template-columns: 1.2fr .9fr 1fr; gap: 28px; margin-bottom: 28px; }
.site-footer h3 { color: #F4EFE6; font-size: 16px; margin-bottom: 12px; }
.site-footer a { color: #D7DDD4; }
.site-footer a:hover { color: #E8D3B0; }
.icp { border-top: 1px solid rgba(255,251,245,.08); padding-top: 14px; font-size: 13px; color: #9AA59C; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.roof {
    position: absolute; left: 0; right: 0; top: 0; height: 18px; pointer-events: none; opacity: .18;
    background: linear-gradient(135deg, transparent 40%, rgba(44,106,79,.5) 41%, transparent 42%) center/28px 18px;
}
@media (max-width: 1280px) {
    .nav-desk a { padding: 10px 7px; font-size: 13px; }
}
@media (max-width: 1024px) {
    .nav-desk { display: none; }
    .menu-btn { display: inline-flex; margin-left: auto; }
    .header-cta .btn { padding: 10px 12px; }
    .hero-grid, .intro-grid, .compare-box, .dark-grid, .form-grid, .mix, .review-track, .plan-wrap { grid-template-columns: 1fr; }
    .plan-main, .plan-mini, .story, .story:nth-child(even) { grid-template-columns: 1fr; }
    .story:nth-child(even) img { order: 0; }
    .metric-grid, .news-grid { grid-template-columns: 1fr 1fr; }
    .timeline { grid-template-columns: 1fr; }
    .timeline::before { display: none; }
    .hero, .hero-grid { min-height: 0; }
    .hero-grid { padding-top: 36px; }
    .dark-copy { padding: 36px 22px 42px; }
    .intro-pic, .intro-pic img { min-height: 280px; }
}
@media (max-width: 768px) {
    .header-top { font-size: 12px; }
    .top-certs { display: none; }
    .top-contacts span.hide-sm { display: none; }
    .fields, .team-row, .slots, .stats-grid, .g-grid, .matrix-grid { grid-template-columns: 1fr; }
    .metric-grid, .news-grid { grid-template-columns: 1fr 1fr; }
    .section { padding: 58px 0; }
    .hero { min-height: 600px; }
    .foot-grid { grid-template-columns: 1fr; }
    .hero-ctrl { display: none; }
}
@media (max-width: 520px) {
    .container, .header-top-inner, .header-main-inner, .hero-grid { width: min(100% - 24px, var(--container)); }
    .metric-grid, .news-grid { grid-template-columns: 1fr 1fr; }
    .header-cta .btn { font-size: 13px; padding: 10px 10px; }
    .logo-text span { display: none; }
    h1 { font-size: 28px; }
    .stats b { font-size: 26px; }
    .plan-mini { grid-template-columns: 1fr; }
    .plan-mini img { height: 150px; }
}

/* roulang page: index */
:root{
  --c-primary:#2C6A4F;
  --c-primary-2:#245A43;
  --c-primary-3:#1B4634;
  --c-accent:#C4843A;
  --c-accent-2:#A86C2C;
  --c-pine:#3D7A4A;
  --c-warn:#A34B3B;
  --bg:#F4EFE6;
  --bg-muted:#E7E2D8;
  --bg-card:#FBF8F2;
  --bg-dark:#1E2A24;
  --ink:#1C241F;
  --ink-2:#5C675F;
  --ink-on:#F4EFE6;
  --line:#C5CDC6;
  --line-2:#9AA89F;
  --radius-card:14px;
  --radius-btn:9px;
  --radius-sm:8px;
  --shadow:0 8px 18px rgba(30,42,36,.08);
  --shadow-sm:0 4px 10px rgba(30,42,36,.06);
  --space:24px;
  --w:1220px;
  --nav-h:118px;
  --font:"PingFang SC","Hiragino Sans GB","Noto Sans SC","Source Han Sans SC","Microsoft YaHei",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
body{
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  font-size:16px;
  line-height:1.8;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;border:0}
a{color:var(--c-primary);text-decoration:none;transition:color .2s,background .2s,border-color .2s,transform .2s}
a:hover{color:var(--c-primary-2)}
button,input,select,textarea{font-family:inherit;font-size:16px}
button{cursor:pointer;border:0}
h1,h2,h3,h4,p{margin:0}
h1{font-size:44px;line-height:1.25;font-weight:700;letter-spacing:.02em}
h2{font-size:30px;line-height:1.3;font-weight:700;letter-spacing:.02em}
h3{font-size:19px;line-height:1.4;font-weight:650}
p+p{margin-top:28px}
ul{margin:0;padding:0;list-style:none}
.container{width:min(100% - 40px,var(--w));margin:0 auto}
.skip{position:absolute;left:-999px;top:8px}
.skip:focus{left:8px;background:#fff;padding:8px 12px;z-index:80}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--c-primary);font-size:13px;letter-spacing:.12em;font-weight:650}
.eyebrow::before{content:"";width:18px;height:2px;background:var(--c-accent);border-radius:2px}
.lead{margin-top:18px;color:var(--ink-2);max-width:720px;font-size:16px;line-height:1.8}
.sec{padding:88px 0;position:relative}
.sec-muted{background:var(--bg-muted)}
.sec-paper{background:var(--bg)}
.sec-head{margin-bottom:36px}
.sec-head h2{margin-top:12px}
.kbar{width:42px;height:3px;background:var(--c-primary);border-radius:3px;margin:10px 0 0}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:0 20px;border-radius:var(--radius-btn);
  font-weight:650;letter-spacing:.04em;border:1px solid transparent;transition:.2s;
}
.btn:focus-visible,.nav-main a:focus-visible,.icon-btn:focus-visible,.faq-btn:focus-visible,.tab-btn:focus-visible,.dot:focus-visible,.drawer a:focus-visible{
  outline:2px solid var(--c-accent);outline-offset:2px;
}
.btn-primary{background:var(--c-primary);color:#fff}
.btn-primary:hover{background:var(--c-primary-2);color:#fff;transform:translateY(-1px)}
.btn-primary:active{transform:translateY(1px);background:var(--c-primary-3)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(244,239,230,.55)}
.btn-ghost:hover{background:rgba(244,239,230,.12);color:#fff}
.btn-line{background:transparent;color:var(--c-accent-2);border-color:var(--c-accent)}
.btn-line:hover{background:rgba(196,132,58,.1);color:var(--c-accent-2)}
.btn-white{background:var(--ink-on);color:var(--c-primary-2)}
.btn-white:hover{background:#fff;color:var(--c-primary-3)}
.badge{
  display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;
  border-radius:6px;background:rgba(44,106,79,.1);color:var(--c-primary-2);
  font-size:12px;font-weight:650;border:1px solid rgba(44,106,79,.18);
}
.card{
  background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-card);
  box-shadow:var(--shadow-sm);transition:transform .2s,border-color .2s,box-shadow .2s;
}
.card:hover{transform:translateY(-3px);border-color:var(--c-primary);box-shadow:var(--shadow)}
.site-header{position:sticky;top:0;z-index:50;background:var(--bg)}
.topbar{
  background:var(--bg-muted);border-bottom:1px solid var(--line);
  font-size:13px;line-height:1.7;color:var(--ink-2);
}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px;flex-wrap:wrap;padding:6px 0}
.topbar a{color:var(--ink);font-weight:650}
.topbar a:hover{color:var(--c-primary)}
.top-meta{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.certs{display:flex;gap:8px;flex-wrap:wrap}
.nav-row{
  background:rgba(251,248,242,.96);backdrop-filter:saturate(1.1);
  border-bottom:1px solid var(--line);
}
.nav-inner{display:flex;align-items:center;gap:18px;min-height:78px}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);flex-shrink:0;min-height:44px}
.logo:hover{color:var(--c-primary)}
.logo-mark{
  width:40px;height:40px;border-radius:10px;background:var(--c-primary);color:#fff;
  display:grid;place-items:center;position:relative;overflow:hidden;
}
.logo-mark svg{width:26px;height:26px}
.logo-text{display:flex;flex-direction:column;line-height:1.15}
.logo-text strong{font-size:18px;letter-spacing:.04em}
.logo-text span{font-size:12px;color:var(--ink-2);letter-spacing:.18em}
.nav-main{display:flex;align-items:center;gap:4px;margin-left:auto;white-space:nowrap}
.nav-main a{
  color:var(--ink);font-size:14px;font-weight:650;padding:10px 9px;min-height:44px;
  display:inline-flex;align-items:center;border-radius:8px;
}
.nav-main a:hover,.nav-main a.active{color:var(--c-primary);background:rgba(44,106,79,.08)}
.nav-cta{margin-left:8px;flex-shrink:0}
.nav-toggle,.nav-cta-m{display:none}
.drawer{
  position:fixed;inset:0 0 0 auto;width:min(86vw,360px);background:var(--bg-dark);color:var(--ink-on);
  transform:translateX(100%);transition:transform .28s ease;z-index:60;padding:24px 20px 40px;
  display:flex;flex-direction:column;gap:8px;
}
.drawer.open{transform:none}
.drawer a{color:var(--ink-on);min-height:48px;display:flex;align-items:center;padding:0 12px;border-radius:8px}
.drawer a:hover{background:rgba(244,239,230,.08);color:#E8C48A}
.drawer-close{align-self:flex-end;background:transparent;color:#fff;min-width:44px;min-height:44px;font-size:24px}
.backdrop{position:fixed;inset:0;background:rgba(30,42,36,.45);opacity:0;pointer-events:none;transition:.2s;z-index:55}
.backdrop.show{opacity:1;pointer-events:auto}
.hero{position:relative;min-height:82vh;color:#fff;overflow:hidden}
.slides{position:absolute;inset:0}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .7s ease;pointer-events:none}
.slide.active{opacity:1;pointer-events:auto}
.slide img{width:100%;height:100%;object-fit:cover}
.slide::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,22,18,.78) 0%,rgba(14,22,18,.28) 48%,rgba(14,22,18,.82) 100%);
}
.hero-inner{position:relative;z-index:2;padding:48px 0 86px;display:grid;grid-template-columns:1.15fr .85fr;gap:36px;align-items:center;min-height:82vh}
.hero-copy .brand-row{display:flex;align-items:center;gap:10px;margin-bottom:16px;color:#E8C48A;font-weight:700;letter-spacing:.12em;font-size:13px}
.hero h1,.hero-title{font-size:44px;line-height:1.25;margin:8px 0 14px;max-width:16em}
.hero-sub{font-size:18px;line-height:1.7;color:#E7E2D8;max-width:34em}
.hero-intro{margin-top:22px;max-width:38em;color:#D8D3C8;font-size:16px;line-height:1.8}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.quiz{
  background:rgba(30,42,36,.72);border:1px solid rgba(232,196,138,.28);border-radius:16px;
  padding:22px;box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.quiz h3{color:#fff;margin-bottom:6px}
.quiz p{color:#D0CBC1;font-size:14px;line-height:1.7;margin-bottom:14px}
.q-item{margin-bottom:12px}
.q-item span{display:block;color:#E8C48A;font-size:13px;margin-bottom:6px}
.q-opts{display:flex;flex-wrap:wrap;gap:8px}
.q-opts label{
  min-height:40px;padding:0 12px;border-radius:8px;border:1px solid rgba(244,239,230,.2);
  display:inline-flex;align-items:center;cursor:pointer;font-size:13px;color:#fff;
}
.q-opts input{accent-color:var(--c-accent);margin-right:6px}
.preview{
  margin-top:14px;padding:14px;border-radius:12px;background:rgba(244,239,230,.08);
  border:1px dashed rgba(232,196,138,.35);
}
.preview strong{display:block;color:#E8C48A;font-size:15px;margin-bottom:4px}
.preview b{color:#fff;font-size:22px}
.hero-ctrl{position:absolute;z-index:3;bottom:22px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:10px}
.icon-btn{
  width:44px;height:44px;border-radius:50%;background:rgba(30,42,36,.45);color:#fff;border:1px solid rgba(255,255,255,.3);
}
.icon-btn:hover{background:var(--c-primary)}
.dots{display:flex;gap:8px}
.dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.35);border:0;min-width:44px;min-height:44px;display:grid;place-items:center}
.dot span{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.4);display:block}
.dot.active span{background:var(--c-accent);width:22px;border-radius:8px}
.board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tile{
  background:var(--bg-card);border:1px solid var(--line);border-radius:12px;padding:18px 18px 16px;
  min-height:138px;
}
.tile .n{font-size:32px;line-height:1.15;font-weight:750;color:var(--c-primary);letter-spacing:.02em}
.tile .u{font-size:13px;color:var(--c-accent-2);margin-left:4px}
.tile .l{font-size:14px;font-weight:700;margin-top:6px}
.tile .c{font-size:13px;color:var(--ink-2);line-height:1.7;margin-top:4px}
.bar{height:6px;background:#DDD7CC;border-radius:99px;margin-top:12px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--c-primary),#4E8D6C);border-radius:99px}
.ring{--p:70;width:54px;height:54px;border-radius:50%;
  background:conic-gradient(var(--c-primary) calc(var(--p)*1%), #D7D1C6 0);
  display:grid;place-items:center;margin-left:auto}
.ring b{width:38px;height:38px;border-radius:50%;background:var(--bg-card);display:grid;place-items:center;font-size:11px;color:var(--c-primary)}
.tile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center}
.split img{width:100%;height:100%;object-fit:cover;border-radius:16px;min-height:420px;border:1px solid var(--line)}
.params{margin-top:22px;display:flex;flex-direction:column;gap:12px}
.param{display:grid;grid-template-columns:110px 1fr 64px;gap:10px;align-items:center;font-size:14px}
.param .track{height:8px;background:#DDD7CC;border-radius:8px;overflow:hidden}
.param .track i{display:block;height:100%;background:var(--c-primary)}
.matrix{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mx{
  padding:24px;min-height:220px;position:relative;
}
.mx .no{font-size:12px;letter-spacing:.16em;color:var(--c-accent-2);font-weight:700}
.mx h3{margin:8px 0;padding-bottom:10px;border-bottom:1px solid var(--line)}
.mx p{color:var(--ink-2);font-size:15px;line-height:1.8}
.mx .out{margin-top:14px;color:var(--c-primary);font-size:13px;font-weight:700}
.plans{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;gap:16px;min-height:560px}
.plan{overflow:hidden;display:flex;flex-direction:column;min-height:0}
.plan.big{grid-row:1 / span 2}
.plan img{width:100%;height:210px;object-fit:cover}
.plan.big img{height:320px}
.plan .body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:8px;flex:1}
.plan .meta{font-size:13px;color:var(--ink-2)}
.compare-wrap{display:grid;grid-template-columns:1.4fr .7fr;gap:20px}
table.cmp{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:14px;overflow:hidden;border:1px solid var(--line)}
table.cmp th,table.cmp td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7}
table.cmp th{background:#E1EBE4;color:var(--c-primary-3);font-weight:700}
table.cmp td:nth-child(3){color:var(--c-primary);font-weight:650}
.note{font-size:13px;color:var(--ink-2);margin-top:10px}
.verdict{padding:26px;background:var(--bg-dark);color:var(--ink-on);border-radius:14px}
.verdict h3{color:#E8C48A;margin-bottom:10px}
.verdict li{margin:10px 0;padding-left:14px;position:relative;color:#D8D3C8}
.verdict li::before{content:"";width:6px;height:6px;background:var(--c-accent);border-radius:50%;position:absolute;left:0;top:.7em}
.dark-sec{background:var(--bg-dark);color:var(--ink-on);padding:0}
.dark-grid{display:grid;grid-template-columns:1.15fr .85fr;min-height:520px}
.dark-grid img{width:100%;height:100%;object-fit:cover;min-height:420px}
.dark-copy{padding:72px 48px;display:flex;flex-direction:column;justify-content:center;background:
  linear-gradient(180deg,rgba(30,42,36,.2),rgba(30,42,36,.05)),
  repeating-linear-gradient(90deg,transparent 0 18px,rgba(244,239,230,.03) 18px 19px)}
.dark-copy h2{color:#fff}
.idea{margin-top:22px;padding:16px 0;border-top:1px solid rgba(244,239,230,.12);font-size:18px;line-height:1.7}
.idea small{display:block;color:#E8C48A;font-size:12px;letter-spacing:.14em;margin-bottom:6px}
.casebar{display:flex;gap:18px;flex-wrap:wrap;margin-top:28px}
.casebar div{background:rgba(244,239,230,.08);border:1px solid rgba(232,196,138,.25);border-radius:10px;padding:10px 14px}
.casebar b{display:block;font-size:22px;color:#E8C48A}
.timeline{display:flex;gap:0;position:relative;padding-top:12px}
.timeline::before{content:"";position:absolute;left:8%;right:8%;top:31px;height:2px;background:#C9D3CC}
.t-node{flex:1;text-align:center;padding:0 8px;position:relative}
.t-node i{
  width:18px;height:18px;border-radius:50%;background:var(--c-primary);display:inline-block;border:3px solid #F4EFE6;position:relative;z-index:1;
}
.t-node h3{margin:12px 0 6px;font-size:17px}
.t-node p{font-size:14px;color:var(--ink-2);line-height:1.7}
.stories{display:flex;flex-direction:column;gap:22px}
.story{display:grid;grid-template-columns:220px 1fr;gap:24px;padding:18px;align-items:center}
.story:nth-child(even){grid-template-columns:1fr 220px}
.story:nth-child(even) img{order:2}
.story img{width:100%;height:170px;object-fit:cover;border-radius:12px}
.story blockquote{margin:0;font-size:16px;line-height:1.8;color:var(--ink)}
.story .who{margin-top:10px;color:var(--ink-2);font-size:13px}
.statbar{background:var(--c-primary);color:#fff;padding:36px 0}
.statbar .row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.statbar .n{font-size:36px;font-weight:750;line-height:1.15}
.statbar .l{font-size:14px;opacity:.88;margin-top:4px}
.statbar .c{font-size:12px;opacity:.75}
.reviews{display:grid;grid-template-columns:1.1fr .9fr;gap:16px}
.rev{padding:22px}
.rev .stars{color:var(--c-accent);letter-spacing:2px;font-size:14px}
.rev p{margin-top:8px;color:var(--ink)}
.rev .by{margin-top:12px;font-size:13px;color:var(--ink-2)}
.news{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.news article{overflow:hidden}
.news img{height:150px;width:100%;object-fit:cover}
.news .body{padding:18px 18px 20px}
.news time{font-size:12px;color:var(--c-accent-2)}
.news p{font-size:14px;color:var(--ink-2);margin-top:8px;line-height:1.75}
.more{margin-top:18px}
.guard{display:grid;grid-template-columns:1.05fr 1fr;gap:22px;align-items:stretch}
.g-photo img{width:100%;height:100%;object-fit:cover;min-height:320px;border-radius:16px;border:1px solid var(--line)}
.g-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.g-item{padding:18px}
.g-item h3{margin-bottom:8px}
.g-item p{font-size:14px;color:var(--ink-2)}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.tab-btn{
  min-height:44px;padding:0 16px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:650;
}
.tab-btn.active{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.panel{padding:24px;display:none}
.panel.active{display:block}
.faq-list{display:flex;flex-direction:column;gap:10px}
.faq-item{border:1px solid var(--line);border-radius:12px;background:var(--bg-card);overflow:hidden}
.faq-btn{
  width:100%;text-align:left;background:transparent;padding:16px 18px;min-height:52px;
  display:flex;justify-content:space-between;gap:12px;font-weight:700;color:var(--ink);
}
.faq-btn span.ico{color:var(--c-primary)}
.faq-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .28s ease}
.faq-item.open .faq-panel{grid-template-rows:1fr}
.faq-panel > div{overflow:hidden}
.faq-panel p{padding:0 18px 16px;color:var(--ink-2);line-height:1.8}
.convert{display:grid;grid-template-columns:1.2fr .8fr;gap:28px}
form.lead-form{padding:26px;border:1px solid var(--c-primary);background:var(--bg-card);border-radius:16px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
label{font-size:14px;font-weight:650}
input,select,textarea{
  min-height:44px;border-radius:8px;border:1px solid var(--line);background:#fff;padding:8px 12px;color:var(--ink);
}
textarea{min-height:110px;resize:vertical;line-height:1.7}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(196,132,58,.45);border-color:var(--c-accent)}
.err input,.err select,.err textarea{border-color:var(--c-warn);background:#FBF1EE}
.hint{color:var(--c-warn);font-size:12px;min-height:16px}
.side-box{padding:26px;background:var(--bg-muted);border-radius:16px;border:1px solid var(--line)}
.side-box ul{margin-top:12px}
.side-box li{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-2)}
.okbox{padding:18px;border-radius:12px;background:#E5F0E6;color:var(--c-pine);margin-bottom:14px;font-weight:650}
.phonebar{
  background:var(--c-primary-3);color:#fff;padding:12px 0;font-size:14px;
}
.phonebar .container{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.phonebar a{color:#E8C48A;font-weight:700}
.site-footer{background:#161F1B;color:#D4CFC6;padding:48px 0 0;font-size:14px;line-height:1.8}
.ft-grid{display:grid;grid-template-columns:1.2fr .9fr 1fr;gap:28px;padding-bottom:28px}
.site-footer h3{color:#fff;font-size:16px;margin-bottom:8px}
.site-footer a{color:#D4CFC6}
.site-footer a:hover{color:#E8C48A;text-underline-offset:3px;text-decoration:underline}
.ft-copy{border-top:1px solid rgba(244,239,230,.1);padding:14px 0 22px;font-size:13px;color:#9AA39C;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.roof{
  position:absolute;left:0;right:0;bottom:-1px;height:48px;pointer-events:none;z-index:2;
}
@media (max-width:1280px){
  h1,.hero h1,.hero-title{font-size:40px}
  .nav-main a{padding:10px 7px;font-size:13px}
}
@media (max-width:1024px){
  h1,.hero h1,.hero-title{font-size:34px}
  h2{font-size:26px}
  .hero-inner,.split,.compare-wrap,.dark-grid,.guard,.convert,.reviews{grid-template-columns:1fr}
  .board{grid-template-columns:repeat(2,1fr)}
  .plans{grid-template-columns:1fr;grid-template-rows:none;min-height:0}
  .plan.big{grid-row:auto}
  .news{grid-template-columns:1fr 1fr}
  .hero{min-height:auto}
  .hero-inner{min-height:auto;padding:36px 0 92px}
  .nav-main,.nav-cta{display:none}
  .nav-toggle,.nav-cta-m{display:inline-flex}
  .nav-cta-m{padding:0 12px;font-size:13px}
  .nav-inner{min-height:64px}
  .top-meta span.hide-m,.certs{display:none}
  .dark-copy{padding:40px 24px 48px}
  .ft-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  .container{width:min(100% - 28px,var(--w))}
  .sec{padding:64px 0}
  .hero{min-height:600px}
  .matrix,.g-grid,.fields,.statbar .row{grid-template-columns:1fr}
  .board{grid-template-columns:1fr 1fr}
  .news{grid-template-columns:1fr}
  .story,.story:nth-child(even){grid-template-columns:1fr}
  .story:nth-child(even) img{order:0}
  .timeline{flex-direction:column;gap:18px}
  .timeline::before{left:16px;right:auto;top:8px;bottom:8px;width:2px;height:auto}
  .t-node{text-align:left;padding-left:36px}
  .t-node i{position:absolute;left:8px;top:4px}
  .split img,.plan img,.plan.big img{min-height:220px;height:220px}
  .ft-grid{grid-template-columns:1fr}
  h1,.hero h1,.hero-title{font-size:30px}
}
@media (max-width:520px){
  h1,.hero h1,.hero-title{font-size:28px}
  .hero{min-height:560px}
  .hero-sub{font-size:16px}
  .tile .n,.statbar .n{font-size:26px}
  .q-opts label{width:100%}
  .topbar{font-size:12px}
  .logo-text strong{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto !important;transition:none !important}
}
