/* 久伴西游沿用原官网布局，统一为靛蓝与暖金配色。 */

:root{
  --primary:      #465a91;
  --deep:         #29375f;
  --primary-tint: #e7ebf7;
  --metal:        #b58c51;
  --metal-light:  #e5cfa7;
  --metal-deep:   #896330;
  --metal-line:   #d5ba8f;
  --bg-page:      #f4f3f4;
  --bg-section:   #faf8f4;
  --white:        #fffdf8;
  --text-h:       #27324a;
  --text-b:       #4a5063;
  --text-m:       #646d83;
  --text-s:       #626b7f;
  --border:       rgba(91,105,139,.14);
  --shadow-sm:    0 2px 12px rgba(42,54,86,.09);
  --shadow-md:    0 6px 28px rgba(42,54,86,.14);
  --shadow-lg:    0 12px 48px rgba(42,54,86,.19);
  --radius-sm:    10px;
  --radius-md:    18px;
  --radius-lg:    28px;
  --f-sans:       "PingFang SC","Noto Sans CJK SC","Microsoft YaHei",system-ui,sans-serif;
  --f-serif:      var(--f-sans);
  --grad-primary: linear-gradient(135deg,#465a91,#29375f);
  --grad-gold:    linear-gradient(160deg,#ecd99a,#b58c51 52%,#8f6f30);
  --grad-page:    linear-gradient(160deg,#f8f6f2 0%,#f4f3f4 50%,#ececf4 100%);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--f-sans);
  color:var(--text-b);
  font-size:18px;
  background:var(--grad-page);
  min-height:100vh;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:var(--f-sans);cursor:pointer;border:0;outline:0}


.wrap{max-width:1380px;margin:0 auto;padding:0 44px}


.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:rgba(248,247,244,.93);
  border-bottom:1px solid var(--border);
}
.nav .wrap{display:flex;align-items:center;height:96px;gap:12px}

.brand{display:flex;align-items:center;gap:16px;flex-shrink:0}
.brand-icon{
  width:60px;height:60px;border-radius:15px;
  background:var(--grad-primary);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-family:var(--f-serif);font-size:30px;font-weight:700;
  border:1.5px solid var(--metal-line);
  box-shadow:0 3px 12px rgba(70,90,145,.3);
  flex-shrink:0;
}
.brand-name{font-family:var(--f-serif);font-size:24px;font-weight:700;color:var(--text-h);line-height:1.1}
.brand-slg{font-size:15px;color:var(--text-s);margin-top:2px}

.menu{display:flex;gap:8px;margin-left:28px;font-size:20px}
.menu a{
  padding:9px 18px;border-radius:28px;color:var(--text-m);
  transition:background .18s,color .18s;white-space:nowrap;
}
.menu a:hover{color:var(--text-h);background:rgba(70,90,145,.07)}
.menu a.on{color:var(--primary);background:var(--primary-tint);font-weight:500}

.nav-sp{flex:1}
.btn{
  font-family:var(--f-serif);font-size:19px;
  padding:12px 32px;border-radius:28px;
  cursor:pointer;white-space:nowrap;
  transition:all .18s;
}
.btn-login{
  background:transparent;
  border:1.5px solid var(--primary);
  color:var(--primary);
}
.btn-login:hover{background:var(--primary);color:#fff}
.btn-dl{
  background:var(--primary);
  color:#fff;
  border:1.5px solid var(--metal-line);
  box-shadow:0 3px 14px rgba(70,90,145,.35);
  margin-left:10px;
}
.btn-dl:hover{background:var(--deep);box-shadow:0 5px 20px rgba(70,90,145,.45);transform:translateY(-1px)}


.brand-logo{height:60px;width:auto;display:block}
.nav-collapse{display:flex;align-items:center;flex:1;min-width:0;gap:12px}
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;margin-left:auto;
  background:transparent;border:0;padding:0;cursor:pointer;
}
.nav-toggle span{
  display:block;width:24px;height:2px;border-radius:2px;
  background:var(--text-h);margin:0 auto;transition:transform .25s,opacity .2s;
}


.sec-title{
  display:flex;align-items:center;justify-content:center;
  gap:22px;margin-bottom:58px;
}
.sec-title-text{
  font-family:var(--f-serif);
  font-size:clamp(32px,2.8vw,46px);
  font-weight:700;color:var(--text-h);
}
.sec-title-line{
  flex:1;max-width:116px;height:1px;
  background:linear-gradient(90deg,transparent,var(--metal));
}
.sec-title-line.r{background:linear-gradient(90deg,var(--metal),transparent)}
.sec-title-dot{
  width:12px;height:12px;border-radius:50%;
  background:var(--grad-primary);flex-shrink:0;
}


.site-footer{
  margin-top:96px;
  border-top:1px solid var(--border);
  padding:32px 0;
  text-align:center;
  font-size:16px;
  color:var(--text-s);
  background:rgba(251,246,238,.6);
}
.site-footer a{color:var(--text-s);margin:0 10px}
.site-footer a:hover{color:var(--primary)}
.footer-sep{margin:0 4px;opacity:.5}


.card{
  background:var(--white);
  border-radius:var(--radius-md);
  border:1.5px solid var(--border);
  border-top:2px solid var(--metal-line);
  box-shadow:var(--shadow-sm);
}


.pagination{
  display:flex;align-items:center;justify-content:center;
  gap:8px;margin-top:48px;
}
.pagination button{
  min-width:50px;height:50px;border-radius:var(--radius-sm);
  font-size:18px;font-family:var(--f-sans);
  background:var(--white);
  border:1.5px solid var(--border);
  color:var(--text-m);
  transition:all .16s;
}
.pagination button:hover{border-color:var(--primary);color:var(--primary)}
.pagination button.on{
  background:var(--primary);color:#fff;
  border-color:var(--primary);
}
.pagination button:disabled{opacity:.4;cursor:not-allowed}
.page-info{font-size:17px;color:var(--text-s);margin:0 12px}


.field-row{margin-bottom:22px}
.field-row label{
  display:block;font-size:17px;color:var(--text-m);margin-bottom:8px;
}
.field-row input,.field-row select{
  width:100%;
  padding:14px 20px;
  border:1.5px solid var(--border);
  border-radius:var(--radius-sm);
  font-size:19px;font-family:var(--f-sans);
  color:var(--text-h);
  background:var(--white);
  transition:border-color .16s;
  outline:none;
}
.field-row input:focus,.field-row select:focus{border-color:var(--primary)}

.btn-primary{
  background:var(--primary);
  color:#fff;
  border:1.5px solid var(--metal-line);
  border-radius:28px;
  padding:14px 46px;
  font-size:20px;
  font-family:var(--f-serif);
  box-shadow:0 3px 14px rgba(70,90,145,.32);
  transition:all .18s;
}
.btn-primary:hover{background:var(--deep);transform:translateY(-1px);box-shadow:0 5px 20px rgba(70,90,145,.42)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}


.msg-box{
  padding:17px 22px;
  border-radius:var(--radius-sm);
  font-size:18px;
  margin-top:18px;
  display:none;
}
.msg-box.ok{background:#f0faf0;border:1px solid #a8d4a0;color:#2d6b30}
.msg-box.err{background:#fdf0f0;border:1px solid #dca0a0;color:#29375f}
.msg-box.show{display:block}


.loading{
  text-align:center;padding:58px 0;
  color:var(--text-s);font-size:18px;
}
.loading::after{content:"…"}




body{
  background-image:url('assets/bg/BG-page.webp');
  background-size:cover;
  background-position:center top;
  
}


.sec-divider{
  display:block;
  width:100%;height:42px;
  background-image:url('assets/fx/FX-1.png');
  background-repeat:no-repeat;
  background-position:center;
  background-size:auto 100%;
  
  border-top:1px solid rgba(200,163,90,.25);
  margin:10px 0;
}

.sec-divider.has-img{border-top:0}


.card{
  
  
  position:relative;
}


.fx-overlay{
  position:absolute;inset:0;
  background-image:url('assets/fx/FX-3.png');
  background-size:cover;
  background-position:center;
  pointer-events:none;
  opacity:.55;
  z-index:1;
}

.fx-overlay.no-img{display:none}


@media(max-width:768px){
  .wrap{padding:0 20px}
  .nav .wrap{height:64px}
  .brand-logo{height:40px}
  
  .nav-toggle{display:flex}
  
  .nav-collapse{
    display:none;flex-direction:column;align-items:stretch;gap:4px;
    position:absolute;top:64px;left:0;right:0;
    background:rgba(248,247,244,.98);
    border-bottom:1px solid var(--border);
    box-shadow:0 10px 26px rgba(42,51,82,.14);
    padding:10px 18px 18px;
  }
  .nav.open .nav-collapse{display:flex}
  .menu{flex-direction:column;margin-left:0;gap:2px;font-size:18px}
  .menu a{padding:13px 14px;border-radius:10px}
  .nav-sp{display:none}
  .btn{width:100%;text-align:center;font-size:17px;padding:14px 0;margin:0}
  .btn-dl{margin:6px 0 0}
  
  .nav.open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav.open .nav-toggle span:nth-child(2){opacity:0}
  .nav.open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
