/* roulang page: index */
:root{
      --primary:#1f9d8a;
      --primary-dark:#168b7a;
      --primary-deep:#123332;
      --primary-ink:#163b3a;
      --accent:#f4a938;
      --accent-soft:#fff3d8;
      --danger-soft:#fff0eb;
      --danger:#e6674a;
      --bg:#f7fbf9;
      --bg-soft:#eaf7f3;
      --surface:#ffffff;
      --surface-2:#fbfefd;
      --text:#173836;
      --muted:#5f7672;
      --light:#dbece7;
      --border:rgba(31,157,138,.16);
      --border-strong:rgba(31,157,138,.32);
      --shadow:0 16px 40px rgba(18,51,50,.08);
      --shadow-hover:0 22px 54px rgba(18,51,50,.13);
      --radius-lg:28px;
      --radius-md:20px;
      --radius-sm:14px;
      --radius-pill:999px;
      --container:1200px;
    }

    *{
      box-sizing:border-box;
    }

    html{
      scroll-behavior:smooth;
    }

    body{
      margin:0;
      font-family:system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
      color:var(--text);
      background:
        radial-gradient(circle at 8% 8%, rgba(31,157,138,.10), transparent 28%),
        radial-gradient(circle at 92% 16%, rgba(244,169,56,.10), transparent 24%),
        var(--bg);
      line-height:1.75;
      text-rendering:optimizeLegibility;
      -webkit-font-smoothing:antialiased;
    }

    a{
      color:inherit;
      text-decoration:none;
      transition:color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
    }

    a:hover{
      color:var(--primary-dark);
    }

    img{
      max-width:100%;
      display:block;
    }

    button,
    input,
    select,
    textarea{
      font:inherit;
    }

    ::selection{
      background:rgba(31,157,138,.22);
      color:var(--primary-ink);
    }

    .site-container{
      width:min(100% - 40px, var(--container));
      margin-inline:auto;
    }

    .section{
      padding:92px 0;
    }

    .section-tight{
      padding:64px 0;
    }

    .section-head{
      max-width:760px;
      margin-bottom:34px;
    }

    .section-kicker{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 13px;
      border-radius:var(--radius-pill);
      background:rgba(31,157,138,.10);
      color:var(--primary-dark);
      font-size:14px;
      font-weight:700;
      margin-bottom:14px;
    }

    .section-title{
      margin:0;
      font-size:clamp(30px,4vw,42px);
      line-height:1.22;
      letter-spacing:-.02em;
      color:var(--primary-ink);
      font-weight:850;
    }

    .section-desc{
      margin:16px 0 0;
      color:var(--muted);
      font-size:17px;
      max-width:780px;
    }

    .topbar{
      background:var(--primary-deep);
      color:rgba(255,255,255,.82);
      font-size:14px;
    }

    .topbar-inner{
      width:min(100% - 40px, var(--container));
      margin-inline:auto;
      min-height:40px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
    }

    .topbar-left,
    .topbar-right{
      display:flex;
      align-items:center;
      gap:16px;
      flex-wrap:wrap;
    }

    .topbar-dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--accent);
      box-shadow:0 0 0 4px rgba(244,169,56,.18);
      flex:0 0 auto;
    }

    .topbar-link{
      color:rgba(255,255,255,.86);
      border-bottom:1px solid rgba(255,255,255,.22);
    }

    .topbar-link:hover{
      color:#fff;
      border-color:rgba(255,255,255,.6);
    }

    .site-header{
      position:sticky;
      top:0;
      z-index:50;
      background:rgba(250,252,251,.88);
      backdrop-filter:saturate(180%) blur(14px);
      border-bottom:1px solid rgba(31,157,138,.12);
      box-shadow:0 10px 28px rgba(18,51,50,.04);
    }

    .navbar{
      min-height:78px;
      padding:0;
    }

    .navbar-brand{
      display:flex;
      align-items:center;
      gap:12px;
      margin:0;
      padding:0;
      color:var(--primary-ink);
      font-weight:900;
      letter-spacing:-.02em;
      white-space:normal;
    }

    .brand-mark{
      width:46px;
      height:46px;
      border-radius:16px;
      display:grid;
      place-items:center;
      color:#fff;
      background:
        radial-gradient(circle at 65% 30%, rgba(255,255,255,.36), transparent 22%),
        linear-gradient(135deg,var(--primary),#38b99e);
      box-shadow:0 14px 28px rgba(31,157,138,.24);
      position:relative;
      overflow:hidden;
      flex:0 0 auto;
    }

    .brand-mark:before{
      content:"";
      width:21px;
      height:25px;
      border:2px solid #fff;
      border-radius:11px 11px 14px 14px;
      clip-path:polygon(50% 0, 100% 22%, 88% 78%, 50% 100%, 12% 78%, 0 22%);
    }

    .brand-mark:after{
      content:"";
      position:absolute;
      inset:auto 8px 8px auto;
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--accent);
      box-shadow:-15px -17px 0 rgba(255,255,255,.55), -25px 2px 0 rgba(255,255,255,.28);
    }

    .brand-text{
      display:flex;
      flex-direction:column;
      line-height:1.15;
    }

    .brand-name{
      font-size:19px;
    }

    .brand-sub{
      color:var(--muted);
      font-size:12px;
      font-weight:700;
      margin-top:4px;
    }

    .navbar-toggler{
      border:1px solid var(--border);
      border-radius:14px;
      padding:9px 11px;
      box-shadow:none!important;
      background:#fff;
    }

    .navbar-toggler:focus-visible{
      outline:3px solid rgba(31,157,138,.24);
      outline-offset:3px;
    }

    .navbar-toggler-icon{
      width:1.35em;
      height:1.35em;
      background-image:none;
      position:relative;
    }

    .navbar-toggler-icon:before,
    .navbar-toggler-icon:after,
    .navbar-toggler-icon span{
      content:"";
      position:absolute;
      left:1px;
      right:1px;
      height:2px;
      border-radius:999px;
      background:var(--primary-ink);
    }

    .navbar-toggler-icon:before{top:4px;}
    .navbar-toggler-icon span{top:10px;}
    .navbar-toggler-icon:after{top:16px;}

    .nav-menu{
      align-items:center;
      gap:8px;
    }

    .nav-link{
      color:var(--text);
      font-weight:750;
      padding:10px 15px!important;
      border-radius:var(--radius-pill);
      position:relative;
    }

    .nav-link:hover{
      color:var(--primary-dark);
      background:rgba(31,157,138,.08);
    }

    .nav-link.active{
      color:var(--primary-dark)!important;
      background:rgba(31,157,138,.12);
    }

    .nav-cta{
      margin-left:8px;
    }

    .btn-custom{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      min-height:46px;
      padding:13px 22px;
      border-radius:var(--radius-pill);
      font-weight:800;
      border:1px solid transparent;
      transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
      cursor:pointer;
      text-align:center;
      line-height:1.2;
    }

    .btn-custom:focus-visible,
    .form-control:focus,
    .form-select:focus,
    .accordion-button:focus-visible{
      outline:3px solid rgba(31,157,138,.24);
      outline-offset:3px;
      box-shadow:none;
    }

    .btn-primary-custom{
      background:var(--primary);
      color:#fff;
      box-shadow:0 12px 24px rgba(31,157,138,.22);
    }

    .btn-primary-custom:hover{
      background:var(--primary-dark);
      color:#fff;
      transform:translateY(-2px);
      box-shadow:0 18px 34px rgba(31,157,138,.30);
    }

    .btn-secondary-custom{
      background:#fff;
      color:var(--primary-dark);
      border-color:var(--border-strong);
    }

    .btn-secondary-custom:hover{
      background:var(--bg-soft);
      border-color:var(--primary);
      transform:translateY(-2px);
      color:var(--primary-dark);
      box-shadow:var(--shadow);
    }

    .btn-warning-custom{
      background:var(--accent);
      color:#2f2610;
      box-shadow:0 12px 24px rgba(244,169,56,.24);
    }

    .btn-warning-custom:hover{
      background:#e99e27;
      color:#241c0a;
      transform:translateY(-2px);
      box-shadow:0 18px 34px rgba(244,169,56,.32);
    }

    .alert-strip{
      padding:18px 0 0;
    }

    .alert-card{
      border:1px solid rgba(244,169,56,.28);
      background:linear-gradient(135deg,#fff9e9,#ecfaf6);
      border-radius:22px;
      padding:14px 18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:18px;
      box-shadow:0 12px 30px rgba(18,51,50,.06);
    }

    .phase-label{
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-weight:850;
      color:var(--primary-ink);
    }

    .countdown{
      display:flex;
      gap:8px;
      align-items:center;
      flex-wrap:wrap;
    }

    .timebox{
      min-width:58px;
      padding:7px 9px;
      border-radius:14px;
      background:#fff;
      border:1px solid rgba(31,157,138,.12);
      text-align:center;
      box-shadow:0 8px 18px rgba(18,51,50,.05);
    }

    .timebox strong{
      display:block;
      font-size:19px;
      line-height:1.05;
      color:var(--primary-ink);
      font-variant-numeric:tabular-nums;
    }

    .timebox span{
      display:block;
      margin-top:2px;
      font-size:12px;
      color:var(--muted);
    }

    .hero{
      position:relative;
      overflow:hidden;
      padding:74px 0 86px;
    }

    .hero:before{
      content:"";
      position:absolute;
      inset:22px 0 auto 0;
      height:520px;
      pointer-events:none;
      background:
        linear-gradient(rgba(31,157,138,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(31,157,138,.06) 1px, transparent 1px);
      background-size:34px 34px;
      mask-image:radial-gradient(circle at 65% 38%, #000, transparent 62%);
      opacity:.75;
    }

    .hero-grid{
      position:relative;
      display:grid;
      grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
      gap:48px;
      align-items:center;
    }

    .hero-badges{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-bottom:18px;
    }

    .badge-soft{
      display:inline-flex;
      align-items:center;
      gap:7px;
      padding:8px 13px;
      border-radius:var(--radius-pill);
      font-size:14px;
      font-weight:800;
      color:var(--primary-dark);
      background:rgba(31,157,138,.10);
      border:1px solid rgba(31,157,138,.10);
    }

    .badge-amber{
      background:var(--accent-soft);
      color:#855f12;
      border-color:rgba(244,169,56,.20);
    }

    .hero h1{
      margin:0;
      color:var(--primary-ink);
      font-size:clamp(34px,5.6vw,58px);
      line-height:1.12;
      letter-spacing:-.045em;
      font-weight:920;
    }

    .hero-lead{
      margin:22px 0 0;
      max-width:700px;
      color:var(--muted);
      font-size:18px;
      line-height:1.85;
    }

    .hero-actions{
      display:flex;
      gap:14px;
      flex-wrap:wrap;
      margin-top:30px;
    }

    .trust-row{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:12px;
      margin-top:34px;
      max-width:690px;
    }

    .trust-item{
      padding:15px 16px;
      border:1px solid var(--border);
      background:rgba(255,255,255,.76);
      border-radius:18px;
      box-shadow:0 10px 24px rgba(18,51,50,.04);
    }

    .trust-item strong{
      display:block;
      color:var(--primary-ink);
      font-size:20px;
      line-height:1.15;
      font-weight:900;
    }

    .trust-item span{
      display:block;
      margin-top:5px;
      color:var(--muted);
      font-size:13px;
      line-height:1.45;
    }

    .hero-visual{
      position:relative;
      min-height:510px;
    }

    .shield-panel{
      position:absolute;
      inset:20px 0 0 30px;
      border-radius:34px;
      background:
        radial-gradient(circle at 50% 28%, rgba(244,169,56,.16), transparent 28%),
        linear-gradient(150deg,#ffffff,#eefbf7);
      border:1px solid var(--border);
      box-shadow:var(--shadow);
      padding:28px;
      overflow:hidden;
    }

    .shield-panel:before{
      content:"";
      position:absolute;
      width:310px;
      height:310px;
      border-radius:50%;
      background:rgba(31,157,138,.08);
      right:-90px;
      top:-70px;
    }

    .shield-core{
      position:relative;
      margin:36px auto 24px;
      width:210px;
      height:240px;
      display:grid;
      place-items:center;
      border-radius:42% 42% 48% 48%;
      background:linear-gradient(135deg,var(--primary),#5bc8ae);
      clip-path:polygon(50% 0, 92% 18%, 82% 76%, 50% 100%, 18% 76%, 8% 18%);
      box-shadow:0 26px 54px rgba(31,157,138,.28);
    }

    .shield-core span{
      width:86px;
      height:86px;
      border-radius:50%;
      background:rgba(255,255,255,.22);
      display:grid;
      place-items:center;
      color:#fff;
      font-size:48px;
      font-weight:900;
    }

    .node{
      position:absolute;
      width:14px;
      height:14px;
      border-radius:50%;
      background:#fff;
      border:3px solid var(--primary);
      box-shadow:0 0 0 8px rgba(31,157,138,.10);
    }

    .node-a{left:54px;top:116px;}
    .node-b{right:62px;top:94px;}
    .node-c{right:72px;bottom:124px;}
    .node-d{left:78px;bottom:92px;}

    .floating-card{
      position:absolute;
      background:#fff;
      border:1px solid var(--border);
      border-radius:20px;
      padding:16px;
      box-shadow:var(--shadow);
      z-index:2;
    }

    .floating-card h3{
      margin:0;
      color:var(--primary-ink);
      font-size:16px;
      font-weight:900;
    }

    .floating-card p{
      margin:7px 0 0;
      color:var(--muted);
      font-size:13px;
      line-height:1.55;
    }

    .floating-card.top{
      top:0;
      left:0;
      width:210px;
    }

    .floating-card.bottom{
      right:0;
      bottom:18px;
      width:230px;
    }

    .check-list{
      list-style:none;
      padding:0;
      margin:12px 0 0;
      display:grid;
      gap:8px;
    }

    .check-list li{
      display:flex;
      align-items:center;
      gap:8px;
      font-size:13px;
      color:var(--text);
    }

    .check{
      width:18px;
      height:18px;
      border-radius:50%;
      background:rgba(31,157,138,.12);
      color:var(--primary-dark);
      display:grid;
      place-items:center;
      font-weight:900;
      font-size:12px;
      flex:0 0 auto;
    }

    .stage-grid{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:18px;
    }

    .stage-card{
      position:relative;
      padding:24px;
      min-height:245px;
      border-radius:var(--radius-md);
      background:#fff;
      border:1px solid var(--border);
      box-shadow:0 12px 30px rgba(18,51,50,.05);
      transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
      overflow:hidden;
    }

    .stage-card:hover{
      transform:translateY(-4px);
      box-shadow:var(--shadow-hover);
      border-color:var(--border-strong);
    }

    .stage-card:after{
      content:attr(data-step);
      position:absolute;
      right:18px;
      top:12px;
      font-size:48px;
      line-height:1;
      font-weight:950;
      color:rgba(31,157,138,.08);
      letter-spacing:-.06em;
    }

    .icon-bubble{
      width:54px;
      height:54px;
      border-radius:18px;
      display:grid;
      place-items:center;
      background:rgba(31,157,138,.10);
      color:var(--primary-dark);
      font-weight:900;
      font-size:24px;
      margin-bottom:18px;
    }

    .stage-card h3{
      margin:0;
      font-size:21px;
      color:var(--primary-ink);
      font-weight:900;
      line-height:1.35;
      position:relative;
    }

    .stage-card p{
      margin:12px 0 0;
      color:var(--muted);
      font-size:15.5px;
      line-height:1.75;
      position:relative;
    }

    .gallery-section{
      background:linear-gradient(180deg,rgba(234,247,243,.65),rgba(247,251,249,0));
    }

    .mosaic{
      display:grid;
      grid-template-columns:1.25fr .8fr .95fr;
      grid-template-rows:220px 220px;
      gap:18px;
    }

    .mosaic-card{
      position:relative;
      border-radius:var(--radius-lg);
      overflow:hidden;
      min-height:210px;
      border:1px solid rgba(255,255,255,.65);
      box-shadow:var(--shadow);
      background:#fff;
      isolation:isolate;
    }

    .mosaic-card.large{
      grid-row:span 2;
    }

    .mosaic-art{
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at 30% 24%, rgba(255,255,255,.72), transparent 15%),
        radial-gradient(circle at 76% 44%, rgba(244,169,56,.28), transparent 20%),
        linear-gradient(135deg,rgba(31,157,138,.88),rgba(22,139,122,.58));
    }

    .mosaic-art.panel{
      background:
        linear-gradient(rgba(255,255,255,.14) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.14) 1px, transparent 1px),
        linear-gradient(135deg,#174947,#1f9d8a);
      background-size:28px 28px,28px 28px,auto;
    }

    .mosaic-art.classroom{
      background:
        radial-gradient(circle at 20% 78%, rgba(255,255,255,.38), transparent 20%),
        linear-gradient(135deg,#f6c25c,#5fbfac);
    }

    .mosaic-art.list{
      background:
        repeating-linear-gradient(0deg, rgba(31,157,138,.10) 0 12px, transparent 12px 24px),
        linear-gradient(135deg,#ffffff,#edf8f5);
    }

    .mosaic-card:before{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(180deg,transparent 10%,rgba(18,51,50,.66));
      z-index:1;
    }

    .mosaic-card.light:before{
      background:linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,.86));
    }

    .mosaic-content{
      position:absolute;
      z-index:2;
      left:22px;
      right:22px;
      bottom:22px;
    }

    .mosaic-content .tag{
      display:inline-flex;
      padding:6px 10px;
      border-radius:var(--radius-pill);
      background:rgba(255,255,255,.22);
      color:#fff;
      font-size:13px;
      font-weight:850;
      margin-bottom:10px;
      backdrop-filter:blur(8px);
    }

    .mosaic-card.light .tag{
      color:var(--primary-dark);
      background:rgba(31,157,138,.10);
    }

    .mosaic-content h3{
      margin:0;
      color:#fff;
      font-size:22px;
      line-height:1.35;
      font-weight:900;
    }

    .mosaic-card.light h3{
      color:var(--primary-ink);
    }

    .mosaic-stats{
      display:grid;
      grid-template-columns:repeat(2,1fr);
      gap:12px;
      margin-top:16px;
    }

    .mini-stat{
      border-radius:18px;
      background:rgba(255,255,255,.84);
      padding:14px;
      color:var(--primary-ink);
    }

    .mini-stat strong{
      display:block;
      font-size:24px;
      line-height:1;
      font-weight:950;
    }

    .mini-stat span{
      display:block;
      margin-top:6px;
      font-size:12px;
      color:var(--muted);
    }

    .rank-section{
      padding-top:20px;
    }

    .rank-board{
      border-radius:var(--radius-lg);
      background:var(--primary-deep);
      color:#d8ebe6;
      box-shadow:var(--shadow);
      overflow:hidden;
      border:1px solid rgba(255,255,255,.08);
    }

    .rank-board-head{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:20px;
      padding:30px 30px 18px;
      border-bottom:1px solid rgba(255,255,255,.10);
    }

    .rank-board h2{
      margin:0;
      color:#fff;
      font-size:30px;
      font-weight:900;
      line-height:1.25;
    }

    .rank-board p{
      margin:10px 0 0;
      color:rgba(216,235,230,.78);
      max-width:660px;
    }

    .rank-table{
      display:grid;
      gap:0;
      padding:10px 18px 20px;
    }

    .rank-row{
      display:grid;
      grid-template-columns:78px 1.2fr .9fr 160px;
      gap:18px;
      align-items:center;
      padding:16px 12px;
      border-bottom:1px solid rgba(255,255,255,.08);
    }

    .rank-row:last-child{
      border-bottom:0;
    }

    .rank-no{
      color:var(--accent);
      font-weight:950;
      font-size:22px;
      font-variant-numeric:tabular-nums;
    }

    .rank-name{
      color:#fff;
      font-weight:850;
    }

    .rank-note{
      color:rgba(216,235,230,.78);
      font-size:14px;
    }

    .progress-soft{
      height:10px;
      background:rgba(255,255,255,.12);
      border-radius:999px;
      overflow:hidden;
    }

    .progress-soft span{
      display:block;
      height:100%;
      border-radius:inherit;
      background:linear-gradient(90deg,var(--accent),#70d2bd);
    }

    .cta-panel{
      display:grid;
      grid-template-columns:minmax(0,1fr) 420px;
      gap:32px;
      align-items:center;
      border-radius:34px;
      background:
        radial-gradient(circle at 12% 16%, rgba(244,169,56,.18), transparent 24%),
        linear-gradient(135deg,var(--primary-deep),#174947);
      color:#e6f4f0;
      padding:42px;
      box-shadow:var(--shadow-hover);
      overflow:hidden;
      position:relative;
    }

    .cta-panel:before{
      content:"";
      position:absolute;
      width:300px;
      height:300px;
      right:-120px;
      top:-120px;
      border-radius:50%;
      border:46px solid rgba(255,255,255,.06);
    }

    .cta-content{
      position:relative;
    }

    .cta-content h2{
      margin:0;
      color:#fff;
      font-size:clamp(28px,4vw,42px);
      line-height:1.22;
      font-weight:920;
    }

    .cta-content p{
      margin:16px 0 0;
      max-width:690px;
      color:rgba(230,244,240,.82);
      font-size:17px;
    }

    .cta-actions{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      margin-top:26px;
    }

    .consult-form{
      position:relative;
      background:#fff;
      border-radius:24px;
      padding:24px;
      box-shadow:0 20px 50px rgba(0,0,0,.16);
    }

    .consult-form h3{
      margin:0 0 16px;
      color:var(--primary-ink);
      font-weight:900;
      font-size:22px;
    }

    .form-label{
      color:var(--primary-ink);
      font-weight:800;
      font-size:14px;
      margin-bottom:7px;
    }

    .form-control,
    .form-select{
      min-height:50px;
      border-radius:14px;
      border:1px solid #d8e8e3;
      color:var(--text);
      background:#fff;
      padding:10px 14px;
    }

    textarea.form-control{
      min-height:96px;
      resize:vertical;
    }

    .form-control:focus,
    .form-select:focus{
      border-color:var(--primary);
      box-shadow:0 0 0 4px rgba(31,157,138,.12);
    }

    .form-text{
      color:var(--muted);
      font-size:12px;
      line-height:1.55;
    }

    .faq-grid{
      display:grid;
      grid-template-columns:minmax(0,1fr) 340px;
      gap:28px;
      align-items:start;
    }

    .accordion{
      display:grid;
      gap:14px;
    }

    .accordion-item{
      border:1px solid var(--border)!important;
      border-radius:20px!important;
      overflow:hidden;
      background:#fff;
      box-shadow:0 10px 24px rgba(18,51,50,.04);
    }

    .accordion-button{
      min-height:64px;
      border-radius:20px!important;
      background:#fff;
      color:var(--primary-ink);
      font-weight:900;
      font-size:17px;
      padding:18px 22px;
      box-shadow:none!important;
    }

    .accordion-button:not(.collapsed){
      color:var(--primary-dark);
      background:#f7fcfa;
    }

    .accordion-button::after{
      width:28px;
      height:28px;
      border-radius:50%;
      background-color:rgba(31,157,138,.10);
      background-position:center;
      background-size:14px;
      padding:8px;
    }

    .accordion-body{
      padding:0 22px 22px;
      color:var(--muted);
      line-height:1.8;
      background:#f7fcfa;
    }

    .side-tip{
      border-radius:var(--radius-lg);
      background:#fff;
      border:1px solid var(--border);
      box-shadow:var(--shadow);
      padding:24px;
      position:sticky;
      top:118px;
    }

    .side-tip h3{
      margin:0;
      color:var(--primary-ink);
      font-size:22px;
      font-weight:900;
    }

    .side-tip p{
      margin:12px 0 0;
      color:var(--muted);
    }

    .tip-list{
      list-style:none;
      padding:0;
      margin:18px 0 0;
      display:grid;
      gap:12px;
    }

    .tip-list li{
      display:flex;
      gap:10px;
      color:var(--text);
      font-size:15px;
      line-height:1.65;
    }

    .contact-strip{
      background:rgba(31,157,138,.08);
      border:1px solid var(--border);
      border-radius:var(--radius-lg);
      padding:28px;
      display:grid;
      grid-template-columns:1fr auto;
      gap:20px;
      align-items:center;
    }

    .contact-strip h2{
      margin:0;
      color:var(--primary-ink);
      font-size:28px;
      font-weight:900;
      line-height:1.28;
    }

    .contact-strip p{
      margin:8px 0 0;
      color:var(--muted);
    }

    .site-footer{
      background:var(--primary-deep);
      color:rgba(232,245,241,.78);
      padding:58px 0 26px;
      margin-top:30px;
    }

    .footer-grid{
      display:grid;
      grid-template-columns:1.2fr .7fr .9fr;
      gap:34px;
      padding-bottom:34px;
      border-bottom:1px solid rgba(255,255,255,.10);
    }

    .footer-brand{
      display:flex;
      align-items:center;
      gap:12px;
      color:#fff;
      font-weight:900;
      font-size:20px;
      margin-bottom:14px;
    }

    .footer-brand .brand-mark{
      width:42px;
      height:42px;
      border-radius:15px;
      box-shadow:none;
    }

    .footer-title{
      color:#fff;
      font-size:16px;
      font-weight:900;
      margin:0 0 14px;
    }

    .footer-text{
      margin:0;
      max-width:520px;
      color:rgba(232,245,241,.75);
      font-size:15px;
    }

    .footer-links{
      list-style:none;
      padding:0;
      margin:0;
      display:grid;
      gap:10px;
    }

    .footer-links a{
      color:rgba(232,245,241,.76);
    }

    .footer-links a:hover{
      color:#fff;
      padding-left:3px;
    }

    .footer-bottom{
      display:flex;
      justify-content:space-between;
      gap:18px;
      flex-wrap:wrap;
      padding-top:22px;
      color:rgba(232,245,241,.58);
      font-size:14px;
    }

    .footer-legal{
      color:rgba(232,245,241,.72);
      line-height:1.75;
    }

    @media (max-width: 1100px){
      .hero-grid,
      .cta-panel,
      .faq-grid{
        grid-template-columns:1fr;
      }

      .hero-visual{
        min-height:500px;
        max-width:620px;
      }

      .stage-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
      }

      .mosaic{
        grid-template-columns:1fr 1fr;
        grid-template-rows:240px 220px 220px;
      }

      .mosaic-card.large{
        grid-row:span 1;
        grid-column:span 2;
      }

      .rank-row{
        grid-template-columns:70px 1fr 1fr;
      }

      .rank-row .progress-soft{
        grid-column:2 / -1;
      }

      .side-tip{
        position:static;
      }
    }

    @media (max-width: 991.98px){
      .site-container{
        width:min(100% - 28px, var(--container));
      }

      .navbar{
        min-height:70px;
      }

      .navbar-collapse{
        margin-top:12px;
        padding:12px;
        background:#fff;
        border:1px solid var(--border);
        border-radius:20px;
        box-shadow:var(--shadow);
      }

      .nav-menu{
        align-items:stretch;
      }

      .nav-link{
        padding:13px 14px!important;
      }

      .nav-cta{
        margin-left:0;
        margin-top:8px;
        width:100%;
      }

      .nav-cta .btn-custom{
        width:100%;
      }

      .alert-card{
        align-items:flex-start;
        flex-direction:column;
      }

      .hero{
        padding:54px 0 64px;
      }

      .trust-row{
        grid-template-columns:1fr;
      }

      .section{
        padding:68px 0;
      }

      .section-tight{
        padding:50px 0;
      }

      .contact-strip{
        grid-template-columns:1fr;
      }
    }

    @media (max-width: 767.98px){
      .topbar-inner{
        min-height:auto;
        padding:9px 0;
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
      }

      .topbar-right{
        gap:12px;
      }

      .brand-name{
        font-size:17px;
      }

      .brand-sub{
        display:none;
      }

      .hero-actions,
      .cta-actions{
        flex-direction:column;
      }

      .hero-actions .btn-custom,
      .cta-actions .btn-custom,
      .contact-strip .btn-custom{
        width:100%;
      }

      .hero-visual{
        min-height:470px;
      }

      .shield-panel{
        inset:34px 0 0 0;
        padding:18px;
      }

      .shield-core{
        width:176px;
        height:204px;
      }

      .floating-card.top,
      .floating-card.bottom{
        width:min(260px,86%);
      }

      .floating-card.bottom{
        bottom:0;
      }

      .stage-grid,
      .mosaic,
      .footer-grid{
        grid-template-columns:1fr;
      }

      .mosaic{
        grid-template-rows:auto;
      }

      .mosaic-card,
      .mosaic-card.large{
        grid-column:auto;
        min-height:250px;
      }

      .rank-board-head{
        flex-direction:column;
        padding:24px 20px 14px;
      }

      .rank-row{
        grid-template-columns:54px 1fr;
        gap:10px 14px;
      }

      .rank-note,
      .rank-row .progress-soft{
        grid-column:2 / -1;
      }

      .cta-panel{
        padding:28px 20px;
        border-radius:28px;
      }

      .consult-form{
        padding:20px;
      }
    }

    @media (max-width: 520px){
      .site-container{
        width:min(100% - 22px, var(--container));
      }

      .countdown{
        display:grid;
        grid-template-columns:repeat(2,1fr);
        width:100%;
      }

      .timebox{
        width:100%;
      }

      .hero h1{
        font-size:33px;
      }

      .hero-lead,
      .section-desc{
        font-size:16px;
      }

      .stage-card{
        padding:22px;
        min-height:auto;
      }

      .contact-strip,
      .side-tip{
        padding:22px;
      }

      .footer-bottom{
        flex-direction:column;
      }
    }

/* roulang page: category1 */
:root {
      --color-primary: #168B7A;
      --color-primary-dark: #0F6D61;
      --color-primary-soft: #EAF7F3;
      --color-accent: #F4A938;
      --color-warning: #E6674A;
      --color-ink: #163B3A;
      --color-text: #294947;
      --color-muted: #66807C;
      --color-bg: #F7FBF9;
      --color-card: #FFFFFF;
      --color-line: rgba(31, 157, 138, .16);
      --shadow-soft: 0 16px 42px rgba(18, 51, 50, .08);
      --shadow-hover: 0 22px 56px rgba(18, 51, 50, .13);
      --radius-xl: 28px;
      --radius-lg: 22px;
      --radius-md: 16px;
      --radius-pill: 999px;
      --container: 1200px;
      --transition: all .24s ease;
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      font-family: system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
      color: var(--color-text);
      background:
        radial-gradient(circle at 8% 8%, rgba(31, 157, 138, .12), transparent 28%),
        radial-gradient(circle at 88% 12%, rgba(244, 169, 56, .12), transparent 24%),
        var(--color-bg);
      line-height: 1.75;
      font-size: 16px;
      overflow-x: hidden;
    }

    a {
      color: inherit;
      text-decoration: none;
      transition: var(--transition);
    }

    a:hover {
      color: var(--color-primary);
    }

    img {
      max-width: 100%;
      height: auto;
      display: block;
    }

    button,
    input,
    textarea,
    select {
      font: inherit;
    }

    ::selection {
      background: rgba(31, 157, 138, .18);
      color: var(--color-ink);
    }

    .site-container {
      width: min(100% - 40px, var(--container));
      margin: 0 auto;
    }

    .top-strip {
      background: var(--color-ink);
      color: rgba(255, 255, 255, .86);
      font-size: 13px;
      line-height: 1.4;
    }

    .top-strip-inner {
      min-height: 38px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
    }

    .top-strip strong {
      color: #FFFFFF;
      font-weight: 700;
    }

    .strip-actions {
      display: flex;
      gap: 18px;
      align-items: center;
      white-space: nowrap;
    }

    .strip-actions a {
      color: rgba(255, 255, 255, .88);
    }

    .strip-actions a:hover,
    .strip-actions a:focus {
      color: #FFFFFF;
    }

    .site-header {
      position: sticky;
      top: 0;
      z-index: 50;
      background: rgba(255, 255, 255, .94);
      backdrop-filter: blur(16px);
      border-bottom: 1px solid var(--color-line);
      box-shadow: 0 8px 24px rgba(18, 51, 50, .04);
    }

    .navbar {
      min-height: 78px;
      padding: 0;
    }

    .navbar-brand {
      display: inline-flex;
      align-items: center;
      gap: 13px;
      padding: 10px 0;
      margin: 0;
    }

    .brand-mark {
      width: 46px;
      height: 46px;
      border-radius: 16px;
      position: relative;
      flex: 0 0 auto;
      background:
        radial-gradient(circle at 68% 30%, rgba(244, 169, 56, .9) 0 8%, transparent 9%),
        linear-gradient(145deg, var(--color-primary), #24B59F);
      box-shadow: 0 12px 28px rgba(22, 139, 122, .24);
    }

    .brand-mark::before {
      content: "";
      position: absolute;
      inset: 10px 12px 12px;
      border-radius: 12px 12px 15px 15px;
      border: 2px solid rgba(255, 255, 255, .88);
      clip-path: polygon(50% 0, 100% 18%, 88% 78%, 50% 100%, 12% 78%, 0 18%);
    }

    .brand-mark::after {
      content: "";
      position: absolute;
      width: 8px;
      height: 8px;
      right: 10px;
      bottom: 12px;
      border-radius: 50%;
      background: #FFFFFF;
      box-shadow: -14px -10px 0 rgba(255,255,255,.75), -20px 6px 0 rgba(255,255,255,.55);
    }

    .brand-text {
      display: flex;
      flex-direction: column;
      line-height: 1.25;
    }

    .brand-name {
      color: var(--color-ink);
      font-weight: 800;
      font-size: 18px;
      letter-spacing: .2px;
    }

    .brand-sub {
      color: var(--color-muted);
      font-size: 12px;
      margin-top: 3px;
    }

    .nav-menu {
      align-items: center;
      gap: 8px;
    }

    .nav-link {
      color: var(--color-text);
      font-weight: 650;
      padding: 10px 15px !important;
      border-radius: var(--radius-pill);
      position: relative;
    }

    .nav-link:hover,
    .nav-link:focus {
      color: var(--color-primary);
      background: var(--color-primary-soft);
    }

    .nav-link.active {
      color: var(--color-primary-dark);
      background: rgba(31, 157, 138, .11);
    }

    .btn-custom {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 46px;
      padding: 13px 24px;
      border-radius: var(--radius-pill);
      border: 1px solid transparent;
      font-weight: 750;
      line-height: 1.2;
      transition: var(--transition);
      cursor: pointer;
      text-decoration: none;
      gap: 8px;
    }

    .btn-primary-custom {
      color: #FFFFFF !important;
      background: linear-gradient(135deg, var(--color-primary), #20B09B);
      box-shadow: 0 14px 28px rgba(22, 139, 122, .22);
    }

    .btn-primary-custom:hover {
      transform: translateY(-2px);
      box-shadow: 0 18px 36px rgba(22, 139, 122, .3);
      background: linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));
    }

    .btn-secondary-custom {
      color: var(--color-primary-dark);
      background: #FFFFFF;
      border-color: rgba(22, 139, 122, .24);
      box-shadow: 0 10px 26px rgba(18, 51, 50, .06);
    }

    .btn-secondary-custom:hover {
      transform: translateY(-2px);
      border-color: rgba(22, 139, 122, .45);
      background: var(--color-primary-soft);
    }

    .btn-warning-custom {
      color: var(--color-ink);
      background: linear-gradient(135deg, #FFD98C, var(--color-accent));
      box-shadow: 0 14px 28px rgba(244, 169, 56, .24);
    }

    .btn-warning-custom:hover {
      transform: translateY(-2px);
      box-shadow: 0 18px 36px rgba(244, 169, 56, .32);
    }

    .btn-custom:focus-visible,
    .nav-link:focus-visible,
    .form-control:focus,
    .form-select:focus,
    .accordion-button:focus-visible,
    .navbar-toggler:focus-visible {
      outline: 3px solid rgba(244, 169, 56, .46);
      outline-offset: 3px;
      box-shadow: none;
    }

    .navbar-toggler {
      border: 1px solid var(--color-line);
      border-radius: 14px;
      padding: 10px 12px;
      background: #FFFFFF;
    }

    .navbar-toggler-icon {
      width: 24px;
      height: 18px;
      position: relative;
      background-image: none;
      display: block;
    }

    .navbar-toggler-icon::before,
    .navbar-toggler-icon::after,
    .navbar-toggler-icon span {
      content: "";
      position: absolute;
      left: 0;
      width: 24px;
      height: 2px;
      border-radius: 99px;
      background: var(--color-ink);
      transition: var(--transition);
    }

    .navbar-toggler-icon::before {
      top: 0;
    }

    .navbar-toggler-icon span {
      top: 8px;
    }

    .navbar-toggler-icon::after {
      bottom: 0;
    }

    main {
      overflow: hidden;
    }

    .section {
      padding: 84px 0;
    }

    .section-tight {
      padding: 56px 0;
    }

    .breadcrumb-wrap {
      padding: 22px 0 0;
    }

    .breadcrumb {
      margin: 0;
      font-size: 14px;
      color: var(--color-muted);
    }

    .breadcrumb-item a {
      color: var(--color-primary-dark);
      font-weight: 650;
    }

    .breadcrumb-item.active {
      color: var(--color-muted);
    }

    .category-hero {
      padding: 42px 0 64px;
    }

    .category-hero-card {
      border: 1px solid var(--color-line);
      border-radius: var(--radius-xl);
      background:
        linear-gradient(135deg, rgba(255,255,255,.96), rgba(234,247,243,.92)),
        radial-gradient(circle at 78% 18%, rgba(244,169,56,.16), transparent 36%);
      box-shadow: var(--shadow-soft);
      padding: 42px;
      position: relative;
      overflow: hidden;
    }

    .category-hero-card::after {
      content: "";
      position: absolute;
      right: -80px;
      top: -100px;
      width: 260px;
      height: 260px;
      border-radius: 50%;
      background: rgba(31,157,138,.12);
      pointer-events: none;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      border-radius: var(--radius-pill);
      padding: 7px 13px;
      color: var(--color-primary-dark);
      background: rgba(31,157,138,.1);
      border: 1px solid rgba(31,157,138,.14);
      font-size: 14px;
      font-weight: 750;
      margin-bottom: 18px;
    }

    .eyebrow::before {
      content: "";
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--color-accent);
      box-shadow: 0 0 0 4px rgba(244,169,56,.18);
    }

    h1,
    h2,
    h3,
    h4 {
      color: var(--color-ink);
      letter-spacing: -.02em;
      line-height: 1.22;
    }

    h1 {
      font-size: clamp(32px, 4.2vw, 52px);
      font-weight: 900;
      margin: 0 0 20px;
    }

    h2 {
      font-size: clamp(28px, 3vw, 38px);
      font-weight: 850;
      margin-bottom: 14px;
    }

    h3 {
      font-size: 22px;
      font-weight: 820;
      margin-bottom: 10px;
    }

    .lead-text {
      font-size: 18px;
      color: var(--color-text);
      max-width: 720px;
      margin: 0 0 28px;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 14px;
      align-items: center;
      margin-top: 26px;
    }

    .quick-card {
      background: #FFFFFF;
      border: 1px solid var(--color-line);
      border-radius: var(--radius-lg);
      padding: 24px;
      box-shadow: 0 12px 34px rgba(18, 51, 50, .07);
      position: relative;
      z-index: 1;
    }

    .quick-title {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 16px;
    }

    .quick-icon {
      width: 42px;
      height: 42px;
      border-radius: 15px;
      background: var(--color-primary-soft);
      display: grid;
      place-items: center;
      color: var(--color-primary-dark);
      font-weight: 900;
    }

    .quick-list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: grid;
      gap: 12px;
    }

    .quick-list li {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      color: var(--color-text);
    }

    .quick-list li::before {
      content: "✓";
      color: var(--color-primary);
      font-weight: 900;
      margin-top: 1px;
    }

    .section-head {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 30px;
      margin-bottom: 30px;
    }

    .section-head p {
      color: var(--color-muted);
      max-width: 620px;
      margin: 0;
    }

    .info-card,
    .resource-card,
    .tool-card,
    .flow-card,
    .faq-note,
    .form-card {
      background: var(--color-card);
      border: 1px solid var(--color-line);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow-soft);
      transition: var(--transition);
    }

    .info-card:hover,
    .resource-card:hover,
    .tool-card:hover,
    .flow-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-hover);
      border-color: rgba(31,157,138,.32);
    }

    .info-card {
      padding: 28px;
    }

    .info-card p {
      margin: 0;
      color: var(--color-muted);
    }

    .tag-cloud {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
    }

    .filter-tag,
    .badge-soft {
      display: inline-flex;
      align-items: center;
      border-radius: var(--radius-pill);
      padding: 8px 13px;
      font-size: 14px;
      font-weight: 720;
      color: var(--color-primary-dark);
      background: rgba(31,157,138,.1);
      border: 1px solid rgba(31,157,138,.15);
    }

    .filter-tag:hover {
      background: var(--color-primary);
      color: #FFFFFF;
      transform: translateY(-2px);
      border-color: var(--color-primary);
    }

    .filter-tag.accent {
      color: #8A5A04;
      background: rgba(244,169,56,.16);
      border-color: rgba(244,169,56,.25);
    }

    .resource-layout {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 340px;
      gap: 28px;
      align-items: start;
    }

    .featured-resource {
      padding: 30px;
      border-radius: var(--radius-xl);
      background:
        linear-gradient(135deg, #FFFFFF 0%, #F1FAF7 100%);
      border: 1px solid rgba(31,157,138,.18);
      box-shadow: var(--shadow-soft);
      margin-bottom: 22px;
    }

    .resource-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      align-items: center;
      margin-bottom: 14px;
      color: var(--color-muted);
      font-size: 14px;
    }

    .resource-title {
      color: var(--color-ink);
      font-size: 26px;
      font-weight: 850;
      line-height: 1.28;
      margin-bottom: 12px;
    }

    .resource-title a:hover {
      color: var(--color-primary);
    }

    .resource-desc {
      color: var(--color-muted);
      margin-bottom: 20px;
    }

    .resource-list {
      display: grid;
      gap: 18px;
    }

    .resource-card {
      padding: 24px;
      display: grid;
      grid-template-columns: 1fr auto;
      gap: 20px;
      align-items: center;
    }

    .resource-card h3 {
      font-size: 20px;
      margin: 8px 0;
    }

    .resource-card p {
      margin: 0;
      color: var(--color-muted);
    }

    .resource-date {
      color: var(--color-muted);
      font-size: 14px;
      white-space: nowrap;
    }

    .side-stack {
      display: grid;
      gap: 18px;
      position: sticky;
      top: 108px;
    }

    .tool-card {
      padding: 24px;
    }

    .tool-card.highlight {
      background: linear-gradient(160deg, var(--color-ink), #1D5551);
      color: rgba(255,255,255,.84);
      border-color: rgba(255,255,255,.12);
    }

    .tool-card.highlight h3 {
      color: #FFFFFF;
    }

    .tool-card.highlight .badge-soft {
      background: rgba(255,255,255,.12);
      color: #FFFFFF;
      border-color: rgba(255,255,255,.18);
    }

    .tool-card p {
      color: var(--color-muted);
      margin-bottom: 16px;
    }

    .tool-card.highlight p {
      color: rgba(255,255,255,.75);
    }

    .mini-countdown {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin-top: 16px;
    }

    .time-box {
      border-radius: 16px;
      background: rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.14);
      padding: 12px;
      text-align: center;
      color: #FFFFFF;
      font-variant-numeric: tabular-nums;
    }

    .time-box strong {
      display: block;
      font-size: 24px;
      line-height: 1.1;
    }

    .time-box span {
      font-size: 12px;
      color: rgba(255,255,255,.72);
    }

    .flow-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 18px;
    }

    .flow-card {
      padding: 24px;
      position: relative;
      overflow: hidden;
    }

    .flow-num {
      display: inline-flex;
      width: 42px;
      height: 42px;
      border-radius: 15px;
      align-items: center;
      justify-content: center;
      background: var(--color-primary-soft);
      color: var(--color-primary-dark);
      font-weight: 900;
      margin-bottom: 18px;
    }

    .flow-card p {
      color: var(--color-muted);
      margin: 0;
    }

    .cta-panel {
      border-radius: var(--radius-xl);
      padding: 40px;
      background:
        radial-gradient(circle at 86% 18%, rgba(244,169,56,.2), transparent 28%),
        linear-gradient(135deg, var(--color-ink), #1E5D57);
      color: rgba(255,255,255,.82);
      box-shadow: var(--shadow-soft);
      overflow: hidden;
    }

    .cta-panel h2 {
      color: #FFFFFF;
    }

    .cta-panel p {
      margin: 0;
      max-width: 720px;
      color: rgba(255,255,255,.76);
    }

    .form-card {
      padding: 28px;
    }

    .form-label {
      font-weight: 720;
      color: var(--color-ink);
      margin-bottom: 8px;
    }

    .form-control,
    .form-select {
      min-height: 50px;
      border-radius: 13px;
      border: 1px solid #D8E8E3;
      color: var(--color-text);
      background-color: #FFFFFF;
      padding: 12px 14px;
    }

    textarea.form-control {
      min-height: 116px;
      resize: vertical;
    }

    .form-control::placeholder {
      color: #91A5A1;
    }

    .form-control:focus,
    .form-select:focus {
      border-color: var(--color-primary);
      box-shadow: 0 0 0 4px rgba(31,157,138,.12);
    }

    .accordion {
      display: grid;
      gap: 14px;
    }

    .accordion-item {
      border: 1px solid var(--color-line);
      border-radius: 18px !important;
      overflow: hidden;
      background: #FFFFFF;
      box-shadow: 0 10px 28px rgba(18, 51, 50, .05);
    }

    .accordion-button {
      min-height: 60px;
      color: var(--color-ink);
      font-weight: 800;
      background: #FFFFFF;
      padding: 18px 22px;
      box-shadow: none;
    }

    .accordion-button:not(.collapsed) {
      color: var(--color-primary-dark);
      background: var(--color-primary-soft);
      box-shadow: none;
    }

    .accordion-button::after {
      width: 18px;
      height: 18px;
      background-image: none;
      content: "+";
      font-size: 24px;
      font-weight: 600;
      line-height: 18px;
      color: var(--color-primary);
      transform: none;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .accordion-button:not(.collapsed)::after {
      content: "−";
      transform: none;
    }

    .accordion-body {
      padding: 2px 22px 22px;
      color: var(--color-muted);
      background: #FFFFFF;
    }

    .faq-note {
      padding: 28px;
      background: linear-gradient(135deg, #FFFFFF, #F1FAF7);
      height: 100%;
    }

    .faq-note ul {
      margin: 18px 0 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 12px;
    }

    .faq-note li {
      display: flex;
      gap: 10px;
      color: var(--color-muted);
    }

    .faq-note li::before {
      content: "•";
      color: var(--color-accent);
      font-size: 24px;
      line-height: 1;
    }

    .site-footer {
      background: var(--color-ink);
      color: rgba(234, 247, 243, .78);
      padding: 58px 0 26px;
    }

    .footer-grid {
      display: grid;
      grid-template-columns: 1.25fr .7fr 1fr;
      gap: 42px;
      align-items: start;
    }

    .footer-brand {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      color: #FFFFFF;
      font-weight: 850;
      font-size: 19px;
      margin-bottom: 16px;
    }

    .footer-brand .brand-mark {
      width: 40px;
      height: 40px;
      border-radius: 14px;
      box-shadow: none;
    }

    .footer-text,
    .footer-legal {
      margin: 0;
      color: rgba(234, 247, 243, .72);
      line-height: 1.8;
    }

    .footer-title {
      color: #FFFFFF;
      font-size: 17px;
      margin-bottom: 16px;
    }

    .footer-links {
      list-style: none;
      margin: 0;
      padding: 0;
      display: grid;
      gap: 10px;
    }

    .footer-links a {
      color: rgba(234, 247, 243, .76);
    }

    .footer-links a:hover {
      color: #FFFFFF;
      padding-left: 4px;
    }

    .footer-bottom {
      border-top: 1px solid rgba(255,255,255,.11);
      margin-top: 38px;
      padding-top: 22px;
      display: flex;
      justify-content: space-between;
      gap: 18px;
      flex-wrap: wrap;
      color: rgba(234, 247, 243, .58);
      font-size: 14px;
    }

    @media (max-width: 1100px) {
      .resource-layout {
        grid-template-columns: 1fr;
      }

      .side-stack {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .flow-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 991.98px) {
      .site-container {
        width: min(100% - 30px, var(--container));
      }

      .navbar {
        min-height: 70px;
      }

      .navbar-collapse {
        margin-top: 12px;
        padding: 16px;
        border: 1px solid var(--color-line);
        border-radius: 20px;
        background: #FFFFFF;
        box-shadow: var(--shadow-soft);
      }

      .nav-menu {
        align-items: stretch;
        gap: 8px;
      }

      .nav-link {
        padding: 12px 14px !important;
      }

      .nav-cta .btn-custom {
        width: 100%;
        margin-top: 6px;
      }

      .category-hero-card {
        padding: 30px;
      }

      .section {
        padding: 64px 0;
      }

      .section-head {
        display: block;
      }

      .section-head p {
        margin-top: 10px;
      }

      .footer-grid {
        grid-template-columns: 1fr;
        gap: 28px;
      }
    }

    @media (max-width: 767.98px) {
      body {
        font-size: 15px;
      }

      .top-strip-inner {
        min-height: auto;
        padding: 9px 0;
        display: grid;
        gap: 6px;
      }

      .strip-actions {
        gap: 12px;
        white-space: normal;
      }

      .brand-sub {
        display: none;
      }

      .brand-name {
        font-size: 16px;
      }

      .brand-mark {
        width: 42px;
        height: 42px;
      }

      .category-hero {
        padding: 28px 0 46px;
      }

      .category-hero-card {
        padding: 24px;
        border-radius: 24px;
      }

      .lead-text {
        font-size: 16px;
      }

      .hero-actions,
      .cta-panel .hero-actions {
        display: grid;
        grid-template-columns: 1fr;
      }

      .btn-custom {
        width: 100%;
        min-height: 48px;
      }

      .resource-card {
        grid-template-columns: 1fr;
      }

      .resource-date {
        white-space: normal;
      }

      .side-stack {
        grid-template-columns: 1fr;
      }

      .flow-grid {
        grid-template-columns: 1fr;
      }

      .cta-panel {
        padding: 28px;
      }

      .footer-bottom {
        display: grid;
      }
    }

    @media (max-width: 520px) {
      .site-container {
        width: min(100% - 24px, var(--container));
      }

      h1 {
        font-size: 31px;
      }

      h2 {
        font-size: 27px;
      }

      .quick-card,
      .info-card,
      .tool-card,
      .form-card,
      .featured-resource,
      .resource-card,
      .faq-note {
        padding: 22px;
      }

      .resource-title {
        font-size: 22px;
      }

      .tag-cloud {
        gap: 9px;
      }

      .filter-tag,
      .badge-soft {
        font-size: 13px;
      }
    }
