/* ─── RESET ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Microsoft YaHei','PingFang SC',serif;background:#f8f1e0;color:#3a1a08;margin:0 auto;max-height: 1100px;}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-thumb{background:#c8914a;border-radius:3px}

/* ─── VARIABLES ─── */
:root{
  --red:   #8b2a1a;
  --red2:  #6b1e10;
  --gold:  #c8914a;
  --gold2: #e8c87a;
  --cream: #f9f0e0;
  --cream2:#f8f1e0;
  --brown: #3a1a08;
  --brown2:#7a4a2a;
  --border:#d4b080;
  --sh:    rgba(100,50,10,.18);
}

/* ─── TOP NAV ─── */
.topnav{
  background:linear-gradient(90deg,#5a1a08 0%,#8b2a1a 40%,#8b2a1a 60%,#5a1a08 100%);
  background: #a95335;
  height:80px;display:flex;align-items:center;
  border-bottom:2px solid var(--gold);
  position:sticky;top:0;z-index:1000;
  box-shadow:0 2px 16px rgba(0,0,0,.4)
}
.topnav .wrap{
  max-width:1440px;margin:0 auto;padding:0 24px;
  display:flex;align-items:center;justify-content:space-between;width:100%
}
.topnav-brand{
  display:flex;align-items:center;gap:10px;
}
.topnav-brand .emblem{
  width:32px;height:32px;
  /*background:linear-gradient(135deg,var(--gold),#a06020);*/
  border-radius:3px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:12px;font-weight:700;letter-spacing:-1px;flex-shrink:0;
  /*border:1px solid var(--gold2);*/
}
.topnav-brand span{
	color:#fff/*f0d090*/;font-size:24px;letter-spacing:2px;font-weight:400
}
.topnav-menu{display:flex;list-style:none;gap:0}
.topnav-menu a{
  display:block;padding: 0 0px;margin: 0 20px;height:48px;line-height:48px;
  color:#ffffff;font-size:14px;letter-spacing:1px;
  transition:all .25s;position:relative
}
.topnav-menu a::after{
  content:'';position:absolute;bottom:0;left:50%;right:50%;
  height:2px;background:var(--gold2);transition:all .25s
}
.topnav-menu a:hover,
.topnav-menu a.active{color:#e0c090;background:rgba(255,200,100,.08)}
.topnav-menu a:hover::after,
.topnav-menu a.active::after{left:0;right:0}

/* ─── HERO BANNER ─── */
.hero{
  position:relative;
  overflow:visible;
  min-height:804px;
  /*background:linear-gradient(180deg,#c49a5a 0%,#e8c87a 30%,#d4a85a 60%,#b08040 100%);*/
  background: url(../images/img_home_banner.png) center bottom  no-repeat;
  background-size: cover;
}
/* painted bg layer */
.hero-paint{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 60% 80% at 50% 0%,rgba(180,100,30,.3) 0%,transparent 70%),
    radial-gradient(ellipse 80% 50% at 20% 100%,rgba(100,50,10,.25) 0%,transparent 60%),
    radial-gradient(ellipse 80% 50% at 80% 100%,rgba(120,60,10,.25) 0%,transparent 60%);
}
/* mountain silhouette */
.hero-mountains{
  /*position:absolute;bottom:0;left:0;right:0;height:200px;
  background:linear-gradient(to top,rgba(80,30,5,.6) 0%,transparent 100%);*/
}
.hero-content{
  position:relative;z-index:2;
  max-width:1200px;margin:0 auto;padding:32px 24px 24px;
  display:flex;flex-direction:column;align-items:center
}
.hero-title-wrap{
  position:relative;text-align:center;margin-bottom:24px
}
/* 竖排装饰文字 */
.hero-side-text{
  position:absolute;top:50%;transform:translateY(-50%);
  writing-mode:vertical-rl;font-size:13px;color:rgba(255,255,255,.5);
  letter-spacing:4px
}
.hero-side-text.left{left:-60px}
.hero-side-text.right{right:-60px}
.hero-main-title{
  font-size:54px;color:#fff;letter-spacing:10px;
  text-shadow:0 2px 24px rgba(100,40,0,.6),0 0 60px rgba(200,140,40,.4);
  line-height:1.1;font-weight:900;
  background:linear-gradient(180deg,#fff 0%,#ffe090 60%,#c89040 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text
}
.hero-subtitle{
  font-size:16px;color:rgba(255,255,255,.7);letter-spacing:5px;margin-top:6px
}
/* search */
.hero-search{
    display: flex;
    align-items: center;
    /* background: rgba(255,255,255,.92); */
    border-radius: 4px;
    overflow: hidden;
    width: 590px;
    padding: 0 10px;
    max-width: 90vw;
    /* box-shadow: 0 4px 24px rgba(0,0,0,.25); */
    /* border: 1px solid var(--gold); */
    background: url(../images/img_home_search.png) center no-repeat;
    background-size: contain;
    height: 60px;
}
.hero-search input{
    flex: 1;
    border: none;
    outline: none;
    padding: 0 16px;
    height: 42px;
    font-size: 14px;
    color: var(--brown);
    background: transparent;
    font-family: inherit;
    padding-left: 50px;
}
.hero-search input::placeholder{color:#aaa}
.hero-search button{
    background: none;
    border: none;
    height: 42px;
    padding: 0 22px;
    color: #fff;
    font-size: 14px;
    cursor: pointer;
    font-family: inherit;
    transition: all .2s;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 6px;
    position: absolute;
}
.hero-search button:hover{
    /* background:linear-gradient(135deg,#a03010,#7a1e08) */
}
/* scroll banner */
.hero-scroll-banner{
    margin-top: 20px;
    border-radius: 4px;
    padding: 16px 32px;
    width: 1100px;
    max-width: 90vw;
    text-align: center;
    background: url(../images/img_home_introduce.png) center no-repeat;
    background-size: contain;
    min-height: 382px;
    position: absolute;
    bottom: -860px;
    z-index: 8;
}
.hero-scroll-banner::before,
.hero-scroll-banner::after{
  content:'';position:absolute;top:50%;transform:translateY(-50%);
  width:24px;height:60%;
  /*background:linear-gradient(180deg,var(--gold),#a06020);*/
  border-radius:2px
}
.hero-scroll-banner::before{left:-8px}
.hero-scroll-banner::after{right:-8px}
.scroll-title{
  font-size: 28px;
  color: #773f3c;
  font-weight: 900;
  letter-spacing: 3px;
  margin-bottom: 25px;
  width: 52%;
  margin-top: 85px;
  text-align: left;
  margin-left: 50px;
  position: relative;
}
.scroll-title:before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -12px;
  border-bottom: 5px solid #773f3c;
  width: 38px;
  border-radius: 2px;
}
.scroll-desc{
    font-size: 18px;
    color: #773f3c;
    line-height: 1.8;
    letter-spacing: .5px;
    width: 46%;
    margin-left: 50px;
    text-align: left;
}

/* ─── COMMON ─── */
.wrap{max-width:1440px;margin:0 auto;padding:0 24px}
.section{padding:52px 0}
.sec-hd{
  text-align:center;margin-bottom:32px;
  display:flex;align-items:center;justify-content:center;gap:16px
}
.sec-hd-deco{
  display:flex;align-items:center;gap:6px;color:var(--gold)
}
.sec-hd-deco span{display:block;width:32px;height:1px;background:var(--gold)}
.sec-hd-deco i{font-size:12px;font-style:normal}
.sec-title{
  font-size:22px;color:var(--brown);letter-spacing:4px;
  padding:0 20px;position:relative
}
.sec-title::before,.sec-title::after{
  content:'❖';color:var(--gold);font-size:14px;position:absolute;top:50%;
  transform:translateY(-50%)
}
.sec-title::before{left:0}
.sec-title::after{right:0}

/* ─── NEWS SWIPER ─── */
.news-section{background:var(--cream2);padding-top:340px;}

/* 外层：全宽溢出，让两侧卡片半露 */
.news-swiper-outer{
  position:relative;
  /* 向左右各伸出，让 swiper 超出 .wrap 宽度 */
  overflow:hidden;
  padding-bottom:4px;
}

/* Swiper 本体 */
.news-swiper{
  overflow:visible!important; /* 允许两侧卡片可见 */
  padding:20px 0 24px!important;
}

/* slidesPerView:auto 时必须给 slide 设定宽度 */
.news-swiper .swiper-slide{
  width: 62%;          /* 中心主卡片宽度 */
  max-width: 860px;
  border-radius:0px;
  overflow:hidden;
  background:none;
  cursor:pointer;
  transition:transform .45s ease, box-shadow .45s ease, opacity .45s ease;
  /* 非激活状态：缩小 + 半透明 */
  transform:scale(0.88);
  opacity:0.65;
  /*box-shadow:0 4px 20px rgba(0,0,0,.12);*/
}

/* 激活（中心）slide */
.news-swiper .swiper-slide-active{
  transform:scale(1)!important;
  opacity:1!important;
  /*box-shadow:0 16px 60px rgba(80,30,10,.28)!important;*/
  z-index:10;
}

/* 非激活卡片隐藏 ns-card-body，图片100%宽度 */
.news-swiper .swiper-slide:not(.swiper-slide-active) .ns-card-body {
  display: none;
}
.news-swiper .swiper-slide:not(.swiper-slide-active) .ns-card-img {
  width: 100%;
}

/* ── 大卡片内部：左图 + 右文字 ── */
.ns-card{
  display:flex;
  height: 350px;
}

/* 左侧图片区 */
.ns-card-img{
	width:55%;
    flex-shrink: 0;
    position: absolute;
    overflow: hidden;
    left: 0;
    height: 100%;
    z-index: 9;
    padding: 20px 0;
}
.ns-card-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
  display:block;
}
.news-swiper .swiper-slide-active .ns-card-img img{
  transform:scale(1.04);
}
.ns-card-tag{
  position:absolute;top:14px;left:14px;
  background:var(--red);color:#fff;
  font-size:11px;padding:3px 10px;border-radius:2px;letter-spacing:1px;
  z-index:2;
}

/* 右侧文字区 */
.ns-card-body{
  flex:1;
  background: url(../images/img_home_list.png) right no-repeat;
  background-size: contain;
  padding:32px 28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:16px;
    position: absolute;
    overflow: hidden;
    right: 0;
    height: 100%;
    padding-left: 280px;
    width: 75%;
}
/* 右侧装饰纹样 */
.ns-card-body::before{
  content:'';
  position:absolute;
  right:-40px;bottom:-40px;
  width:180px;height:180px;
  border-radius:50%;
  /*background:rgba(200,145,74,.07);*/
  pointer-events:none;
}
.ns-card-body::after{
  content:'';
  position:absolute;
  right:20px;bottom:20px;
  width:80px;height:80px;
  border-radius:50%;
  /*background:rgba(200,145,74,.05);*/
  pointer-events:none;
}
.ns-card-title{
  font-size:18px;
  color:#f8f6d0;
  line-height:1.7;
  font-weight:600;
  letter-spacing:.5px;
}
.ns-card-desc{
  font-size:13px;
  color:rgba(255,255,255,.55);
  line-height:1.8;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.ns-card-meta{
  font-size:12px;
  color:rgba(200,145,74,.7);
  display:flex;gap:12px;
}
.ns-card-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid rgba(200,145,74,.6);
  color:rgba(200,145,74,.9);
  font-size:13px;
  padding:7px 18px;
  border-radius:2px;
  letter-spacing:1px;
  width:fit-content;
  transition:all .25s;
  cursor:pointer;
  margin-top:4px;
}
.ns-card-btn:hover{
  background:rgba(200,145,74,.15);
  border-color:var(--gold);
  color:var(--gold2);
}
.ns-card-btn svg{transition:transform .2s}
.ns-card-btn:hover svg{transform:translateX(3px)}

/* ── 侧边小卡片（非激活） ── */
/* 统一用同一模板，通过 scale 区分 */

/* swiper controls：隐藏，用点击滑动即可；或保留小箭头 */
.swiper-button-prev.news-prev,
.swiper-button-next.news-next{
  display:none; /* 设计图无明显按钮，可改回 block */
}

/* news more */
.news-more{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:18px 0 4px;cursor:pointer;
}
.news-more span{
  font-size:13px;color:var(--brown2);letter-spacing:2px;
  transition:color .2s;
}
.news-more:hover span{color:var(--red)}
.news-more-line{width:52px;height:1px;background:var(--border)}
.news-more-dot{
  width:5px;height:5px;border-radius:50%;
  background:var(--gold);
  margin:0 2px;
}

/* ─── WORKS WATERFALL ─── */
.works-section{background:var(--cream)}
.works-cats{
  display:flex;gap:0;border-bottom:1px solid var(--border);
  margin-bottom:28px;overflow-x:auto
}
.works-cat{
  padding:8px 20px;font-size:14px;color:var(--brown2);cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-1px;
  white-space:nowrap;transition:all .2s;letter-spacing:1px;user-select:none
}
.works-cat:hover{color:var(--red)}
.works-cat.active{color:var(--red);border-bottom-color:var(--red);font-weight:600}

/* masonry */
#wf-box{
  column-count:4;column-gap:16px;
}
.wf-card{
  break-inside:avoid;
  margin-bottom:16px;
  background:#fffbf2;
  border-radius:6px;
  overflow:hidden;
  /*border:1px solid var(--border);*/
  cursor:pointer;
  transition:all .3s;
  display:block;
  position:relative
}
.wf-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 32px var(--sh);border-color:var(--gold)
}
.wf-card-img{
  width:auto;display:block;
  background:#FFF;
  position:relative;overflow:hidden;
  border-left: 2px solid var(--border);border-right: 2px solid var(--border);
  margin: 0 1px;
    padding: 5px;
}
.wf-top-foot{
    height: 20px;
    position: relative;
    overflow: hidden;
}
.wf-top-foot img.imgTop{width:100%;position: absolute;top: 0;}
.wf-top-foot img.imgFoot{width:100%;position: absolute;bottom: 0;}
.wf-card-img img{
  width:100%;height:100%;display:block;object-fit:cover;
  transition:transform .4s
}
.wf-card-star img{
    width: 23px;
    height: 24px;
}

