/* roulang page: index */
:root {
      --ink: #163833;
      --ink-deep: #0e221f;
      --teal: #2a5a53;
      --teal-soft: #3d6f67;
      --amber: #c49a5a;
      --amber-deep: #a67b3d;
      --copper: #b0783a;
      --paper: #f6f1e8;
      --paper-2: #efe8dc;
      --moss: #e4ebe4;
      --mist: #f3f0ea;
      --text: #1c2b28;
      --muted: #5c6b67;
      --line: #d5cec2;
      --white: #fffdf8;
      --danger: #a45a2c;
      --radius-card: 24px;
      --radius-lg: 28px;
      --radius-btn: 999px;
      --radius-sm: 12px;
      --shadow: 0 12px 28px rgba(14, 34, 31, .08);
      --shadow-hover: 0 18px 36px rgba(14, 34, 31, .14);
      --max: 1220px;
      --grad: linear-gradient(135deg, #163833 0%, #2f5d56 52%, #b8894a 100%);
      --grad-soft: linear-gradient(135deg, rgba(22, 56, 51, .92), rgba(176, 120, 58, .55));
      --space-section: 96px;
      --serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;
      --sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
    }
    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      color: var(--text);
      background: var(--paper);
      font-family: var(--sans);
      font-size: 16px;
      line-height: 1.8;
      letter-spacing: .02em;
    }
    img { max-width: 100%; display: block; height: auto; }
    a { color: var(--ink); text-decoration: none; }
    a:hover { color: var(--amber-deep); }
    button, input, select, textarea { font-family: inherit; }
    button { cursor: pointer; }
    h1, h2, h3, h4 { font-family: var(--serif); color: var(--ink-deep); line-height: 1.35; margin: 0 0 .6em; font-weight: 700; }
    h1 { font-size: clamp(2rem, 4vw, 3.15rem); }
    h2 { font-size: clamp(1.55rem, 2.6vw, 2.15rem); }
    h3 { font-size: 1.18rem; }
    p { margin: 0 0 1em; }
    ul { margin: 0; padding: 0; list-style: none; }
    :focus-visible { outline: 2px solid var(--amber); outline-offset: 3px; }
    .skip { position: absolute; left: -999px; top: 8px; background: var(--ink); color: #fff; padding: 8px 14px; border-radius: 8px; z-index: 80; }
    .skip:focus { left: 8px; }
    .container { width: min(100% - 40px, var(--max)); margin: 0 auto; }
    .btn {
      display: inline-flex; align-items: center; justify-content: center; gap: 8px;
      min-height: 44px; padding: 12px 24px; border-radius: var(--radius-btn);
      border: 1.5px solid transparent; font-weight: 600; letter-spacing: .04em;
      transition: transform .25s ease, box-shadow .25s ease, filter .25s ease, background .25s ease, color .25s ease;
    }
    .btn-primary { background: var(--grad); color: #fff; box-shadow: 0 8px 18px rgba(22, 56, 51, .22); }
    .btn-primary:hover { filter: brightness(1.06); transform: translateY(-2px); color: #fff; box-shadow: var(--shadow-hover); }
    .btn-primary:active { transform: translateY(0); }
    .btn-ghost { background: transparent; color: var(--ink); border-color: var(--teal); }
    .btn-ghost:hover { background: rgba(42, 90, 83, .08); color: var(--ink-deep); }
    .btn-light { background: #fff; color: var(--ink); border-color: rgba(255,255,255,.4); }
    .badge, .seal {
      display: inline-flex; align-items: center; justify-content: center; gap: 6px;
      min-height: 32px; padding: 4px 12px; border-radius: 999px;
      background: rgba(196, 154, 90, .12); color: var(--amber-deep);
      border: 1px solid rgba(196, 154, 90, .45); font-size: 12px; font-weight: 600; letter-spacing: .06em;
    }
    .seal {
      width: 74px; height: 74px; border-radius: 50%;
      border: 2px dashed var(--amber); background: radial-gradient(circle, #fff8ea, #f1e0c4);
      color: var(--ink); font-family: var(--serif); font-size: 13px; text-align: center; line-height: 1.2;
      box-shadow: inset 0 0 0 4px rgba(22,56,51,.08);
    }
    .site-header { position: relative; z-index: 40; }
    .topbar {
      background: var(--ink-deep); color: #efe6d4; font-size: 13px;
      display: flex; justify-content: center;
    }
    .topbar-inner {
      width: min(100% - 40px, var(--max)); min-height: 42px;
      display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
      padding: 8px 0;
    }
    .topbar a { color: #efe6d4; }
    .topbar a:hover { color: var(--amber); }
    .top-meta { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; }
    .nav-main {
      background: rgba(246, 241, 232, .92); backdrop-filter: blur(10px);
      border-bottom: 1px solid var(--line);
    }
    .nav-main.is-sticky { position: sticky; top: 0; box-shadow: 0 8px 20px rgba(14,34,31,.08); }
    .nav-inner {
      width: min(100% - 40px, var(--max)); min-height: 76px;
      display: flex; align-items: center; justify-content: space-between; gap: 18px;
    }
    .brand { display: flex; align-items: center; gap: 10px; color: var(--ink-deep); }
    .brand-mark {
      width: 42px; height: 42px; border-radius: 50%;
      display: grid; place-items: center; color: #fff; font-family: var(--serif);
      background: var(--grad); border: 1px solid rgba(196,154,90,.7); font-size: 18px;
    }
    .brand-name { font-family: var(--serif); font-size: 22px; font-weight: 700; line-height: 1; }
    .brand-sub { display: block; font-family: var(--sans); font-size: 12px; color: var(--muted); margin-top: 4px; font-weight: 500; }
    .nav-list { display: flex; align-items: center; gap: 6px; }
    .nav-list a {
      min-height: 44px; padding: 8px 12px; display: inline-flex; align-items: center;
      color: var(--text); font-size: 14px; font-weight: 500; border-radius: 999px;
    }
    .nav-list a:hover, .nav-list a.is-active { background: rgba(42,90,83,.08); color: var(--ink); }
    .menu-toggle {
      display: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 12px; background: #fff;
    }
    .menu-toggle span, .menu-toggle span::before, .menu-toggle span::after {
      display: block; width: 18px; height: 2px; background: var(--ink); position: relative; margin: 0 auto;
    }
    .menu-toggle span::before, .menu-toggle span::after { content: ""; position: absolute; left: 0; }
    .menu-toggle span::before { top: -6px; }
    .menu-toggle span::after { top: 6px; }
    .drawer {
      display: none; position: fixed; inset: 0; background: rgba(14,34,31,.46); z-index: 50;
    }
    .drawer.is-open { display: block; }
    .drawer-panel {
      width: min(86vw, 360px); height: 100%; background: var(--paper); margin-left: auto;
      padding: 24px 20px; overflow: auto; box-shadow: -12px 0 30px rgba(0,0,0,.15);
    }
    .drawer-panel a { display: flex; align-items: center; min-height: 48px; border-bottom: 1px solid var(--line); color: var(--ink); }
    .hero { position: relative; min-height: 92vh; overflow: hidden; color: #fff; }
    .slides { position: absolute; inset: 0; }
    .slide {
      position: absolute; inset: 0; opacity: 0; transform: scale(1.04);
      transition: opacity .8s ease, transform 1.1s ease; background-size: cover; background-position: center;
    }
    .slide.is-active { opacity: 1; transform: scale(1); z-index: 1; }
    .slide::after {
      content: ""; position: absolute; inset: 0;
      background: linear-gradient(120deg, rgba(10,24,22,.86) 8%, rgba(22,56,51,.62) 48%, rgba(176,120,58,.38) 100%);
    }
    .hero-content {
      position: relative; z-index: 2; width: min(100% - 40px, var(--max)); margin: 0 auto;
      min-height: 92vh; display: grid; grid-template-columns: 1.15fr .85fr; gap: 28px; align-items: center; padding: 48px 0;
    }
    .hero-panel {
      background: rgba(14, 34, 31, .55); border: 1px solid rgba(196,154,90,.35);
      border-radius: var(--radius-card); padding: 36px 32px; box-shadow: var(--shadow);
      backdrop-filter: blur(6px);
    }
    .hero-panel h1 { color: #fff; margin-bottom: 16px; }
    .hero-panel p { color: #efe6d4; font-size: 16px; max-width: 42em; }
    .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 22px; }
    .rank-card {
      background: rgba(255,253,248,.12); border: 1px solid rgba(255,255,255,.22);
      border-radius: var(--radius-lg); padding: 22px; backdrop-filter: blur(8px);
    }
    .rank-card h2 { color: #fff; font-size: 1.2rem; margin-bottom: 6px; }
    .rank-card p { color: #efe6d4; font-size: 14px; }
    .rank-item {
      display: grid; grid-template-columns: 36px 1fr auto; gap: 10px; align-items: center;
      padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.12); color: #fff;
    }
    .rank-item:last-child { border-bottom: 0; }
    .rank-num {
      width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center;
      background: var(--grad); font-size: 13px; font-weight: 700;
    }
    .hero-nav {
      position: absolute; z-index: 3; left: 50%; bottom: 24px; transform: translateX(-50%);
      display: flex; align-items: center; gap: 10px;
    }
    .hero-arrow {
      width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.4);
      background: rgba(14,34,31,.35); color: #fff;
    }
    .dots { display: flex; gap: 8px; }
    .dot {
      width: 28px; height: 8px; border: 0; border-radius: 999px; background: rgba(255,255,255,.35);
    }
    .dot.is-active { background: var(--amber); width: 38px; }
    main section { padding: var(--space-section) 0; position: relative; }
    .lead { color: var(--muted); max-width: 46em; font-size: 16px; }
    .section-head { margin-bottom: 36px; max-width: 760px; }
    .kicker { color: var(--amber-deep); font-weight: 600; letter-spacing: .18em; font-size: 12px; margin-bottom: 8px; }
    #pain { background: var(--white); }
    .pain-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
    .pain-col { border-radius: var(--radius-lg); padding: 28px; }
    .pain-left { background: #f4ece0; border: 1px solid #e2d4c0; }
    .pain-right { background: #eef4f1; border: 1px solid #c9dbd4; }
    .pain-item { display: grid; grid-template-columns: 52px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px dashed var(--line); }
    .pain-item:last-child { border-bottom: 0; }
    #solution { background: var(--paper); }
    .solution-grid { display: grid; grid-template-columns: 5fr 7fr; gap: 40px; align-items: center; }
    .solution-pic { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow); position: relative; }
    .solution-pic img { width: 100%; height: 100%; object-fit: cover; min-height: 420px; }
    .check-list li { position: relative; padding: 10px 0 10px 28px; }
    .check-list li::before { content: ""; position: absolute; left: 0; top: 18px; width: 10px; height: 10px; border-radius: 50%; background: var(--grad); }
    #steps { background: linear-gradient(180deg, #eef3ef, #f6f1e8); }
    .timeline { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; position: relative; }
    .timeline::before {
      content: ""; position: absolute; left: 8%; right: 8%; top: 34px; height: 2px;
      background: linear-gradient(90deg, var(--teal), var(--amber));
    }
    .step-card {
      background: #fff; border-radius: var(--radius-card); padding: 24px 18px 20px;
      border: 1px solid var(--line); box-shadow: var(--shadow); position: relative;
    }
    .step-no {
      width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
      background: var(--grad); color: #fff; font-weight: 700; margin-bottom: 12px;
    }
    #advantages { background: var(--white); }
    .grid-6 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
    .big-card {
      background: #fff; border-radius: var(--radius-card); padding: 22px; border: 1px solid var(--line);
      box-shadow: var(--shadow); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
      display: flex; flex-direction: column; gap: 10px; min-height: 100%;
    }
    .big-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-hover); border-color: transparent; background-image: linear-gradient(#fff,#fff), var(--grad); background-origin: border-box; background-clip: padding-box, border-box; border: 1px solid transparent; }
    .card-cover { border-radius: 18px; overflow: hidden; height: 150px; }
    .card-cover img { width: 100%; height: 100%; object-fit: cover; }
    #programs { background: var(--moss); }
    .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
    .program-card { background: #fff; border-radius: 28px; overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow); display: flex; flex-direction: column; }
    .program-card img { width: 100%; height: 220px; object-fit: cover; }
    .program-body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
    .program-body ul li { padding: 6px 0 6px 16px; position: relative; color: var(--muted); }
    .program-body ul li::before { content: "·"; position: absolute; left: 0; color: var(--amber-deep); font-weight: 700; }
    #philosophy { background: var(--ink-deep); color: #efe6d4; padding: 108px 0; overflow: hidden; }
    #philosophy::before {
      content: ""; position: absolute; inset: auto -10% -30% 40%; width: 520px; height: 520px; border-radius: 50%;
      background: radial-gradient(circle, rgba(196,154,90,.28), transparent 70%);
    }
    .quote { font-family: var(--serif); font-size: clamp(1.5rem, 3vw, 2.2rem); color: #fff; line-height: 1.55; max-width: 18em; }
    .case-split { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 36px; }
    .case-card { background: rgba(255,255,255,.06); border: 1px solid rgba(196,154,90,.28); border-radius: var(--radius-card); padding: 24px; }
    .case-card h3 { color: #fff; }
    #outcomes { background: var(--paper-2); }
    .outcome-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
    .stat {
      background: #fff; border-radius: var(--radius-card); padding: 24px; text-align: center; border: 1px solid var(--line);
    }
    .stat b { display: block; font-family: var(--serif); font-size: 2rem; color: var(--ink); line-height: 1.2; }
    #stories { background: var(--white); overflow: hidden; }
    .story-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(78%, 520px); gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
    .story-card { scroll-snap-align: start; background: var(--mist); border-radius: var(--radius-lg); overflow: hidden; display: grid; grid-template-columns: 1fr 1.1fr; min-height: 280px; border: 1px solid var(--line); }
    .story-card img { width: 100%; height: 100%; object-fit: cover; min-height: 240px; }
    .story-body { padding: 24px; }
    .story-body blockquote { margin: 0 0 12px; font-family: var(--serif); font-size: 1.15rem; color: var(--ink); }
    #testimonials { background: linear-gradient(180deg, #f6f1e8, #ece5d8); }
    .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
    .quote-card { background: #fff; border-radius: var(--radius-card); padding: 22px; border: 1px solid var(--line); box-shadow: var(--shadow); }
    .person { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
    .avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 2px solid var(--amber); }
    #audience { background: var(--white); }
    .matrix { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
    .matrix-item { border-radius: var(--radius-card); padding: 22px; background: var(--moss); border: 1px solid #d2ddd6; min-height: 220px; display: flex; flex-direction: column; }
    #scenes { background: var(--paper); }
    .scene-row { display: grid; grid-template-columns: 180px 1fr auto; gap: 18px; align-items: center; background: #fff; border-radius: 20px; padding: 16px; margin-bottom: 14px; border: 1px solid var(--line); box-shadow: var(--shadow); }
    .scene-row img { width: 180px; height: 110px; object-fit: cover; border-radius: 14px; }
    #news { background: var(--white); }
    .news-card { display: grid; grid-template-columns: 220px 1fr; gap: 18px; background: var(--mist); border-radius: var(--radius-card); overflow: hidden; border: 1px solid var(--line); margin-bottom: 16px; }
    .news-card img { width: 100%; height: 100%; min-height: 150px; object-fit: cover; }
    .news-body { padding: 18px 18px 18px 0; }
    #metrics { background: var(--ink); color: #efe6d4; }
    #metrics h2, #metrics h3 { color: #fff; }
    .board { display: grid; grid-template-columns: 1.2fr .8fr; gap: 18px; }
    .board-panel { background: rgba(255,255,255,.06); border: 1px solid rgba(196,154,90,.3); border-radius: var(--radius-lg); padding: 24px; }
    .metric-pills { display: flex; flex-wrap: wrap; gap: 10px; }
    .metric-pills span { background: rgba(196,154,90,.15); border: 1px solid rgba(196,154,90,.4); color: #f3e4c4; border-radius: 999px; padding: 8px 12px; font-size: 13px; }
    #faq { background: var(--paper); }
    .faq-item { background: #fff; border: 1px solid var(--line); border-radius: 18px; margin-bottom: 12px; overflow: hidden; }
    .faq-item button {
      width: 100%; min-height: 56px; text-align: left; background: transparent; border: 0; padding: 16px 20px;
      font-size: 16px; font-weight: 600; color: var(--ink); display: flex; justify-content: space-between; gap: 12px;
    }
    .faq-item .answer { display: none; padding: 0 20px 18px; color: var(--muted); }
    .faq-item.is-open .answer { display: block; }
    .faq-item .icon { color: var(--amber-deep); }
    #cta { background: var(--grad); color: #fff; }
    #cta h2 { color: #fff; }
    .cta-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 28px; align-items: start; }
    .contact-box { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius-card); padding: 24px; }
    form { background: #fff; color: var(--text); border-radius: var(--radius-lg); padding: 24px; }
    label { display: block; font-size: 14px; font-weight: 600; margin: 0 0 6px; }
    .field { margin-bottom: 14px; }
    input, select, textarea {
      width: 100%; min-height: 44px; border: 1px solid var(--teal); border-radius: 12px;
      background: #fbf7ef; padding: 10px 12px; color: var(--text);
    }
    textarea { min-height: 96px; resize: vertical; }
    input.is-error, select.is-error, textarea.is-error { border-color: var(--danger); box-shadow: 0 0 0 3px rgba(164,90,44,.15); }
    .form-msg { display: none; margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: #eef6f1; color: var(--ink); }
    .form-msg.is-show { display: block; }
    .site-footer { background: var(--ink-deep); color: #d9d0c2; padding: 56px 0 28px; }
    .footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 28px; margin-bottom: 28px; }
    .site-footer a { color: #efe6d4; }
    .site-footer a:hover { color: var(--amber); }
    .copy { border-top: 1px solid rgba(255,255,255,.12); padding-top: 16px; font-size: 13px; }
    @media (max-width: 1200px) {
      .timeline { grid-template-columns: repeat(3, 1fr); }
      .timeline::before { display: none; }
      .matrix { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 992px) {
      :root { --space-section: 80px; }
      .hero-content, .solution-grid, .pain-grid, .cta-grid, .board, .story-card, .news-card, .scene-row, .case-split, .footer-grid {
        grid-template-columns: 1fr;
      }
      .nav-list { display: none; }
      .menu-toggle { display: inline-flex; align-items: center; justify-content: center; }
      .grid-6, .grid-3, .outcome-bar, .grid-2 { grid-template-columns: 1fr 1fr; }
      .hero { min-height: auto; }
      .hero-content { min-height: auto; padding: 90px 0 80px; }
      .top-meta span:nth-child(3) { display: none; }
    }
    @media (max-width: 768px) {
      :root { --space-section: 68px; }
      .container, .topbar-inner, .nav-inner, .hero-content { width: min(100% - 28px, var(--max)); }
      .grid-6, .grid-3, .outcome-bar, .grid-2, .matrix, .timeline { grid-template-columns: 1fr; }
      .hero-arrow { display: none; }
      .story-track { grid-auto-columns: 88%; }
      .news-body { padding: 0 16px 16px; }
    }
    @media (max-width: 375px) {
      body { overflow-x: hidden; }
      h1 { font-size: 1.7rem; }
      .brand-name { font-size: 18px; }
      .hero-panel, .rank-card, form { padding: 18px; }
      .btn { width: 100%; }
      .hero-actions { flex-direction: column; }
    }
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { animation: none !important; transition: none !important; }
    }
