/* roulang page: index */
:root{
      --ink:#171615;
      --carbon:#1E1C1A;
      --clay:#A66A43;
      --amber:#C9822B;
      --ivory:#F7F3EA;
      --rice:#FBF8F1;
      --warm:#EEE8DD;
      --bamboo:#5F7F65;
      --muted:rgba(30,28,26,.64);
      --line:rgba(30,28,26,.10);
      --shadow:0 20px 60px rgba(50,35,20,.08);
      --shadow-lift:0 24px 70px rgba(50,35,20,.13);
      --radius:28px;
      --ease:220ms ease-out;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
      color:var(--ink);
      background:
        radial-gradient(circle at 12% 8%, rgba(201,130,43,.13), transparent 32%),
        radial-gradient(circle at 86% 16%, rgba(95,127,101,.12), transparent 28%),
        linear-gradient(180deg,var(--rice) 0%,var(--ivory) 42%,#F5EFE4 100%);
      line-height:1.75;
      overflow-x:hidden;
      text-rendering:optimizeLegibility;
    }
    a{color:inherit;text-decoration:none}
    img,svg{display:block;max-width:100%}
    button,input,textarea{font:inherit}
    ::selection{background:rgba(166,106,67,.22)}
    .site-container{width:min(100% - 40px, 1200px);margin-inline:auto}
    .grain{
      position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.34;
      background-image:linear-gradient(rgba(30,28,26,.035) 1px, transparent 1px),linear-gradient(90deg, rgba(30,28,26,.025) 1px, transparent 1px);
      background-size:46px 46px;
      mask-image:linear-gradient(to bottom, black, transparent 82%);
    }
    .site-header{
      position:sticky;top:0;z-index:50;
      background:rgba(247,243,234,.88);
      backdrop-filter:blur(16px);
      border-bottom:1px solid rgba(30,28,26,.08);
      transition:box-shadow var(--ease), background var(--ease);
    }
    .site-header.is-scrolled{box-shadow:0 12px 36px rgba(50,35,20,.08);background:rgba(247,243,234,.94)}
    .nav-link{position:relative;color:rgba(30,28,26,.68);font-weight:650;transition:color var(--ease)}
    .nav-link:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--clay);transform:scaleX(0);transform-origin:left;transition:transform var(--ease)}
    .nav-link:hover,.nav-link.active{color:var(--ink)}
    .nav-link:hover:after,.nav-link.active:after{transform:scaleX(1)}
    .btn{
      display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
      border-radius:999px;font-weight:750;letter-spacing:-.01em;
      transition:transform var(--ease), box-shadow var(--ease), background var(--ease), border-color var(--ease), color var(--ease);
      outline:none;
    }
    .btn:focus-visible,.mobile-toggle:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{box-shadow:0 0 0 4px rgba(166,106,67,.22);outline:none}
    .btn-primary{background:var(--carbon);color:#FFF9EE;box-shadow:0 14px 30px rgba(30,28,26,.14)}
    .btn-primary:hover{transform:translateY(-2px);background:var(--clay);box-shadow:0 18px 42px rgba(166,106,67,.22)}
    .btn-secondary{border:1px solid rgba(30,28,26,.16);background:rgba(255,255,255,.35);color:var(--ink)}
    .btn-secondary:hover{transform:translateY(-2px);border-color:rgba(166,106,67,.48);background:#fff}
    .badge{
      display:inline-flex;align-items:center;gap:.42rem;border-radius:999px;
      border:1px solid rgba(30,28,26,.10);background:rgba(255,255,255,.42);
      color:rgba(30,28,26,.72);font-weight:700;font-size:.86rem;padding:.44rem .78rem;
    }
    .badge-dot{width:.46rem;height:.46rem;border-radius:999px;background:var(--amber)}
    .card{
      border:1px solid var(--line);background:rgba(255,255,255,.48);
      border-radius:var(--radius);box-shadow:var(--shadow);
      transition:transform var(--ease), box-shadow var(--ease), border-color var(--ease), background var(--ease);
    }
    .card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:rgba(166,106,67,.38);background:rgba(255,255,255,.68)}
    .section-kicker{color:var(--clay);font-weight:800;letter-spacing:.12em;font-size:.78rem}
    .section-title{font-weight:850;letter-spacing:-.04em;line-height:1.12}
    .muted{color:var(--muted)}
    .stamp{
      border:1px solid rgba(166,106,67,.44);color:var(--clay);
      width:58px;height:58px;border-radius:18px;display:grid;place-items:center;
      font-weight:900;letter-spacing:-.06em;transform:rotate(-5deg);background:rgba(201,130,43,.07)
    }
    .quality-line{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid rgba(30,28,26,.10);padding:.92rem 0}
    .quality-line:last-child{border-bottom:0}
    .quality-bar{height:8px;border-radius:999px;background:rgba(30,28,26,.08);overflow:hidden}
    .quality-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--clay),var(--amber))}
    .decor-panel{
      background:
        radial-gradient(circle at 18% 20%, rgba(201,130,43,.20), transparent 24%),
        radial-gradient(circle at 82% 72%, rgba(95,127,101,.18), transparent 28%),
        linear-gradient(135deg, rgba(255,255,255,.78), rgba(238,232,221,.56));
    }
    details.faq-item{border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.44);overflow:hidden;transition:border-color var(--ease),background var(--ease)}
    details.faq-item:hover,details.faq-item[open]{border-color:rgba(166,106,67,.35);background:rgba(255,255,255,.66)}
    details.faq-item summary{cursor:pointer;list-style:none;padding:1.15rem 1.25rem;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:1rem}
    details.faq-item summary::-webkit-details-marker{display:none}
    details.faq-item summary:after{content:"＋";font-weight:700;color:var(--clay);transition:transform var(--ease)}
    details.faq-item[open] summary:after{content:"－";transform:rotate(180deg)}
    .mobile-menu{
      max-height:0;overflow:hidden;transition:max-height 240ms ease-out;border-top:1px solid transparent;
    }
    .mobile-menu.open{max-height:280px;border-top-color:rgba(30,28,26,.08)}
    .mobile-toggle span{display:block;width:20px;height:2px;background:var(--ink);border-radius:99px;transition:transform var(--ease),opacity var(--ease)}
    .mobile-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
    .mobile-toggle.open span:nth-child(2){opacity:0}
    .mobile-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
    .footer-link{color:rgba(255,249,238,.68);transition:color var(--ease),transform var(--ease)}
    .footer-link:hover{color:#F6C27A;transform:translateX(2px)}
    @media (max-width: 1024px){
      .site-container{width:min(100% - 32px, 920px)}
    }
    @media (max-width: 768px){
      .site-container{width:min(100% - 28px, 680px)}
      .nav-link:after{display:none}
      .btn{width:100%}
      .stamp{width:50px;height:50px;border-radius:15px}
    }
    @media (max-width: 520px){
      body{line-height:1.68}
      .site-container{width:min(100% - 24px, 480px)}
    }

/* roulang page: category1 */
:root{
      --ink:#1E1C1A;
      --carbon:#171615;
      --ivory:#F7F3EA;
      --warm:#FBF8F1;
      --sand:#EEE8DD;
      --clay:#A66A43;
      --amber:#C9822B;
      --bamboo:#5F7F65;
      --muted:rgba(30,28,26,.64);
      --line:rgba(30,28,26,.11);
      --line-strong:rgba(166,106,67,.34);
      --shadow:0 20px 60px rgba(50,35,20,.08);
      --shadow-lift:0 26px 70px rgba(50,35,20,.12);
      --radius:28px;
      --radius-sm:18px;
      --ease:all .22s ease-out;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      min-height:100vh;
      font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
      color:var(--ink);
      background:
        radial-gradient(circle at 8% 6%, rgba(201,130,43,.12), transparent 28rem),
        radial-gradient(circle at 88% 14%, rgba(95,127,101,.10), transparent 26rem),
        linear-gradient(180deg,var(--ivory),var(--warm) 45%,var(--ivory));
      line-height:1.75;
      overflow-x:hidden;
      text-rendering:optimizeLegibility;
      -webkit-font-smoothing:antialiased;
    }
    a{color:inherit;text-decoration:none}
    button,input,textarea,select{font:inherit}
    button{cursor:pointer}
    img,svg{max-width:100%;display:block}
    ::selection{background:rgba(201,130,43,.22)}
    :focus-visible{outline:3px solid rgba(201,130,43,.32);outline-offset:3px;border-radius:14px}
    .site-container{width:min(1220px,calc(100% - 40px));margin-inline:auto}
    .site-header{
      position:sticky;
      top:0;
      z-index:60;
      background:rgba(247,243,234,.88);
      backdrop-filter:blur(18px);
      border-bottom:1px solid rgba(30,28,26,.08);
      transition:var(--ease);
    }
    .site-header.is-scrolled{box-shadow:0 14px 34px rgba(50,35,20,.07)}
    .nav-link{
      position:relative;
      font-weight:800;
      color:rgba(30,28,26,.66);
      transition:var(--ease);
      padding:.45rem 0;
    }
    .nav-link:after{
      content:"";
      position:absolute;
      left:0;
      right:0;
      bottom:.05rem;
      height:2px;
      background:var(--clay);
      transform:scaleX(0);
      transform-origin:right;
      transition:transform .22s ease-out;
    }
    .nav-link:hover,.nav-link.active{color:var(--ink)}
    .nav-link:hover:after,.nav-link.active:after{transform:scaleX(1);transform-origin:left}
    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:.55rem;
      border-radius:999px;
      font-weight:900;
      line-height:1;
      transition:var(--ease);
      border:1px solid transparent;
      white-space:nowrap;
    }
    .btn-primary{
      background:var(--carbon);
      color:#FFF9EE;
      box-shadow:0 12px 28px rgba(23,22,21,.14);
    }
    .btn-primary:hover{background:var(--clay);transform:translateY(-2px);box-shadow:0 18px 38px rgba(166,106,67,.22)}
    .btn-secondary{
      background:rgba(255,255,255,.42);
      color:var(--ink);
      border-color:rgba(30,28,26,.14);
    }
    .btn-secondary:hover{border-color:rgba(166,106,67,.42);transform:translateY(-2px);box-shadow:var(--shadow)}
    .mobile-toggle span{
      width:18px;
      height:2px;
      border-radius:999px;
      background:var(--ink);
      display:block;
      transition:var(--ease);
    }
    .mobile-menu{
      max-height:0;
      overflow:hidden;
      border-top:1px solid transparent;
      transition:max-height .26s ease-out,border-color .26s ease-out;
    }
    .mobile-menu.open{max-height:280px;border-color:rgba(30,28,26,.08)}
    .section{padding:92px 0}
    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:.55rem;
      color:var(--clay);
      font-weight:950;
      letter-spacing:.08em;
      font-size:.78rem;
    }
    .eyebrow:before{
      content:"";
      width:28px;
      height:1px;
      background:var(--clay);
      opacity:.7;
    }
    .hero-title{
      letter-spacing:-.055em;
      line-height:1.03;
      font-weight:950;
    }
    .soft-card{
      background:rgba(255,255,255,.44);
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      transition:var(--ease);
    }
    .soft-card:hover{
      transform:translateY(-3px);
      border-color:var(--line-strong);
      box-shadow:var(--shadow-lift);
    }
    .tag{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border-radius:999px;
      padding:.36rem .72rem;
      font-size:.78rem;
      font-weight:900;
      color:rgba(30,28,26,.72);
      background:rgba(238,232,221,.72);
      border:1px solid rgba(30,28,26,.08);
    }
    .tag-green{background:rgba(95,127,101,.11);color:#4d6b53;border-color:rgba(95,127,101,.18)}
    .tag-amber{background:rgba(201,130,43,.12);color:#8b5a24;border-color:rgba(201,130,43,.20)}
    .filter-pill{
      border:1px solid rgba(30,28,26,.12);
      background:rgba(255,255,255,.38);
      color:rgba(30,28,26,.72);
      border-radius:999px;
      padding:.78rem 1rem;
      font-weight:900;
      transition:var(--ease);
      line-height:1;
    }
    .filter-pill:hover{border-color:rgba(166,106,67,.38);transform:translateY(-2px);background:rgba(255,255,255,.6)}
    .filter-pill.active{background:var(--carbon);color:#FFF9EE;border-color:var(--carbon);box-shadow:0 14px 30px rgba(23,22,21,.14)}
    .feature-line{
      position:relative;
      overflow:hidden;
    }
    .feature-line:before{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),
        linear-gradient(180deg,rgba(255,255,255,.05) 1px,transparent 1px);
      background-size:44px 44px;
      mask-image:linear-gradient(90deg,transparent,black 18%,black 82%,transparent);
      pointer-events:none;
    }
    .list-card{
      border-radius:24px;
      border:1px solid var(--line);
      background:rgba(255,255,255,.40);
      padding:24px;
      transition:var(--ease);
    }
    .list-card:hover{
      transform:translateX(4px);
      border-color:rgba(166,106,67,.35);
      background:rgba(255,255,255,.58);
      box-shadow:0 18px 48px rgba(50,35,20,.07);
    }
    .mini-link{
      color:var(--clay);
      font-weight:950;
      display:inline-flex;
      align-items:center;
      gap:.35rem;
      transition:var(--ease);
    }
    .mini-link:hover{gap:.55rem;color:var(--amber)}
    .step-card{
      border-left:1px solid rgba(30,28,26,.13);
      padding-left:24px;
      position:relative;
    }
    .step-card:before{
      content:"";
      position:absolute;
      width:11px;
      height:11px;
      border-radius:999px;
      background:var(--clay);
      left:-6px;
      top:.65rem;
      box-shadow:0 0 0 7px rgba(166,106,67,.12);
    }
    details.faq-item{
      border:1px solid var(--line);
      background:rgba(255,255,255,.38);
      border-radius:22px;
      overflow:hidden;
      transition:var(--ease);
    }
    details.faq-item:hover{border-color:rgba(166,106,67,.30);background:rgba(255,255,255,.56)}
    details.faq-item[open]{box-shadow:var(--shadow);background:rgba(255,255,255,.62)}
    details.faq-item summary{
      list-style:none;
      cursor:pointer;
      padding:22px 24px;
      font-weight:950;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:20px;
    }
    details.faq-item summary::-webkit-details-marker{display:none}
    details.faq-item summary:after{
      content:"+";
      width:28px;
      height:28px;
      flex:0 0 28px;
      border-radius:999px;
      display:grid;
      place-items:center;
      color:var(--clay);
      background:rgba(201,130,43,.10);
      transition:var(--ease);
      font-weight:900;
    }
    details.faq-item[open] summary:after{content:"−";background:var(--carbon);color:#FFF9EE}
    .footer-link{color:rgba(255,249,238,.62);transition:var(--ease)}
    .footer-link:hover{color:#F6C27A;transform:translateX(2px)}
    .breadcrumb a{color:rgba(30,28,26,.58);font-weight:800}
    .breadcrumb a:hover{color:var(--clay)}
    .breadcrumb span{color:rgba(30,28,26,.38)}
    .texture-panel{
      background:
        radial-gradient(circle at 20% 18%, rgba(201,130,43,.20), transparent 16rem),
        radial-gradient(circle at 92% 78%, rgba(95,127,101,.13), transparent 18rem),
        rgba(255,255,255,.38);
    }
    @media (max-width:1024px){
      .section{padding:76px 0}
      .hero-title{letter-spacing:-.045em}
    }
    @media (max-width:768px){
      .site-container{width:min(100% - 32px,1220px)}
      .section{padding:62px 0}
      .hero-title{font-size:2.55rem;line-height:1.08;letter-spacing:-.04em}
      .filter-row{overflow-x:auto;padding-bottom:8px;scrollbar-width:none}
      .filter-row::-webkit-scrollbar{display:none}
      .filter-pill{flex:0 0 auto}
      details.faq-item summary{padding:19px 18px}
    }
    @media (max-width:520px){
      .site-container{width:min(100% - 28px,1220px)}
      .hero-title{font-size:2.25rem}
      .btn{width:100%}
      .mobile-toggle{flex:0 0 44px}
      .list-card{padding:20px}
    }