.wf-card:hover .wf-card-img img{transform:scale(1.06)}
.wf-card-star{
  position:absolute;bottom:8px;right:8px;
  width:40px;height:40px;background: #00000080;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:24px;color:#f0d060
}
.wf-card-body{
	padding:10px 12px 12px;
	border-left: 2px solid var(--border);
	border-right: 2px solid var(--border);
    margin: 0 1px;
}
.wf-card-name{
    font-size: 30px;
    color: #03002D;
    font-weight: 700;
    line-height: 1.6;
    margin-bottom: 26px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.wf-card-from{
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 24px;
  color: #999;
  padding-left: 44px;
  position: relative;
}
.wf-card-from::before{
  content:'';
  width: 28px;
  height: 30px;
  border-radius: 50%;
  background: url(https://j.rednet.cn/images/xiang-mian-nian-wechat/logo_museum@2x.png);
  background-size: contain;
  flex-shrink: 0;
  display: block;
  position: absolute;
  left: 0;
}

/* load more */
#wf-trigger{
  padding:28px 0;
  display:flex;align-items:center;justify-content:center
}
.ld-wrap{display:flex;flex-direction:column;align-items:center;gap:10px}
.ld-dots{display:flex;gap:8px}
.ld-dot{
  width:9px;height:9px;border-radius:50%;
  background:var(--gold);
  animation:ldPulse 1.4s infinite ease-in-out
}
.ld-dot:nth-child(2){animation-delay:.2s}
.ld-dot:nth-child(3){animation-delay:.4s}
@keyframes ldPulse{
  0%,80%,100%{transform:scale(.55);opacity:.4}
  40%{transform:scale(1);opacity:1}
}
.ld-text{font-size:13px;color:#bbb;letter-spacing:1px}
.no-more-tip{
  font-size:13px;color:#ccc;letter-spacing:2px;
  display:flex;align-items:center;gap:14px
}
.no-more-tip::before,.no-more-tip::after{
  content:'';width:60px;height:1px;background:var(--border)
}

/* ─── FOOTER ─── */
footer{
    background: linear-gradient(180deg,#3a1a08 0%,#2a0e04 100%);
    /* border-top: 2px solid var(--gold); */
    color: #8a6040;
    padding: 40px 0 0;
    background: url(../images/img_home_foot.png) center no-repeat;
    background-size: 100% 100%;
    height: 488px;
    width: 100%;
}
.ft-inner{
  display:grid;grid-template-columns:1fr auto;gap:40px;
  padding-bottom:32px;
  /* border-bottom:1px solid rgba(200,145,74,.15) */
}
.ft-brand{display:flex;flex-direction:column;align-items:center;gap:12px}
.ft-logo-icon{
  width:64px;height:64px;
  background:linear-gradient(135deg,var(--gold),#a06020);
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:20px;color:#fff;font-weight:700;letter-spacing:-1px;
  border:2px solid rgba(200,145,74,.5)
}
.ft-name{font-size:17px;color:#e0c090;letter-spacing:3px;font-weight:700}
.ft-sub{font-size:11px;color:#6a4030;letter-spacing:2px;text-transform:uppercase}
.ft-divider{width:40px;height:1px;background:rgba(200,145,74,.4)}
.ft-addr{font-size:12px;color:#6a4030;line-height:1.8;text-align:center;letter-spacing:.5px}
.ft-tel{font-size:12px;color:var(--gold);letter-spacing:1px}
.ft-qr{
  width:90px;height:90px;background:#fff;border-radius:6px;padding:6px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0
}
.ft-qr svg{width:100%;height:100%}
.ft-bottom{
  padding:14px 0;text-align:center;
  font-size:11px;color:#4a2a18;letter-spacing:1px
}

/* ─── BACK TOP ─── */
#btt{
  position:fixed;bottom:28px;right:28px;
  width:42px;height:42px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold),#a06020);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:18px;cursor:pointer;
  box-shadow:0 4px 16px rgba(0,0,0,.3);
  opacity:0;transform:translateY(16px);
  transition:all .3s;z-index:999
}
#btt.on{opacity:1;transform:translateY(0)}
#btt:hover{box-shadow:0 6px 20px rgba(0,0,0,.4);transform:translateY(-2px)}

/* ─── RESPONSIVE ─── */
@media(max-width:1100px){
	#wf-box{column-count:3}
}
@media(max-width:800px){
  .topnav-menu{display:none}
  .hero-main-title{font-size:34px}
  #wf-box{column-count:2}
  .news-swiper .swiper-slide{ width:85%; }
  .ns-card{ flex-direction:column; height:auto; }
  .ns-card-img{
	  width:100%;
	  height:200px;
	  flex-shrink:0;
	  position:relative;
	  overflow:hidden;
	  padding: 0 0;
	}
  .ns-card-body{
	  padding:20px;
	  gap:12px;
	  position: relative;
      width: auto;
    background-size: auto;
	}
  .ns-card-title{ font-size:15px; }
}
@media(max-width:520px){
  #wf-box{column-count:1}
  .news-swiper .swiper-slide{ width:92%; }
  .ns-card-body{ padding:16px; }
	.hero{
		min-height: 230px;
	}
	
	.hero-content{
		zoom:0.8
	}
	.scroll-title, .scroll-desc{
		zoom: 0.6;
		margin: 25px 0 30px 45px;
    font-size: 12px;
	}
	.hero-scroll-banner{
		bottom: -180px;
		min-height: 100px;
		margin: 0 auto!important;
		padding: 0;
	}
	.news-section{
		margin-top: 0px;
		padding-top: 100px;
	}
	.news-swiper .swiper-slide{
		width:74%;
	}
	.ns-card{ height:350px; }
	.ns-card-title{ font-size:16px; }
}

