/* roulang page: index */
:root {
  --brand: #E64D73;
  --brand-deep: #B0244D;
  --teal: #17A47E;
  --mango: #F5A623;
  --cream: #FCF9F6;
  --warm: #F9EEED;
  --ink: #221A26;
  --soft: #6E6470;
  --dark: #1B1420;
  --pink-line: rgba(209, 143, 166, 0.22);
  --radius-xl: clamp(16px, 2vw, 28px);
  --shadow-card: 0 12px 35px rgba(180, 53, 87, 0.08);
  --shadow-hover: 0 18px 45px rgba(180, 53, 87, 0.16);
}
html {
  scroll-behavior: smooth;
}
body {
  font-family: Inter, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  background: var(--cream);
  color: var(--ink);
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
a {
  text-decoration: none;
  color: inherit;
}
img {
  max-width: 100%;
  display: block;
}
section {
  scroll-margin-top: 90px;
}
::selection {
  background: #FDE1E9;
  color: #1B1420;
}
:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 3px;
  border-radius: 6px;
}
.container_gt {
  width: min(1200px, 100% - 40px);
  margin-inline: auto;
}
.sec-pad {
  padding-block: 88px;
}
.sec-pad-mobile {
  padding-block: 64px;
}
@media (max-width: 640px) {
  .sec-pad {
    padding-block: 56px;
  }
  .container_gt {
    width: calc(100% - 32px);
  }
}
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.04em;
  font-size: 13px;
  font-weight: 700;
  color: var(--brand-deep);
  background: rgba(230, 77, 115, 0.1);
  padding: 7px 14px;
  border-radius: 999px;
}
.text-brand-gradient {
  background: linear-gradient(90deg, #D93E66, #B0244D);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.btn-main {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--brand);
  color: #fff;
  border-radius: 14px;
  padding: 14px 24px;
  font-weight: 700;
  border: 1px solid rgba(176, 36, 77, 0.1);
  box-shadow: 0 10px 24px rgba(230, 77, 115, 0.22);
  transition: all 0.2s ease;
}
.btn-main:hover {
  background: var(--brand-deep);
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(176, 36, 77, 0.28);
}
.btn-main:active {
  transform: translateY(0) scale(0.98);
  background: #9d1b43;
}
.btn-light {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #fff;
  color: var(--ink);
  border-radius: 14px;
  padding: 14px 24px;
  font-weight: 700;
  border: 1px solid var(--pink-line);
  transition: all 0.2s ease;
}
.btn-light:hover {
  border-color: rgba(230, 77, 115, 0.4);
  color: var(--brand-deep);
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(180, 53, 87, 0.08);
}
.btn-light:active {
  transform: translateY(0) scale(0.98);
}
.btn-white {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #fff;
  color: var(--dark);
  border-radius: 14px;
  padding: 13px 24px;
  font-weight: 700;
  border: 1px solid rgba(255,255,255,0.2);
  transition: all 0.2s ease;
}
.btn-white:hover {
  background: #FDEAF0;
  color: var(--brand-deep);
  transform: translateY(-2px);
}
.btn-white:active {
  transform: scale(0.98);
}
.main-card {
  background: #fff;
  border: 1px solid var(--pink-line);
  border-radius: var(--radius-xl);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.main-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-hover);
  border-color: rgba(230, 77, 115, 0.32);
}
.hover-card-img img {
  transition: transform .5s cubic-bezier(.22,.61,.36,1);
}
.hover-card-img:hover img {
  transform: scale(1.03);
}
.nav-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--soft);
  font-size: 14px;
  font-weight: 600;
  padding: 9px 14px;
  border-radius: 999px;
  white-space: nowrap;
  border: 1px solid transparent;
  transition: all 0.2s ease;
}
.nav-pill:hover {
  background: #fff;
  color: var(--brand-deep);
  border-color: var(--pink-line);
  transform: translateY(-2px);
}
.nav-pill.active {
  background: #FDEAF0;
  color: var(--brand-deep);
  border-color: rgba(230, 77, 115, 0.18);
  box-shadow: inset 0 0 0 1px rgba(230,77,115,0.04);
}
.feature-list li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 8px;
  color: var(--soft);
}
.feature-list li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 10px;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--teal), #12b58c);
}
.step-item {
  position: relative;
  padding-left: 74px;
  padding-bottom: 34px;
}
.step-item:last-child {
  padding-bottom: 0;
}
.step-item .step-num {
  position: absolute;
  left: 0;
  top: 0;
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 17px;
  background: #FDEAF0;
  color: var(--brand-deep);
  border: 1px solid rgba(230,77,115,0.12);
}
.faq-wrap {
  background: #fff;
  border: 1px solid var(--pink-line);
  border-radius: 20px;
  overflow: hidden;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.faq-wrap[open] {
  border-color: rgba(230, 77, 115, 0.28);
  box-shadow: 0 12px 30px rgba(180, 53, 87, 0.06);
}
.faq-wrap summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  list-style: none;
  padding: 20px 24px;
  font-weight: 700;
  color: var(--ink);
}
.faq-wrap summary::-webkit-details-marker {
  display: none;
}
.faq-wrap summary .plus-icon {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #FDEAF0;
  color: var(--brand-deep);
  font-size: 18px;
  transition: transform 0.3s ease, background 0.2s ease;
}
.faq-wrap[open] summary .plus-icon {
  transform: rotate(45deg);
  background: var(--brand);
  color: #fff;
}
.faq-wrap .faq-answer {
  padding: 0 24px 22px;
  margin-top: -6px;
  color: var(--soft);
}
.footer-link {
  color: rgba(255,255,255,0.68);
  font-size: 14px;
  transition: all 0.2s ease;
  display: block;
  padding: 4px 0;
}
.footer-link:hover {
  color: #fff;
  transform: translateX(3px);
}
.dot-bg {
  background-image: radial-gradient(rgba(230,77,115,0.16) 1.2px, transparent 1.2px);
  background-size: 22px 22px;
}
.hero-soft-bg {
  background:
    radial-gradient(circle at 10% 20%, rgba(255,210,224,0.3), transparent 30%),
    radial-gradient(circle at 85% 75%, rgba(245,166,35,0.05), transparent 18%),
    linear-gradient(180deg, #FFF7F6 0%, #FCF9F6 65%);
}
.img-frame-shadow {
  box-shadow: 0 24px 70px rgba(112, 35, 67, 0.18);
}
.news-badge {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  background: rgba(23,164,126,0.1);
  color: #11825F;
}
@media (max-width: 1024px) {
  .nav-center-wrap {
    display: none;
  }
}
@media (min-width: 1025px) {
  .mobile-nav-btn {
    display: none;
  }
}
.mobile-panel {
  background: rgba(255,255,255,0.96);
  border: 1px solid var(--pink-line);
  box-shadow: 0 24px 60px rgba(44, 14, 32, 0.14);
}

/* roulang page: category1 */
:root {
            --brand: #E64D73;
            --brand-deep: #B0244D;
            --teal: #17A47E;
            --mango: #F5A623;
            --cream: #FCF9F6;
            --warm: #F9EEED;
            --ink: #221A26;
            --soft: #6E6470;
            --dark: #1B1420;
            --pink-line: rgba(209, 143, 166, 0.22);
            --radius-xl: clamp(16px, 2vw, 28px);
            --shadow-card: 0 12px 35px rgba(180, 53, 87, 0.08);
            --shadow-hover: 0 18px 45px rgba(180, 53, 87, 0.16);
        }
        html {
            scroll-behavior: smooth;
        }
        body {
            font-family: Inter, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
            background: var(--cream);
            color: var(--ink);
            line-height: 1.75;
            -webkit-font-smoothing: antialiased;
        }
        a {
            text-decoration: none;
            color: inherit;
        }
        img {
            max-width: 100%;
            display: block;
        }
        button,
        summary {
            cursor: pointer;
        }
        section {
            scroll-margin-top: 90px;
        }
        a:focus-visible,
        button:focus-visible,
        summary:focus-visible {
            outline: 2px solid var(--mango);
            outline-offset: 3px;
            border-radius: 8px;
        }
        .container_gt {
            width: min(1200px, 100% - 40px);
            margin-inline: auto;
        }
        @media (max-width: 640px) {
            .container_gt {
                width: calc(100% - 32px);
            }
        }
        .eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            letter-spacing: 0.04em;
            font-size: 13px;
            font-weight: 700;
            color: var(--brand-deep);
            background: rgba(230, 77, 115, 0.1);
            padding: 7px 14px;
            border-radius: 999px;
        }
        .btn-main {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            background: var(--brand);
            color: #fff;
            border-radius: 14px;
            padding: 14px 24px;
            font-weight: 700;
            border: 1px solid rgba(176, 36, 77, 0.1);
            box-shadow: 0 10px 24px rgba(230, 77, 115, 0.22);
            transition: all 0.2s ease;
        }
        .btn-main:hover {
            background: var(--brand-deep);
            transform: translateY(-2px);
            box-shadow: 0 14px 30px rgba(176, 36, 77, 0.28);
        }
        .btn-main:active {
            transform: translateY(0) scale(0.98);
            background: #9d1b43;
        }
        .btn-light {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            background: #fff;
            color: var(--ink);
            border-radius: 14px;
            padding: 14px 24px;
            font-weight: 700;
            border: 1px solid var(--pink-line);
            transition: all 0.2s ease;
        }
        .btn-light:hover {
            border-color: rgba(230, 77, 115, 0.4);
            color: var(--brand-deep);
            transform: translateY(-2px);
            box-shadow: 0 10px 25px rgba(180, 53, 87, 0.08);
        }
        .btn-light:active {
            transform: translateY(0) scale(0.98);
        }
        .main-card {
            background: #fff;
            border: 1px solid var(--pink-line);
            border-radius: var(--radius-xl);
            transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
        }
        .main-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-hover);
            border-color: rgba(230, 77, 115, 0.32);
        }
        .hover-card-img img {
            transition: transform .5s cubic-bezier(.22, .61, .36, 1);
        }
        .hover-card-img:hover img {
            transform: scale(1.03);
        }

        /* 导航卡片 / 移动端菜单 */
        @media (min-width: 1024px) {
            .nav-center-wrap {
                display: flex !important;
            }
            .mobile-nav-btn {
                display: none !important;
            }
        }
        @media (max-width: 1023.98px) {
            .nav-center-wrap {
                display: none !important;
            }
            .mobile-nav-btn {
                display: inline-flex !important;
            }
        }
        .nav-pill {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            color: var(--soft);
            font-size: 14px;
            font-weight: 600;
            padding: 9px 14px;
            border-radius: 999px;
            white-space: nowrap;
            border: 1px solid transparent;
            transition: all 0.2s ease;
        }
        .nav-pill:hover {
            background: #fff;
            color: var(--brand-deep);
            border-color: var(--pink-line);
            transform: translateY(-2px);
        }
        .nav-pill.active {
            background: #FDEAF0;
            color: var(--brand-deep);
            border-color: rgba(230, 77, 115, 0.18);
            box-shadow: inset 0 0 0 1px rgba(230, 77, 115, 0.04);
        }
        .mobile-panel {
            background: rgba(255, 255, 255, 0.96);
            border: 1px solid var(--pink-line);
            box-shadow: 0 24px 60px rgba(44, 14, 32, 0.14);
        }
        .mobile-panel .nav-pill {
            padding: 14px 16px;
            border-radius: 16px;
        }

        /* 页脚 */
        .footer-link {
            color: rgba(255, 255, 255, 0.68);
            font-size: 14px;
            transition: all 0.2s ease;
            display: block;
            padding: 4px 0;
        }
        .footer-link:hover {
            color: #fff;
            transform: translateX(3px);
        }

        /* FAQ */
        .faq-wrap {
            background: #fff;
            border: 1px solid var(--pink-line);
            border-radius: 20px;
            overflow: hidden;
            transition: border-color 0.2s ease, box-shadow 0.2s ease;
        }
        .faq-wrap[open] {
            border-color: rgba(230, 77, 115, 0.28);
            box-shadow: 0 12px 30px rgba(180, 53, 87, 0.06);
        }
        .faq-wrap summary {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            list-style: none;
            padding: 20px 24px;
            font-weight: 700;
            color: var(--ink);
        }
        .faq-wrap summary::-webkit-details-marker {
            display: none;
        }
        .faq-wrap summary .plus-icon {
            flex: 0 0 28px;
            width: 28px;
            height: 28px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 999px;
            background: #FDEAF0;
            color: var(--brand-deep);
            font-size: 18px;
            transition: transform 0.3s ease, background 0.2s ease;
        }
        .faq-wrap[open] summary .plus-icon {
            transform: rotate(45deg);
            background: var(--brand);
            color: #fff;
        }
        .faq-wrap .faq-answer {
            padding: 0 24px 22px;
            margin-top: -6px;
            color: var(--soft);
        }

        /* 分类页特有 */
        .cat-hero-wrap {
            position: relative;
            overflow: hidden;
            border-radius: var(--radius-xl);
            border: 1px solid var(--pink-line);
            background: #fff;
        }
        .cat-hero-bg {
            position: absolute;
            inset: 0;
            background-size: cover;
            background-position: center 40%;
            opacity: 0.5;
        }
        .cat-hero-overlay {
            position: absolute;
            inset: 0;
            background:
                radial-gradient(circle at 12% 18%, rgba(255, 255, 255, 0.92), transparent 38%),
                linear-gradient(90deg, rgba(255, 252, 250, 0.94) 18%, rgba(255, 252, 250, 0.72) 55%, rgba(255, 252, 250, 0.38) 100%);
        }
        .hero-info-card {
            background: rgba(255, 255, 255, 0.76);
            backdrop-filter: blur(14px);
            border: 1px solid rgba(230, 77, 115, 0.16);
            border-radius: 24px;
            box-shadow: 0 18px 50px rgba(112, 35, 67, 0.12);
        }
        .mini-point {
            background: #fff;
            border: 1px solid var(--pink-line);
            box-shadow: 0 8px 24px rgba(180, 53, 87, 0.06);
            transition: all 0.2s ease;
        }
        .mini-point:hover {
            transform: translateY(-3px);
            border-color: rgba(230, 77, 115, 0.3);
        }
        .channel-media {
            min-height: 260px;
            position: relative;
        }
        .channel-media img {
            object-fit: cover;
            width: 100%;
            height: 100%;
            position: absolute;
            inset: 0;
        }
        .type-big-card {
            position: relative;
            background: #fff;
            border: 1px solid var(--pink-line);
            border-radius: var(--radius-xl);
            overflow: hidden;
        }
        .type-big-card .type-img {
            height: clamp(260px, 32vw, 380px);
        }
        .type-big-card .type-info {
            position: absolute;
            left: 16px;
            right: 16px;
            bottom: 16px;
            background: rgba(255, 255, 255, 0.9);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.7);
            border-radius: 20px;
            padding: 16px 18px;
            box-shadow: 0 16px 40px rgba(31, 17, 26, 0.14);
        }
        .type-side-card {
            height: 100%;
            background: #fff;
            border: 1px solid var(--pink-line);
            border-radius: var(--radius-xl);
            overflow: hidden;
            transition: transform 0.25s ease, box-shadow 0.25s ease;
        }
        .type-side-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-hover);
        }
        .type-feature-row {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 12px 14px;
            border-radius: 16px;
            border: 1px solid var(--pink-line);
            background: #fff;
            transition: all 0.2s ease;
        }
        .type-feature-row:hover {
            border-color: rgba(230, 77, 115, 0.36);
            box-shadow: 0 8px 20px rgba(180, 53, 87, 0.08);
        }
        .rank-item {
            display: block;
            background: #fff;
            border: 1px solid var(--pink-line);
            border-radius: 18px;
            padding: 18px 18px 16px;
            transition: all 0.2s ease;
        }
        .rank-item:hover {
            transform: translateY(-3px);
            border-color: rgba(230, 77, 115, 0.32);
            box-shadow: var(--shadow-card);
        }
        .rank-num {
            flex: 0 0 auto;
            width: 34px;
            height: 34px;
            border-radius: 12px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-weight: 800;
            color: var(--brand-deep);
            background: #FDEAF0;
        }
        .data-chip {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            background: rgba(23, 164, 126, 0.1);
            color: #11825F;
            border-radius: 999px;
            padding: 5px 12px;
            font-size: 12px;
            font-weight: 700;
        }
        .step-card {
            background: #fff;
            border: 1px solid var(--pink-line);
            border-radius: 22px;
            padding: 22px;
            position: relative;
        }
        .step-card .step-num {
            width: 40px;
            height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: #FDEAF0;
            color: var(--brand-deep);
            font-weight: 800;
            border-radius: 14px;
        }
        .cta-soft {
            background: linear-gradient(100deg, rgba(255, 240, 244, 0.96), rgba(255, 247, 244, 0.96));
            border: 1px solid rgba(230, 77, 115, 0.18);
            border-radius: var(--radius-xl);
        }
        .dark-quote {
            background: #1B1420;
            color: #fff;
            border-radius: var(--radius-xl);
        }
        @media (max-width: 767.98px) {
            .type-big-card .type-info {
                position: relative;
                left: auto;
                right: auto;
                bottom: auto;
                border-radius: 16px;
                margin: 12px;
                box-shadow: none;
            }
            .channel-media {
                min-height: 200px;
            }
        }
