/* roulang page: index */
:root {
      --coral:#e8475f;
      --coral-dark:#c7334b;
      --berry:#7d244d;
      --lime:#c9ef4a;
      --lemon:#ffe36e;
      --ink:#241d2b;
      --muted:#756b78;
      --paper:#fffaf4;
      --soft:#f7eee8;
      --line:#eadbd4;
      --white:#fff;
      --shadow:0 12px 32px rgba(66,34,46,.10);
      --radius:14px;
    }
    *,*::before,*::after{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{margin:0;background:var(--paper);color:var(--ink);font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:16px;line-height:1.75}
    a{color:inherit;text-decoration:none}
    img{max-width:100%;display:block}
    button,input,select,textarea{font:inherit}
    button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
    .container{max-width:1220px}
    .site-header{position:absolute;z-index:10;top:20px;left:0;right:0}
    .nav-capsule{background:rgba(255,250,244,.95);border:1px solid rgba(234,219,212,.95);box-shadow:var(--shadow);border-radius:50px;padding:9px 12px 9px 22px}
    .brand{font-weight:800;font-size:17px;line-height:1.2;color:var(--berry);white-space:nowrap}
    .brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--coral);color:#fff;border-radius:9px;margin-right:8px;font-size:15px}
    .nav-link{font-size:14px;font-weight:700;color:var(--muted);padding:9px 14px!important;border-radius:30px;transition:.2s}
    .nav-link:hover{color:var(--coral);background:var(--soft)}
    .nav-link.active{background:var(--coral);color:#fff}
    .nav-cta,.btn-primary{background:var(--coral);color:#fff;border:1px solid var(--coral);font-weight:800;border-radius:9px;padding:11px 18px;transition:.2s}
    .nav-cta:hover,.btn-primary:hover{background:var(--coral-dark);border-color:var(--coral-dark);color:#fff;transform:translateY(-2px);box-shadow:0 7px 15px rgba(232,71,95,.22)}
    .btn-secondary{background:transparent;color:var(--berry);border:1px solid var(--berry);font-weight:800;border-radius:9px;padding:11px 18px;transition:.2s}
    .btn-secondary:hover{background:var(--berry);color:#fff;transform:translateY(-2px)}
    .hero{min-height:760px;padding:150px 0 90px;background:var(--soft);position:relative;overflow:hidden}
    .hero::after{content:"";position:absolute;right:-110px;top:130px;width:340px;height:340px;background:var(--lemon);border-radius:50%;opacity:.65}
    .eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:8px;color:var(--coral);font-weight:800;font-size:13px;letter-spacing:1px}
    .eyebrow::before{content:"";width:22px;height:3px;background:var(--coral)}
    h1,h2,h3{font-weight:800;line-height:1.2;letter-spacing:0}
    h1{font-size:clamp(42px,6vw,76px);max-width:760px;margin:20px 0 22px}
    h2{font-size:clamp(30px,4vw,44px);margin:10px 0 16px}
    h3{font-size:21px;margin:0 0 9px}
    .hero-copy{font-size:18px;line-height:1.85;max-width:690px;color:#554b58}
    .hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 35px}
    .hero-data{display:flex;gap:28px;flex-wrap:wrap}
    .data-item{border-left:3px solid var(--coral);padding-left:12px}
    .data-item strong{display:block;font-size:25px;line-height:1.2;color:var(--berry)}
    .data-item span{font-size:13px;color:var(--muted)}
    .hero-board{position:relative;z-index:1;background:var(--ink);color:#fff;border-radius:18px;padding:24px;box-shadow:0 18px 38px rgba(36,29,43,.22);min-height:400px;transform:rotate(1deg)}
    .board-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:18px}
    .live-tag{background:var(--lime);color:var(--ink);font-size:12px;font-weight:900;padding:5px 10px;border-radius:4px}
    .board-title{font-size:26px;font-weight:800;margin:34px 0 28px;max-width:340px}
    .subtitle-lines{display:grid;gap:12px}
    .subtitle-line{padding:11px 14px;background:#3a3040;border-left:4px solid var(--lemon);font-size:14px}
    .sticker{position:absolute;right:-28px;top:-30px;background:var(--lemon);color:var(--ink);font-weight:900;width:106px;height:106px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.3;transform:rotate(12deg);box-shadow:4px 6px 0 var(--coral)}
    .next-bar{position:absolute;bottom:0;left:0;right:0;background:var(--berry);color:#fff;padding:14px 0}
    .next-bar span{color:var(--lime);font-weight:800;margin-right:14px}
    .section{padding:95px 0}
    .section-soft{background:#fff}
    .section-dark{background:var(--ink);color:#fff}
    .section-heading{max-width:700px;margin-bottom:40px}
    .section-heading p{color:var(--muted);max-width:650px}
    .section-dark .section-heading p{color:#c5bac5}
    .feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
    .feature{padding:27px 24px;border-top:4px solid var(--coral);background:var(--white);box-shadow:var(--shadow);border-radius:var(--radius)}
    .feature:nth-child(2){border-color:var(--lime)}
    .feature:nth-child(3){border-color:var(--lemon)}
    .feature-icon{font-size:25px;color:var(--coral);margin-bottom:15px}
    .feature p,.scene p,.quote p,.info-list p,.faq-answer{color:var(--muted);margin:0}
    .timeline{position:relative;max-width:980px;margin:auto}
    .timeline::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;background:#d8b4bd}
    .timeline-item{width:50%;padding:0 45px 38px;position:relative}
    .timeline-item:nth-child(even){margin-left:50%}
    .timeline-item::after{content:"";position:absolute;right:-8px;top:5px;width:16px;height:16px;background:var(--coral);border:4px solid var(--paper);border-radius:50%}
    .timeline-item:nth-child(even)::after{left:-8px}
    .time{color:var(--coral);font-size:13px;font-weight:900}
    .timeline-item h3{margin-top:6px}
    .status{display:inline-block;font-size:12px;color:var(--berry);background:var(--lemon);padding:3px 8px;border-radius:4px;margin-top:11px;font-weight:800}
    .scene-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:stretch}
    .scene-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;box-shadow:var(--shadow)}
    .scene-panel.dark{background:var(--berry);color:#fff;border-color:var(--berry)}
    .scene-panel.dark p{color:#ead6dd}
    .keyword-wall{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
    .keyword{border:1px solid var(--line);padding:7px 12px;border-radius:5px;color:var(--berry);font-size:13px;background:var(--paper)}
    .dark .keyword{border-color:#b15b75;background:transparent;color:var(--lime)}
    .recognition{display:grid;grid-template-columns:1fr 1fr;gap:22px}
    .quote{border-left:4px solid var(--lime);padding:7px 0 7px 22px}
    .quote strong{display:block;margin-top:12px;color:var(--ink)}
    .info-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:30px}
    .info-list{border-top:1px solid var(--line)}
    .info-item{display:flex;justify-content:space-between;gap:20px;padding:21px 0;border-bottom:1px solid var(--line)}
    .info-item h3{font-size:18px}.info-item small{color:var(--coral);white-space:nowrap;font-weight:800}
    .side-note{background:var(--lemon);padding:28px;border-radius:var(--radius);align-self:start}
    .side-note p{color:#554b27}
    .plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
    .plan{background:#fff;color:var(--ink);padding:28px 23px;border-radius:var(--radius);border:1px solid #4d4050;position:relative}
    .plan.recommend{border:3px solid var(--coral);padding:26px 21px}
    .plan-badge{position:absolute;right:17px;top:17px;background:var(--coral);color:#fff;padding:4px 8px;font-size:12px;font-weight:800}
    .plan h3{color:var(--berry)}.plan p{color:var(--muted);min-height:52px}
    .plan ul{padding:0;margin:20px 0;list-style:none;border-top:1px solid var(--line)}
    .plan li{padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
    .plan li i{color:var(--coral);margin-right:7px}
    .form-band{background:var(--coral);color:#fff}
    .form-band p{color:#ffe8e9}
    .contact-form{background:#fff;padding:26px;border-radius:var(--radius);color:var(--ink);box-shadow:var(--shadow)}
    .form-label{font-size:13px;font-weight:800;color:var(--berry)}
    .form-control,.form-select{border:1px solid var(--line);border-radius:8px;padding:12px 13px}
    .form-control:focus,.form-select:focus{border-color:var(--coral);box-shadow:0 0 0 3px rgba(232,71,95,.15)}
    .form-note{font-size:12px;color:var(--muted);margin-top:13px}
    .faq-wrap{max-width:920px;margin:auto}
    .accordion-item{border:0;border-bottom:1px solid var(--line);background:transparent}
    .accordion-button{background:transparent!important;color:var(--ink)!important;font-weight:800;padding:21px 5px;box-shadow:none!important}
    .accordion-button::after{filter:none}
    .accordion-body{padding:0 35px 21px 5px;color:var(--muted)}
    footer{background:#1b1620;color:#d5cbd4;padding:58px 0 22px}
    footer .brand{color:#fff}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:35px;padding-bottom:42px}
    .footer-title{font-weight:800;color:var(--lemon);margin-bottom:14px}
    .footer-links{display:grid;gap:8px;font-size:14px}.footer-links a:hover{color:var(--lime)}
    .copyright{border-top:1px solid #3b303d;padding-top:18px;color:#9f929f;font-size:13px}
    @media(max-width:991px){.hero{min-height:unset;padding-top:135px}.hero-board{margin-top:35px}.scene-grid,.info-layout{grid-template-columns:1fr}.timeline-item{padding-right:30px}.timeline-item:nth-child(even){padding-left:30px}}
    @media(max-width:767px){.site-header{top:12px}.nav-capsule{border-radius:16px;padding:10px 14px}.brand{font-size:14px}.brand-mark{width:26px;height:26px}.nav-cta{font-size:12px;padding:8px 11px}.hero{padding:115px 0 80px}.hero::after{width:180px;height:180px;top:210px;right:-70px}h1{font-size:43px}.hero-copy{font-size:16px}.feature-row,.plans,.recognition,.footer-grid{grid-template-columns:1fr}.section{padding:68px 0}.timeline::before{left:8px}.timeline-item,.timeline-item:nth-child(even){width:100%;margin:0;padding:0 0 32px 35px}.timeline-item::after,.timeline-item:nth-child(even)::after{left:0;right:auto}.hero-data{gap:17px}.info-item{display:block}.info-item small{display:block;margin-top:6px}.sticker{right:-8px;top:-20px;width:82px;height:82px;font-size:12px}.contact-form{padding:20px}}
    @media(max-width:575px){.hero-actions .btn-primary,.hero-actions .btn-secondary{width:100%;text-align:center}.hero-board{padding:19px}.board-title{font-size:22px}.section-heading{margin-bottom:28px}.nav-cta{display:none}}

/* roulang page: category1 */
:root {
      --coral: #ed4d55;
      --coral-dark: #c93542;
      --berry: #7f234d;
      --ink: #241c2a;
      --muted: #766d79;
      --cream: #fff8f1;
      --paper: #fffdfb;
      --line: #eadfe0;
      --lime: #d8f35b;
      --yellow: #ffd34e;
      --cyan: #b9eee6;
      --dark: #2c2030;
      --radius: 14px;
      --shadow: 0 12px 30px rgba(57, 31, 42, .09);
      --shadow-sm: 0 5px 16px rgba(57, 31, 42, .07);
    }

    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      color: var(--ink);
      background: var(--cream);
      font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
      font-size: 16px;
      line-height: 1.75;
      overflow-x: hidden;
    }
    a { color: inherit; text-decoration: none; }
    a:hover { color: var(--coral-dark); }
    img { max-width: 100%; display: block; }
    button, input, select { font: inherit; }
    button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible {
      outline: 3px solid rgba(216, 243, 91, .9);
      outline-offset: 3px;
    }
    .container { max-width: 1240px; }
    .site-header {
      position: absolute;
      z-index: 20;
      top: 18px;
      left: 0;
      right: 0;
    }
    .nav-capsule {
      min-height: 68px;
      padding: 10px 14px 10px 20px;
      background: rgba(255, 253, 251, .96);
      border: 1px solid rgba(234, 223, 224, .95);
      border-radius: 999px;
      box-shadow: var(--shadow-sm);
    }
    .brand {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      color: var(--ink);
      font-weight: 800;
      line-height: 1.2;
      white-space: nowrap;
    }
    .brand-mark {
      display: inline-grid;
      place-items: center;
      width: 34px;
      height: 34px;
      color: #fff;
      background: var(--coral);
      border-radius: 10px;
      font-weight: 900;
    }
    .nav-link {
      position: relative;
      margin: 0 3px;
      padding: 10px 16px !important;
      border-radius: 999px;
      color: #5d5360;
      font-size: 14px;
      font-weight: 700;
    }
    .nav-link:hover { color: var(--ink); background: #fff0ed; }
    .nav-link.active { color: #fff; background: var(--coral); }
    .nav-cta, .btn-main {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 46px;
      padding: 10px 19px;
      border: 1px solid var(--coral);
      border-radius: 10px;
      color: #fff;
      background: var(--coral);
      font-weight: 800;
      transition: .2s ease;
    }
    .nav-cta:hover, .btn-main:hover {
      color: #fff;
      background: var(--coral-dark);
      border-color: var(--coral-dark);
      transform: translateY(-2px);
      box-shadow: 0 8px 16px rgba(237, 77, 85, .22);
    }
    .navbar-toggler { color: var(--ink); }

    .page-hero {
      position: relative;
      min-height: 560px;
      padding: 160px 0 88px;
      background: var(--dark);
      color: #fff;
      overflow: hidden;
    }
    .page-hero::after {
      content: "";
      position: absolute;
      right: -10%;
      top: 80px;
      width: 42%;
      height: 460px;
      background: var(--coral);
      clip-path: polygon(17% 0, 100% 12%, 87% 100%, 0 84%);
      opacity: .95;
    }
    .hero-copy { position: relative; z-index: 2; max-width: 720px; }
    .eyebrow, .section-kicker {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: var(--yellow);
      font-size: 13px;
      font-weight: 900;
      letter-spacing: 1px;
    }
    .eyebrow::before, .section-kicker::before {
      content: "";
      width: 26px;
      height: 4px;
      background: var(--yellow);
      border-radius: 4px;
    }
    h1, h2, h3 { margin-top: 0; font-weight: 800; line-height: 1.25; }
    h1 { margin: 18px 0 20px; max-width: 680px; font-size: clamp(38px, 5vw, 68px); }
    h2 { font-size: clamp(29px, 4vw, 42px); }
    h3 { font-size: 20px; }
    .hero-copy p {
      max-width: 650px;
      color: #eadfe5;
      font-size: 18px;
      line-height: 1.8;
    }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
    .btn-lightline {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 46px;
      padding: 10px 19px;
      border: 1px solid rgba(255,255,255,.5);
      border-radius: 10px;
      color: #fff;
      font-weight: 800;
    }
    .btn-lightline:hover { color: var(--ink); background: #fff; }
    .hero-meta {
      position: relative;
      z-index: 3;
      margin-top: 68px;
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
    }
    .hero-meta span, .tag {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 11px;
      border-radius: 999px;
      color: var(--ink);
      background: var(--lime);
      font-size: 13px;
      font-weight: 800;
    }
    .visual-index {
      position: absolute;
      z-index: 4;
      right: 9%;
      top: 184px;
      width: 290px;
      padding: 22px;
      color: var(--ink);
      background: var(--paper);
      border: 5px solid var(--yellow);
      box-shadow: 12px 14px 0 var(--berry);
      transform: rotate(3deg);
    }
    .visual-index strong { display: block; font-size: 44px; line-height: 1; color: var(--coral); }
    .visual-index .index-line {
      display: flex;
      justify-content: space-between;
      padding: 12px 0;
      border-bottom: 1px solid var(--line);
      font-size: 14px;
      font-weight: 700;
    }
    .visual-index .index-line:last-child { border-bottom: 0; }
    .content-section { padding: 96px 0; }
    .section-heading { max-width: 700px; margin-bottom: 34px; }
    .section-heading p { color: var(--muted); max-width: 650px; }
    .filter-bar {
      display: flex;
      align-items: center;
      gap: 12px;
      flex-wrap: wrap;
      padding: 16px;
      margin-bottom: 28px;
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow-sm);
    }
    .filter-bar label { color: var(--muted); font-size: 13px; font-weight: 800; }
    .filter-select, .search-field {
      min-height: 44px;
      padding: 8px 13px;
      color: var(--ink);
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 8px;
    }
    .filter-select:hover, .search-field:hover { border-color: var(--coral); }
    .search-field { min-width: 220px; }
    .filter-button {
      min-height: 44px;
      padding: 8px 15px;
      border: 1px solid var(--line);
      border-radius: 8px;
      color: var(--muted);
      background: #fff;
      font-weight: 700;
      cursor: pointer;
    }
    .filter-button:hover, .filter-button.active {
      color: var(--ink);
      border-color: var(--coral);
      background: #fff0ed;
    }
    .feature-row {
      display: grid;
      grid-template-columns: 1.2fr .8fr;
      gap: 22px;
      margin-bottom: 26px;
    }
    .feature-card, .info-card, .entry-card, .faq-item {
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: var(--shadow-sm);
    }
    .feature-card {
      position: relative;
      min-height: 270px;
      padding: 30px;
      overflow: hidden;
    }
    .feature-card::before {
      content: "中文字幕";
      position: absolute;
      right: 24px;
      top: 24px;
      padding: 8px 13px;
      color: var(--ink);
      background: var(--yellow);
      font-size: 13px;
      font-weight: 900;
      transform: rotate(5deg);
    }
    .feature-card h3 { max-width: 70%; font-size: 27px; }
    .feature-card p { max-width: 680px; color: var(--muted); }
    .card-footerline {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding-top: 22px;
      margin-top: 24px;
      border-top: 1px solid var(--line);
      color: var(--muted);
      font-size: 13px;
    }
    .info-card { padding: 26px; }
    .info-card.dark { color: #fff; background: var(--berry); border-color: var(--berry); }
    .info-card.dark p { color: #f2dfe8; }
    .status-number { display: block; color: var(--lime); font-size: 42px; font-weight: 900; line-height: 1; }
    .entry-list { display: grid; gap: 12px; }
    .entry-card {
      display: grid;
      grid-template-columns: 90px 1fr auto;
      align-items: center;
      gap: 20px;
      padding: 18px 22px;
      transition: .2s ease;
    }
    .entry-card:hover { transform: translateX(4px); border-color: var(--coral); box-shadow: var(--shadow); }
    .entry-index {
      display: grid;
      place-items: center;
      width: 64px;
      height: 64px;
      color: #fff;
      background: var(--coral);
      border-radius: 10px;
      font-size: 22px;
      font-weight: 900;
    }
    .entry-card h3 { margin-bottom: 4px; font-size: 18px; }
    .entry-card p { margin: 0; color: var(--muted); font-size: 14px; }
    .entry-details { color: var(--muted); font-size: 13px; }
    .entry-link {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      color: var(--coral-dark);
      font-size: 14px;
      font-weight: 900;
      white-space: nowrap;
    }
    .split-band { padding: 76px 0; color: #fff; background: var(--berry); }
    .split-band p { color: #f4dfe8; }
    .check-list { padding: 0; margin: 24px 0 0; list-style: none; }
    .check-list li { display: flex; gap: 12px; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
    .check-list i { color: var(--lime); }
    .access-panel {
      padding: 28px;
      color: var(--ink);
      background: var(--yellow);
      border-radius: var(--radius);
      box-shadow: 10px 10px 0 rgba(36, 28, 42, .35);
    }
    .access-panel .btn-main { color: var(--ink); background: var(--lime); border-color: var(--lime); }
    .access-panel .btn-main:hover { color: var(--ink); background: #c5e33c; border-color: #c5e33c; }
    .faq-section { padding: 92px 0; background: #fff; }
    .faq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 52px; }
    .faq-item { margin-bottom: 12px; box-shadow: none; }
    .faq-item summary { padding: 18px 20px; cursor: pointer; font-weight: 800; list-style: none; }
    .faq-item summary::-webkit-details-marker { display: none; }
    .faq-item summary::after { content: "+"; float: right; color: var(--coral); font-size: 22px; line-height: 1; }
    .faq-item[open] summary::after { content: "−"; }
    .faq-answer { padding: 0 20px 20px; color: var(--muted); font-size: 14px; }
    .cta-band { padding: 74px 0; background: var(--coral); color: #fff; }
    .cta-band h2 { max-width: 680px; }
    .cta-band p { max-width: 680px; color: #ffe8e5; }
    .cta-form { display: grid; grid-template-columns: 1fr 1fr 1.2fr auto; gap: 10px; margin-top: 24px; }
    .cta-form input, .cta-form select {
      min-height: 48px;
      padding: 10px 14px;
      border: 0;
      border-radius: 8px;
      color: var(--ink);
      background: #fff;
    }
    .cta-form .btn-submit {
      min-height: 48px;
      padding: 10px 20px;
      border: 0;
      border-radius: 8px;
      color: var(--ink);
      background: var(--lime);
      font-weight: 900;
    }
    .btn-submit:hover { background: #c8e344; transform: translateY(-2px); }
    .form-note { margin-top: 12px; color: #ffe8e5; font-size: 13px; }
    footer { padding: 52px 0 24px; color: #e9dce5; background: var(--dark); }
    footer .brand { color: #fff; }
    footer p { max-width: 310px; color: #bcaeba; font-size: 14px; }
    .footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 30px; padding-bottom: 42px; }
    .footer-title { margin-bottom: 12px; color: var(--yellow); font-weight: 800; }
    .footer-links { display: grid; gap: 7px; color: #d7c8d2; font-size: 14px; }
    .footer-links a:hover { color: var(--lime); }
    .copyright { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); color: #aa9aa8; font-size: 13px; }

    @media (max-width: 991.98px) {
      .nav-capsule { border-radius: 18px; }
      .navbar-collapse { padding: 14px 4px 4px; }
      .nav-link { margin: 3px 0; }
      .visual-index { right: 4%; width: 250px; }
      .feature-row, .faq-grid { grid-template-columns: 1fr; }
      .cta-form { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 767.98px) {
      .site-header { top: 10px; }
      .nav-capsule { padding-left: 14px; }
      .brand { font-size: 14px; }
      .brand-mark { width: 31px; height: 31px; }
      .page-hero { min-height: 700px; padding: 135px 0 52px; }
      .page-hero::after { right: -30%; top: 430px; width: 90%; height: 260px; }
      h1 { font-size: 40px; }
      .hero-copy p { font-size: 16px; }
      .visual-index { position: relative; top: auto; right: auto; width: min(290px, 88%); margin: 46px 0 0 8px; }
      .content-section, .faq-section { padding: 68px 0; }
      .entry-card { grid-template-columns: 62px 1fr; }
      .entry-index { width: 54px; height: 54px; font-size: 18px; }
      .entry-link { grid-column: 2; }
      .footer-grid { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 575.98px) {
      .hero-actions, .hero-actions a { width: 100%; }
      .hero-actions a { text-align: center; }
      .hero-meta { margin-top: 42px; }
      .filter-bar > * { width: 100%; }
      .search-field, .filter-select { min-width: 0; }
      .feature-card, .info-card { padding: 22px; }
      .feature-card h3 { max-width: 100%; font-size: 23px; }
      .feature-card::before { position: static; display: inline-flex; margin-bottom: 18px; }
      .entry-card { padding: 16px; gap: 13px; }
      .cta-form { grid-template-columns: 1fr; }
      .cta-form .btn-submit { width: 100%; }
      .footer-grid { grid-template-columns: 1fr; gap: 24px; }
    }

/* roulang page: category2 */
:root {
            --primary: #df3158;
            --primary-dark: #b91f43;
            --primary-soft: #fff0f3;
            --accent: #f4dd36;
            --accent-dark: #332d00;
            --lime: #b9dc45;
            --ink: #241b29;
            --ink-2: #413846;
            --muted: #756d78;
            --surface: #fffdf9;
            --surface-alt: #fff5ef;
            --surface-pink: #fff8fa;
            --dark: #211925;
            --dark-2: #302536;
            --border: #e8dde2;
            --border-strong: #d8c9d0;
            --success: #2f7b58;
            --warning: #9a6710;
            --danger: #b42342;
            --radius-sm: 8px;
            --radius: 12px;
            --radius-lg: 16px;
            --pill: 999px;
            --shadow-sm: 0 5px 16px rgba(45, 29, 40, .07);
            --shadow: 0 12px 30px rgba(45, 29, 40, .11);
            --transition: 180ms ease;
            --section-space: 88px;
        }

        *, *::before, *::after {
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
            scroll-padding-top: 110px;
        }

        body {
            margin: 0;
            overflow-x: hidden;
            color: var(--ink);
            background: var(--surface);
            font-family: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", system-ui, -apple-system, sans-serif;
            font-size: 16px;
            line-height: 1.8;
            letter-spacing: 0;
        }

        body, button, input, select, textarea {
            letter-spacing: 0;
        }

        a {
            color: inherit;
            text-decoration: none;
            transition: color var(--transition), background-color var(--transition), border-color var(--transition), transform var(--transition), box-shadow var(--transition);
        }

        a:hover {
            color: var(--primary-dark);
        }

        img {
            display: block;
            max-width: 100%;
        }

        button, input, select, textarea {
            font: inherit;
        }

        button:focus-visible,
        a:focus-visible,
        input:focus-visible,
        select:focus-visible,
        textarea:focus-visible {
            outline: 3px solid rgba(223, 49, 88, .28);
            outline-offset: 3px;
        }

        .container {
            max-width: 1220px;
        }

        .site-header {
            position: absolute;
            z-index: 1030;
            top: 0;
            right: 0;
            left: 0;
            padding-top: 22px;
        }

        .nav-capsule {
            min-height: 70px;
            padding: 10px 13px 10px 18px;
            border: 1px solid rgba(255, 255, 255, .78);
            border-radius: var(--pill);
            background: rgba(255, 253, 249, .96);
            box-shadow: 0 9px 28px rgba(19, 12, 20, .16);
        }

        .brand {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            color: var(--ink);
            font-size: 16px;
            font-weight: 800;
            line-height: 1.3;
        }

        .brand:hover {
            color: var(--primary);
        }

        .brand-mark {
            display: inline-grid;
            flex: 0 0 38px;
            width: 38px;
            height: 38px;
            place-items: center;
            border: 2px solid var(--ink);
            border-radius: 10px 5px 10px 5px;
            color: var(--ink);
            background: var(--accent);
            box-shadow: 3px 3px 0 var(--primary);
            font-size: 18px;
            font-weight: 900;
        }

        .navbar-nav {
            gap: 4px;
        }

        .navbar-nav .nav-link {
            position: relative;
            padding: 9px 14px !important;
            border-radius: var(--pill);
            color: var(--muted);
            font-size: 14px;
            font-weight: 700;
        }

        .navbar-nav .nav-link:hover {
            color: var(--ink);
            background: var(--primary-soft);
        }

        .navbar-nav .nav-link.active {
            color: #fff;
            background: var(--primary);
        }

        .navbar-nav .nav-link.active::after {
            position: absolute;
            right: 12px;
            bottom: 4px;
            left: 12px;
            height: 2px;
            border-radius: 2px;
            background: var(--accent);
            content: "";
        }

        .nav-cta {
            padding: 10px 17px;
            border: 1px solid var(--ink);
            border-radius: var(--pill);
            color: #fff;
            background: var(--ink);
            font-size: 14px;
            font-weight: 800;
            white-space: nowrap;
        }

        .nav-cta:hover {
            color: var(--ink);
            border-color: var(--accent);
            background: var(--accent);
            transform: translateY(-1px);
        }

        .navbar-toggler {
            color: var(--ink);
            border-radius: 8px;
        }

        .navbar-toggler:hover {
            color: var(--primary);
            background: var(--primary-soft);
        }

        .navbar-toggler:focus {
            box-shadow: 0 0 0 3px rgba(223, 49, 88, .2);
        }

        .category-hero {
            min-height: 650px;
            padding: 126px 0 78px;
            color: #fff;
            background: var(--dark);
        }

        .breadcrumb {
            margin-bottom: 24px;
            --bs-breadcrumb-divider-color: #ab9dac;
        }

        .breadcrumb-item,
        .breadcrumb-item a {
            color: #c9beca;
            font-size: 14px;
        }

        .breadcrumb-item a:hover {
            color: var(--accent);
        }

        .breadcrumb-item.active {
            color: #fff;
        }

        .hero-kicker {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 19px;
            padding: 7px 12px;
            border: 1px solid rgba(255, 255, 255, .2);
            border-radius: var(--pill);
            color: var(--accent);
            background: rgba(255, 255, 255, .07);
            font-size: 13px;
            font-weight: 800;
        }

        .status-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: var(--lime);
            box-shadow: 0 0 0 4px rgba(185, 220, 69, .15);
        }

        h1, h2, h3 {
            margin-top: 0;
            color: inherit;
            font-weight: 800;
            line-height: 1.28;
            letter-spacing: 0;
        }

        h1 {
            max-width: 820px;
            margin-bottom: 22px;
            font-size: 52px;
        }

        .hero-summary {
            max-width: 760px;
            margin-bottom: 30px;
            color: #d9ceda;
            font-size: 18px;
            line-height: 1.85;
        }

        .hero-actions {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
        }

        .btn-action,
        .btn-outline-light-custom,
        .btn-soft,
        .btn-dark-custom {
            display: inline-flex;
            min-height: 48px;
            align-items: center;
            justify-content: center;
            gap: 8px;
            padding: 11px 20px;
            border: 1px solid transparent;
            border-radius: 9px;
            font-weight: 800;
            transition: transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition), color var(--transition);
        }

        .btn-action {
            color: #fff;
            border-color: var(--primary);
            background: var(--primary);
            box-shadow: 0 7px 16px rgba(223, 49, 88, .23);
        }

        .btn-action:hover {
            color: #fff;
            border-color: var(--primary-dark);
            background: var(--primary-dark);
            box-shadow: 0 10px 22px rgba(223, 49, 88, .28);
            transform: translateY(-2px);
        }

        .btn-action:active,
        .btn-outline-light-custom:active,
        .btn-soft:active,
        .btn-dark-custom:active {
            transform: translateY(1px);
        }

        .btn-action:disabled,
        .btn-soft:disabled {
            cursor: not-allowed;
            opacity: .52;
            transform: none;
            box-shadow: none;
        }

        .btn-outline-light-custom {
            color: #fff;
            border-color: rgba(255, 255, 255, .38);
            background: transparent;
        }

        .btn-outline-light-custom:hover {
            color: var(--ink);
            border-color: var(--accent);
            background: var(--accent);
            transform: translateY(-2px);
        }

        .btn-soft {
            color: var(--primary-dark);
            border-color: #f2bbc7;
            background: var(--primary-soft);
        }

        .btn-soft:hover {
            color: #fff;
            border-color: var(--primary);
            background: var(--primary);
            transform: translateY(-1px);
        }

        .btn-dark-custom {
            color: #fff;
            border-color: var(--ink);
            background: var(--ink);
        }

        .btn-dark-custom:hover {
            color: var(--ink);
            border-color: var(--accent);
            background: var(--accent);
            transform: translateY(-1px);
        }

        .hero-index {
            position: relative;
            min-height: 410px;
            padding: 26px;
            border: 1px solid rgba(255, 255, 255, .13);
            border-radius: var(--radius-lg);
            background: var(--dark-2);
            box-shadow: 14px 14px 0 rgba(223, 49, 88, .78);
        }

        .burst-label {
            position: absolute;
            z-index: 2;
            top: -19px;
            right: 22px;
            display: grid;
            width: 92px;
            min-height: 72px;
            place-items: center;
            padding: 10px;
            clip-path: polygon(50% 0%, 61% 13%, 78% 6%, 83% 23%, 100% 27%, 91% 43%, 100% 57%, 84% 65%, 84% 83%, 65% 83%, 53% 100%, 41% 87%, 23% 95%, 18% 77%, 0 72%, 10% 54%, 0 41%, 16% 31%, 14% 13%, 34% 15%);
            color: var(--accent-dark);
            background: var(--accent);
            font-size: 13px;
            font-weight: 900;
            line-height: 1.3;
            text-align: center;
        }

        .index-heading {
            margin-bottom: 21px;
            padding-right: 90px;
        }

        .index-heading small {
            display: block;
            margin-bottom: 4px;
            color: #aa9cab;
            font-size: 12px;
            font-weight: 700;
        }

        .index-heading strong {
            font-size: 22px;
        }

        .rank-list {
            display: grid;
            gap: 10px;
        }

        .rank-row {
            display: grid;
            min-height: 67px;
            grid-template-columns: 38px minmax(0, 1fr) auto;
            align-items: center;
            gap: 12px;
            padding: 10px 12px;
            border: 1px solid rgba(255, 255, 255, .09);
            border-radius: 9px;
            background: rgba(255, 255, 255, .055);
        }

        .rank-row:hover {
            border-color: rgba(244, 221, 54, .5);
            background: rgba(255, 255, 255, .09);
        }

        .rank-number {
            display: grid;
            width: 34px;
            height: 34px;
            place-items: center;
            border-radius: 8px;
            color: var(--ink);
            background: var(--accent);
            font-size: 13px;
            font-weight: 900;
        }

        .rank-copy {
            min-width: 0;
        }

        .rank-copy strong {
            display: block;
            overflow-wrap: anywhere;
            color: #fff;
            font-size: 14px;
        }

        .rank-copy span {
            display: block;
            color: #bcaebd;
            font-size: 12px;
        }

        .rank-state {
            color: var(--lime);
            font-size: 12px;
            font-weight: 800;
            white-space: nowrap;
        }

        .update-clock {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 14px;
            margin-top: 18px;
            padding-top: 17px;
            border-top: 1px solid rgba(255, 255, 255, .12);
        }

        .update-clock span {
            color: #bcaebd;
            font-size: 13px;
        }

        .clock-parts {
            display: flex;
            gap: 5px;
        }

        .clock-part {
            min-width: 44px;
            padding: 5px 7px;
            border-radius: 6px;
            color: var(--ink);
            background: var(--accent);
            font-size: 13px;
            font-weight: 900;
            text-align: center;
        }

        .section {
            padding: var(--section-space) 0;
        }

        .section-soft {
            background: var(--surface-alt);
        }

        .section-dark {
            color: #fff;
            background: var(--dark);
        }

        .section-heading {
            max-width: 760px;
            margin-bottom: 36px;
        }

        .section-heading .eyebrow {
            display: inline-block;
            margin-bottom: 8px;
            color: var(--primary);
            font-size: 13px;
            font-weight: 900;
        }

        .section-heading h2 {
            margin-bottom: 12px;
            color: var(--ink);
            font-size: 36px;
        }

        .section-heading p {
            margin: 0;
            color: var(--muted);
            font-size: 16px;
        }

        .section-dark .section-heading h2 {
            color: #fff;
        }

        .section-dark .section-heading p {
            color: #cfc3d0;
        }

        .filter-shell {
            position: sticky;
            top: 16px;
            z-index: 10;
            padding: 18px;
            border: 1px solid var(--border);
            border-radius: var(--radius);
            background: rgba(255, 253, 249, .97);
            box-shadow: var(--shadow-sm);
        }

        .filter-label {
            display: block;
            margin-bottom: 7px;
            color: var(--ink-2);
            font-size: 13px;
            font-weight: 800;
        }

        .form-control,
        .form-select {
            min-height: 48px;
            border-color: var(--border-strong);
            border-radius: 8px;
            color: var(--ink);
            background-color: #fff;
        }

        .form-control:hover,
        .form-select:hover {
            border-color: #bba8b1;
        }

        .form-control:focus,
        .form-select:focus {
            border-color: var(--primary);
            box-shadow: 0 0 0 4px rgba(223, 49, 88, .13);
        }

        .form-control.is-invalid {
            border-color: var(--danger);
            background-image: none;
        }

        .invalid-feedback {
            color: var(--danger);
            font-size: 13px;
        }

        .index-tabs {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-top: 18px;
        }

        .index-tab {
            min-height: 40px;
            padding: 8px 13px;
            border: 1px solid var(--border);
            border-radius: var(--pill);
            color: var(--muted);
            background: #fff;
            font-size: 13px;
            font-weight: 800;
        }

        .index-tab:hover {
            color: var(--primary-dark);
            border-color: #ee9caf;
            background: var(--primary-soft);
        }

        .index-tab.active {
            color: #fff;
            border-color: var(--primary);
            background: var(--primary);
        }

        .index-tab:active {
            transform: translateY(1px);
        }

        .index-tab:disabled {
            cursor: not-allowed;
            color: #aaa1a5;
            border-color: #e6e0e2;
            background: #f5f2f3;
        }

        .result-summary {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            margin: 30px 0 17px;
        }

        .result-summary strong {
            font-size: 18px;
        }

        .result-count {
            padding: 5px 10px;
            border-radius: var(--pill);
            color: var(--primary-dark);
            background: var(--primary-soft);
            font-size: 12px;
            font-weight: 900;
        }

        .content-directory {
            overflow: hidden;
            border: 1px solid var(--border);
            border-radius: var(--radius);
            background: #fff;
            box-shadow: var(--shadow-sm);
        }

        .directory-head {
            display: grid;
            grid-template-columns: minmax(260px, 1.5fr) .65fr .7fr .55fr;
            gap: 16px;
            padding: 13px 20px;
            color: #fff;
            background: var(--ink);
            font-size: 12px;
            font-weight: 800;
        }

        .directory-item {
            display: grid;
            min-height: 116px;
            grid-template-columns: minmax(260px, 1.5fr) .65fr .7fr .55fr;
            align-items: center;
            gap: 16px;
            padding: 19px 20px;
            border-bottom: 1px solid var(--border);
            transition: background var(--transition);
        }

        .directory-item:last-child {
            border-bottom: 0;
        }

        .directory-item:hover {
            background: var(--surface-pink);
        }

        .item-title {
            min-width: 0;
        }

        .item-title h3 {
            margin-bottom: 6px;
            color: var(--ink);
            font-size: 18px;
            overflow-wrap: anywhere;
        }

        .item-title p {
            margin: 0;
            color: var(--muted);
            font-size: 14px;
            line-height: 1.65;
        }

        .meta-label {
            display: none;
            margin-bottom: 3px;
            color: var(--muted);
            font-size: 11px;
            font-weight: 800;
        }

        .info-badge,
        .state-badge,
        .category-badge {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            width: fit-content;
            padding: 5px 9px;
            border-radius: var(--pill);
            font-size: 12px;
            font-weight: 800;
        }

        .info-badge {
            color: #755100;
            background: #fff7bd;
        }

        .state-badge {
            color: var(--success);
            background: #e7f5ed;
        }

        .state-badge.pending {
            color: var(--warning);
            background: #fff0d4;
        }

        .category-badge {
            color: var(--primary-dark);
            background: var(--primary-soft);
        }

        .item-action {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            color: var(--primary-dark);
            font-size: 13px;
            font-weight: 900;
        }

        .item-action:hover {
            gap: 8px;
            color: var(--ink);
        }

        .empty-state,
        .loading-state {
            display: none;
            min-height: 250px;
            align-items: center;
            justify-content: center;
            padding: 35px;
            text-align: center;
        }

        .empty-state.visible,
        .loading-state.visible {
            display: flex;
        }

        .state-icon {
            display: grid;
            width: 58px;
            height: 58px;
            margin: 0 auto 13px;
            place-items: center;
            border-radius: 12px;
            color: var(--primary);
            background: var(--primary-soft);
            font-size: 25px;
        }

        .empty-state h3,
        .loading-state h3 {
            margin-bottom: 6px;
            color: var(--ink);
            font-size: 20px;
        }

        .empty-state p,
        .loading-state p {
            margin: 0;
            color: var(--muted);
        }

        .pagination-wrap {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 15px;
            margin-top: 22px;
        }

        .pagination {
            margin: 0;
            gap: 5px;
        }

        .page-link {
            min-width: 40px;
            min-height: 40px;
            display: grid;
            place-items: center;
            border: 1px solid var(--border);
            border-radius: 8px !important;
            color: var(--ink);
            background: #fff;
            font-weight: 800;
        }

        .page-link:hover {
            color: var(--primary-dark);
            border-color: #ef9eb1;
            background: var(--primary-soft);
        }

        .page-item.active .page-link {
            color: #fff;
            border-color: var(--primary);
            background: var(--primary);
        }

        .page-item.disabled .page-link {
            color: #aaa1a5;
            border-color: #e5dfe2;
            background: #f4f1f2;
        }

        .comparison-grid {
            display: grid;
            grid-template-columns: .8fr 1fr 1fr 1fr;
            overflow: hidden;
            border: 1px solid rgba(255, 255, 255, .15);
            border-radius: var(--radius);
        }

        .comparison-cell {
            min-height: 74px;
            padding: 17px;
            border-right: 1px solid rgba(255, 255, 255, .12);
            border-bottom: 1px solid rgba(255, 255, 255, .12);
            color: #d7ccd8;
        }

        .comparison-cell:nth-child(4n) {
            border-right: 0;
        }

        .comparison-cell:nth-last-child(-n+4) {
            border-bottom: 0;
        }

        .comparison-cell.head {
            min-height: 92px;
            color: #fff;
            background: rgba(255, 255, 255, .07);
            font-weight: 900;
        }

        .comparison-cell.head.recommended {
            position: relative;
            color: var(--ink);
            background: var(--accent);
        }

        .comparison-cell.label {
            color: #fff;
            font-weight: 800;
        }

        .comparison-cell i {
            margin-right: 6px;
            color: var(--lime);
        }

        .comparison-cell .bi-dash-circle {
            color: #9d909e;
        }

        .recommended-tag {
            display: block;
            color: var(--primary-dark);
            font-size: 11px;
        }

        .access-steps {
            position: relative;
            display: grid;
            gap: 0;
            margin-top: 34px;
        }

        .access-step {
            position: relative;
            display: grid;
            min-height: 132px;
            grid-template-columns: 82px minmax(0, 1fr) auto;
            align-items: center;
            gap: 22px;
            padding: 23px 0;
            border-bottom: 1px solid var(--border);
        }

        .access-step:last-child {
            border-bottom: 0;
        }

        .step-number {
            display: grid;
            width: 64px;
            height: 64px;
            place-items: center;
            border: 2px solid var(--ink);
            border-radius: 11px 5px 11px 5px;
            color: var(--ink);
            background: var(--accent);
            box-shadow: 4px 4px 0 var(--primary);
            font-size: 20px;
            font-weight: 900;
        }

        .step-copy h3 {
            margin-bottom: 5px;
            color: var(--ink);
            font-size: 21px;
        }

        .step-copy p {
            max-width: 720px;
            margin: 0;
            color: var(--muted);
        }

        .step-status {
            color: var(--success);
            font-size: 13px;
            font-weight: 900;
            white-space: nowrap;
        }

        .notice-band {
            padding: 28px 0;
            color: var(--ink);
            background: var(--accent);
        }

        .notice-inner {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 24px;
        }

        .notice-copy {
            display: flex;
            align-items: center;
            gap: 16px;
        }

        .notice-icon {
            display: grid;
            flex: 0 0 48px;
            width: 48px;
            height: 48px;
            place-items: center;
            border: 2px solid var(--ink);
            border-radius: 10px;
            font-size: 22px;
        }

        .notice-copy strong {
            display: block;
            font-size: 18px;
        }

        .notice-copy span {
            display: block;
            font-size: 14px;
        }

        .faq-wrap {
            border-top: 1px solid var(--border);
        }

        .accordion-item {
            border: 0;
            border-bottom: 1px solid var(--border);
            background: transparent;
        }

        .accordion-button {
            padding: 23px 4px;
            color: var(--ink);
            background: transparent;
            font-size: 18px;
            font-weight: 800;
            box-shadow: none;
        }

        .accordion-button:not(.collapsed) {
            color: var(--primary-dark);
            background: transparent;
            box-shadow: none;
        }

        .accordion-button::after {
            border-radius: 50%;
        }

        .accordion-button:focus {
            border-color: transparent;
            box-shadow: 0 0 0 3px rgba(223, 49, 88, .15);
        }

        .accordion-body {
            max-width: 880px;
            padding: 0 4px 24px;
            color: var(--muted);
        }

        .access-cta {
            position: relative;
            overflow: hidden;
            padding: 62px;
            border-radius: var(--radius-lg);
            color: #fff;
            background: var(--primary);
            box-shadow: var(--shadow);
        }

        .access-cta::before {
            position: absolute;
            top: 0;
            right: 0;
            width: 170px;
            height: 100%;
            background: var(--accent);
            clip-path: polygon(60% 0, 100% 0, 100% 100%, 0 100%);
            content: "";
        }

        .access-cta > .row {
            position: relative;
            z-index: 1;
        }

        .access-cta h2 {
            margin-bottom: 13px;
            font-size: 34px;
        }

        .access-cta p {
            max-width: 650px;
            margin-bottom: 0;
            color: #fff5f7;
        }

        .request-form {
            padding: 22px;
            border: 1px solid rgba(255, 255, 255, .28);
            border-radius: var(--radius);
            background: var(--dark);
        }

        .request-form label {
            margin-bottom: 5px;
            color: #f8edf7;
            font-size: 13px;
            font-weight: 800;
        }

        .request-form .form-control,
        .request-form .form-select {
            min-height: 45px;
            border-color: #554756;
            color: #fff;
            background-color: #302631;
        }

        .request-form .form-control::placeholder {
            color: #b7abb7;
        }

        .request-form .form-select {
            --bs-form-select-bg-img: none;
        }

        .request-form .form-control:focus,
        .request-form .form-select:focus {
            border-color: var(--accent);
            box-shadow: 0 0 0 3px rgba(244, 221, 54, .18);
        }

        .privacy-note {
            margin: 10px 0 0;
            color: #cfc2cf;
            font-size: 12px;
        }

        .form-message {
            display: none;
            margin-top: 10px;
            padding: 9px 11px;
            border-radius: 7px;
            font-size: 13px;
            font-weight: 700;
        }

        .form-message.success {
            display: block;
            color: #d7f7e5;
            background: rgba(47, 123, 88, .35);
        }

        .form-message.error {
            display: block;
            color: #ffe2e8;
            background: rgba(180, 35, 66, .34);
        }

        footer {
            padding: 68px 0 22px;
            color: #cfc4d0;
            background: #171218;
        }

        footer .brand {
            color: #fff;
        }

        footer .brand:hover {
            color: var(--accent);
        }

        footer p {
            max-width: 390px;
            color: #a99daa;
            font-size: 14px;
        }

        .footer-grid {
            display: grid;
            grid-template-columns: 1.7fr .75fr .75fr;
            gap: 52px;
        }

        .footer-title {
            margin-bottom: 14px;
            color: #fff;
            font-size: 14px;
            font-weight: 900;
        }

        .footer-links {
            display: grid;
            gap: 9px;
        }

        .footer-links a {
            width: fit-content;
            color: #afa3b0;
            font-size: 14px;
        }

        .footer-links a:hover {
            color: var(--accent);
            transform: translateX(3px);
        }

        .copyright {
            margin-top: 44px;
            padding-top: 19px;
            border-top: 1px solid #302732;
            color: #887d89;
            font-size: 12px;
        }

        @media (max-width: 991.98px) {
            :root {
                --section-space: 72px;
            }

            .site-header {
                padding-top: 14px;
            }

            .nav-capsule {
                border-radius: 18px;
            }

            .navbar-collapse {
                margin-top: 12px;
                padding: 13px 5px 5px;
                border-top: 1px solid var(--border);
            }

            .navbar-nav {
                align-items: stretch !important;
            }

            .navbar-nav .nav-link {
                margin-bottom: 4px;
            }

            .nav-cta {
                width: 100%;
                text-align: center;
            }

            .category-hero {
                min-height: auto;
                padding: 112px 0 72px;
            }

            h1 {
                font-size: 43px;
            }

            .hero-index {
                min-height: auto;
                margin-top: 48px;
            }

            .filter-shell {
                position: static;
            }

            .directory-head {
                display: none;
            }

            .directory-item {
                grid-template-columns: 1fr 1fr;
            }

            .item-title {
                grid-column: 1 / -1;
            }

            .meta-label {
                display: block;
            }

            .comparison-wrap {
                overflow-x: auto;
                padding-bottom: 8px;
            }

            .comparison-grid {
                min-width: 850px;
            }

            .access-cta {
                padding: 45px 35px;
            }

            .access-cta::before {
                width: 90px;
                opacity: .3;
            }

            .request-form {
                margin-top: 30px;
            }

            .footer-grid {
                grid-template-columns: 1.4fr .8fr .8fr;
                gap: 30px;
            }
        }

        @media (max-width: 767.98px) {
            :root {
                --section-space: 58px;
            }

            .brand {
                max-width: calc(100vw - 115px);
                font-size: 14px;
            }

            .brand-mark {
                flex-basis: 34px;
                width: 34px;
                height: 34px;
                font-size: 16px;
            }

            .nav-capsule {
                min-height: 62px;
                padding: 8px 10px 8px 13px;
            }

            .category-hero {
                padding-top: 100px;
            }

            h1 {
                font-size: 36px;
            }

            .hero-summary {
                font-size: 16px;
            }

            .section-heading h2 {
                font-size: 30px;
            }

            .filter-shell {
                padding: 15px;
            }

            .directory-item {
                min-height: 0;
                grid-template-columns: 1fr;
                gap: 13px;
                padding: 19px 16px;
            }

            .item-title {
                grid-column: auto;
            }

            .pagination-wrap {
                align-items: flex-start;
                flex-direction: column;
            }

            .access-step {
                grid-template-columns: 60px minmax(0, 1fr);
                gap: 15px;
            }

            .step-number {
                width: 52px;
                height: 52px;
            }

            .step-status {
                grid-column: 2;
            }

            .notice-inner {
                align-items: flex-start;
                flex-direction: column;
            }

            .access-cta {
                padding: 35px 24px;
            }

            .access-cta h2 {
                font-size: 29px;
            }

            .footer-grid {
                grid-template-columns: 1fr 1fr;
            }

            .footer-grid > div:first-child {
                grid-column: 1 / -1;
            }
        }

        @media (max-width: 575.98px) {
            :root {
                --section-space: 48px;
            }

            body {
                font-size: 15px;
            }

            .container {
                padding-right: 18px;
                padding-left: 18px;
            }

            .site-header .container {
                padding-right: 10px;
                padding-left: 10px;
            }

            .brand {
                max-width: calc(100vw - 92px);
                gap: 7px;
                font-size: 12px;
                overflow-wrap: anywhere;
            }

            .navbar-toggler {
                padding: 6px !important;
            }

            .category-hero {
                padding: 92px 0 54px;
            }

            .breadcrumb {
                margin-bottom: 17px;
            }

            h1 {
                font-size: 31px;
                line-height: 1.34;
            }

            .hero-actions {
                display: grid;
                grid-template-columns: 1fr;
            }

            .hero-actions a {
                width: 100%;
            }

            .hero-index {
                margin-top: 38px;
                padding: 20px 15px;
                box-shadow: 7px 7px 0 rgba(223, 49, 88, .78);
            }

            .burst-label {
                right: 10px;
                width: 76px;
                min-height: 63px;
                font-size: 11px;
            }

            .index-heading {
                padding-right: 76px;
            }

            .rank-row {
                grid-template-columns: 34px minmax(0, 1fr);
            }

            .rank-state {
                grid-column: 2;
            }

            .update-clock {
                align-items: flex-start;
                flex-direction: column;
            }

            .section-heading h2 {
                font-size: 27px;
            }

            .index-tabs {
                flex-wrap: nowrap;
                overflow-x: auto;
                padding-bottom: 7px;
            }

            .index-tab {
                flex: 0 0 auto;
            }

            .result-summary {
                align-items: flex-start;
                flex-direction: column;
                gap: 7px;
            }

            .pagination {
                flex-wrap: wrap;
            }

            .access-step {
                grid-template-columns: 1fr;
            }

            .step-status {
                grid-column: auto;
            }

            .notice-copy {
                align-items: flex-start;
            }

            .accordion-button {
                padding: 19px 2px;
                font-size: 16px;
                line-height: 1.55;
            }

            .access-cta {
                margin-right: -5px;
                margin-left: -5px;
                padding: 30px 18px;
            }

            .access-cta::before {
                display: none;
            }

            .btn-action,
            .btn-outline-light-custom,
            .btn-soft,
            .btn-dark-custom {
                width: 100%;
            }

            .footer-grid {
                grid-template-columns: 1fr;
                gap: 30px;
            }

            .footer-grid > div:first-child {
                grid-column: auto;
            }

            footer {
                padding-top: 50px;
            }
        }

        @media (prefers-reduced-motion: reduce) {
            html {
                scroll-behavior: auto;
            }

            *, *::before, *::after {
                transition-duration: .01ms !important;
                animation-duration: .01ms !important;
                animation-iteration-count: 1 !important;
            }
        }
