* {margin: 0; padding: 0; box-sizing: border-box;}
:root {
  --primary: #16a34a;
  --accent: #ca8a04;
  --bg: #f7fee7;
  --card-bg: #ffffff;
  --text: #14532d;
  --text-light: #4b5563;
  --border: #bbf7d0;
  --tag-hot: #dc2626;
  --tag-new: #16a34a;
  --tag-tech: #ca8a04;
  --radius: 8px;
  --shadow: 0 3px 12px rgba(22,163,74,0.08);
  --shadow-hover: 0 6px 20px rgba(22,163,74,0.12);
}
body {
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.7;
  min-height: 100vh;
  padding-top: 100px;
}
.site-banner {
  position: fixed; top:0; left:0; width:100%; height:35px;
  background: linear-gradient(90deg, #15803d, #65a30d);
  color:white; display:flex; align-items:center; justify-content:center;
  gap:1.5rem; padding:0 5%; font-size:0.9rem; z-index:1001;
  flex-wrap: wrap;
}
.site-banner a {color:white; text-decoration: underline; font-weight:500;}
.navbar {
  position: fixed; top:35px; left:0; width:100%; height:65px;
  background:var(--card-bg); box-shadow:0 2px 8px rgba(22,163,74,0.06);
  display:flex; align-items:center; padding:0 5%; z-index:1000;
}
.logo {font-size:1.6rem; font-weight:700; color:var(--primary); text-decoration:none; margin-right:auto;}
.logo span {color:var(--accent); font-size:1rem; margin-left:0.3rem; font-weight:500;}
.nav-links {display:flex; gap:1.8rem; list-style:none;}
.nav-links a {text-decoration:none; color:var(--text); font-weight:500; transition:color 0.3s; position:relative;}
.nav-links a:hover, .nav-links a.active {color:var(--primary);}
.nav-links a.active::after {content:''; position:absolute; bottom:-5px; left:0; width:100%; height:3px; background:var(--accent); border-radius:2px;}
.hamburger {display:none; flex-direction:column; gap:4px; border:none; background:none; cursor:pointer;}
.hamburger span {width:22px; height:3px; background:var(--text); border-radius:2px;}
.container {max-width:1200px; margin:0 auto; padding:2rem 5%;}
.carousel {position:relative; width:100%; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); margin-bottom:2rem; aspect-ratio:21/9; min-height:250px;}
.carousel-item {position:absolute; inset:0; opacity:0; transition:opacity 0.5s; z-index:0;}
.carousel-item.active {opacity:1; z-index:1;}
.carousel-item img {width:100%; height:100%; object-fit:cover;}
.carousel-caption {position:absolute; left:5%; bottom:18%; z-index:2; color:white; text-shadow:0 2px 6px rgba(0,0,0,0.4); max-width:550px;}
.carousel-caption h3 {font-size:clamp(1.4rem, 3vw, 2rem); margin-bottom:0.7rem;}
.carousel-caption p {font-size:1rem; margin-bottom:1rem; opacity:0.95;}
.carousel-btn {position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; border:none; background:rgba(255,255,255,0.7); font-size:1.2rem; cursor:pointer; z-index:3; display:flex; align-items:center; justify-content:center;}
.carousel-btn.prev {left:1rem;} .carousel-btn.next {right:1rem;}
.carousel-indicators {position:absolute; bottom:1rem; left:50%; transform:translateX(-50%); display:flex; gap:0.5rem; z-index:3;}
.indicator {width:10px; height:10px; border-radius:50%; border:none; background:rgba(255,255,255,0.5); cursor:pointer;}
.indicator.active {background:white; width:25px; border-radius:5px;}
.tip-note {background:#fef9c3; border-left:4px solid var(--accent); padding:1.2rem; border-radius:0 var(--radius) var(--radius) 0; margin-bottom:2rem; display:flex; gap:1rem; align-items:flex-start;}
.tip-avatar {width:42px; height:42px; border-radius:50%; background:white; display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0;}
.tip-note p {margin:0; color:#854d0e; line-height:1.7;}
.tip-note .tip-title {font-weight:600; margin-bottom:0.3rem;}
.warn-block{background:#fef2f2; border-left:4px solid #dc2626; padding:1rem; border-radius:0 8px 8px 0; margin:1.5rem 0; font-size:0.95rem; color:#991b1b;}
.price-block{background:#f0fdf4; border-radius:8px; padding:1.2rem; margin:1.5rem 0;}
.price-row{display:flex; justify-content:space-between; padding:0.5rem 0; border-bottom:1px dashed #bbf7d0; font-size:0.9rem; flex-wrap: wrap; gap:0.5rem;}
.price-row:last-child{border:none;}
.qna-mini{background:var(--card-bg); border-radius:8px; padding:1.2rem; box-shadow:var(--shadow); margin:1rem 0;}
.qna-mini h4{color:var(--primary); margin-bottom:0.8rem;}
.qna-mini li{list-style:none; padding:0.4rem 0; color:var(--text-light); font-size:0.9rem; border-bottom:1px dotted var(--border);}
.hero {display:flex; gap:2rem; align-items:center; flex-wrap:wrap; margin-bottom:3rem;}
.hero-text {flex:1 1 480px;}
.hero-text h1 {font-size:clamp(1.7rem, 3vw, 2.3rem); margin-bottom:1rem; text-align:left; line-height:1.3;}
.hero-text h1 span {color:var(--primary);}
.hero-text p {color:var(--text-light); line-height:1.8; margin-bottom:1.5rem; text-align:left; font-size:1rem;}
.hero-btns {display:flex; gap:1rem; flex-wrap:wrap;}
.btn {padding:0.7rem 1.6rem; border-radius:var(--radius); text-decoration:none; font-weight:500; transition:all 0.3s; border:none; cursor:pointer; font-size:1rem;}
.btn-primary {background:var(--primary); color:white;}
.btn-primary:hover {background:#15803d; transform:translateY(-2px); box-shadow:var(--shadow);}
.btn-accent {background:var(--accent); color:white;}
.btn-accent:hover {background:#a16207; transform:translateY(-2px); box-shadow:var(--shadow);}
.hero-cover {flex:1 1 300px; max-width:450px; border-radius:var(--radius); box-shadow:var(--shadow-hover); width:100%; aspect-ratio:5/4; background:linear-gradient(135deg, #bbf7d0, #fef08a); display:flex; align-items:center; justify-content:center; font-size:5rem;}
.section-title {font-size:1.5rem; text-align:center; margin-bottom:2rem; position:relative;}
.section-title::after {content:''; position:absolute; bottom:-7px; left:50%; transform:translateX(-50%); width:50px; height:3px; background:var(--accent); border-radius:2px;}
.card-grid {display:grid; grid-template-columns:repeat(4, 1fr); gap:1.2rem; margin-bottom:3rem;}
.content-card {background:var(--card-bg); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition:all 0.3s; position:relative;}
.content-card:hover {transform:translateY(-4px); box-shadow:var(--shadow-hover);}
.corner-tag {position:absolute; top:8px; left:8px; padding:0.2rem 0.5rem; border-radius:4px; font-size:0.75rem; font-weight:600; color:white; z-index:2;}
.corner-tag.hot {background:var(--tag-hot);}
.corner-tag.new {background:var(--tag-new);}
.corner-tag.tech {background:var(--tag-tech);}
.card-cover {width:100%; aspect-ratio:3/2; object-fit:cover; background:linear-gradient(135deg, #dcfce7, #fef9c3);}
.card-info {padding:1rem;}
.card-title {font-size:1.1rem; font-weight:600; margin-bottom:0.4rem;}
.card-meta {display:flex; justify-content:space-between; font-size:0.85rem; color:var(--text-light); margin-bottom:0.5rem; flex-wrap: wrap; gap:0.3rem;}
.card-tags {display:flex; gap:0.4rem; flex-wrap:wrap; margin-bottom:0.5rem;}
.tag {font-size:0.75rem; padding:0.2rem 0.5rem; background:var(--bg); color:var(--text-light); border-radius:15px;}
.card-desc {font-size:0.88rem; color:var(--text-light); line-height:1.6; margin-top:0.4rem;}
.week-schedule {background:var(--card-bg); border-radius:var(--radius); padding:1.5rem; box-shadow:var(--shadow); margin-bottom:2rem; overflow-x:auto;}
.schedule-grid {display:grid; grid-template-columns:repeat(7, minmax(110px, 1fr)); gap:1rem;}
.schedule-day {text-align:center;}
.schedule-day .day-name {font-weight:600; color:var(--text-light); padding-bottom:0.5rem; border-bottom:2px solid var(--border); margin-bottom:0.6rem;}
.schedule-day.today .day-name {color:var(--primary); border-bottom-color:var(--primary);}
.schedule-day a {display:block; font-size:0.88rem; color:var(--text); text-decoration:none; padding:0.2rem 0; transition:color 0.2s;}
.schedule-day a:hover {color:var(--primary);}
.welfare-card{background:linear-gradient(135deg,#dcfce7,#fef9c3); padding:1.5rem; border-radius:var(--radius); margin:2rem 0; border:2px dashed var(--primary);}
.welfare-card h3 {color:var(--primary); margin-bottom:0.8rem; font-size:1.3rem; text-align:center;}
.welfare-card p {line-height:1.7; text-align:center;}
.join-list{columns:2; font-size:0.9rem; color:var(--text-light); padding-left:1.2rem; margin:0.8rem 0;}
.post-list {background:var(--card-bg); border-radius:var(--radius); padding:1.5rem; box-shadow:var(--shadow); margin-bottom:3rem;}
.post-item {display:flex; justify-content:space-between; align-items:center; padding:0.7rem 0; border-bottom:1px solid var(--border); flex-wrap:wrap; gap:0.5rem;}
.post-item:last-child {border-bottom:none;}
.post-title {color:var(--text); text-decoration:none; display:flex; align-items:center; gap:0.4rem; transition:color 0.2s; flex-wrap: wrap;}
.post-title:hover {color:var(--primary);}
.post-title .reply-count {font-size:0.8rem; color:var(--accent);}
.tag-village{background:#fee2e2; color:#dc2626; font-size:0.75rem; padding:0.1rem 0.4rem; border-radius:4px; margin-right:0.4rem;}
.post-meta {font-size:0.85rem; color:var(--text-light);}
.article-section {background:var(--card-bg); padding:2rem; border-radius:var(--radius); box-shadow:var(--shadow); margin-bottom:1.5rem; line-height:1.8;}
.article-section h2 {font-size:1.3rem; color:var(--primary); margin:1.5rem 0 0.8rem;}
.article-section h3 {font-size:1.1rem; margin:1rem 0 0.5rem;}
.article-section p {margin-bottom:0.8rem; color:var(--text-light);}
.article-section ul {padding-left:1.5rem; margin-bottom:0.8rem; color:var(--text-light);}
.article-section li {margin-bottom:0.4rem;}
.faq-list {max-width:800px; margin:0 auto 3rem; display:grid; gap:1rem;}
.faq-item {background:var(--card-bg); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden;}
.faq-question {width:100%; padding:1.1rem 1.5rem; text-align:left; border:none; background:none; font-size:1.05rem; font-weight:600; cursor:pointer; display:flex; justify-content:space-between; align-items:center; transition:background 0.3s;}
.faq-question:hover {background:var(--bg);}
.faq-question::after {content:'+'; font-size:1.4rem; color:var(--primary); transition:transform 0.3s;}
.faq-item.active .faq-question::after {transform:rotate(45deg);}
.faq-answer {max-height:0; overflow:hidden; transition:max-height 0.3s; padding:0 1.5rem; color:var(--text-light);}
.faq-item.active .faq-answer {max-height:300px; padding-bottom:1.1rem;}
.breadcrumb-nav {padding:0.8rem 0; margin-bottom:0.5rem;}
.breadcrumb {list-style:none; display:flex; gap:0.5rem; flex-wrap:wrap; align-items:center; font-size:0.9rem; color:var(--text-light); padding:0; margin:0;}
.breadcrumb li {display:flex; align-items:center; gap:0.5rem;}
.breadcrumb li::after {content:'/'; color:var(--border);}
.breadcrumb li:last-child::after {display:none;}
.breadcrumb a {color:var(--text-light); text-decoration:none;}
.breadcrumb a:hover {color:var(--primary);}
.breadcrumb .current {color:var(--text); font-weight:500;}
.footer {background:#14532d; color:#bbf7d0; padding:3rem 5% 1rem; margin-top:3rem;}
.footer-inner {max-width:1200px; margin:0 auto; text-align:center; margin-bottom:2rem;}
.footer-slogan {color:white; font-size:1.4rem; font-weight:700; margin-bottom:0.5rem;}
.footer-slogan small {color:var(--accent); font-size:0.9rem; font-weight:400; display:block; margin-top:0.2rem;}
.footer-desc {max-width:600px; margin:0 auto 1.2rem; font-size:0.95rem;}
.footer-links, .footer-terms {display:flex; justify-content:center; gap:1.5rem; flex-wrap:wrap; margin-bottom:1rem; list-style:none;}
.footer-links a {color:#bbf7d0; text-decoration:none; font-size:0.95rem; transition:color 0.3s;}
.footer-links a:hover {color:var(--accent);}
.footer-terms {padding-bottom:1.2rem; border-bottom:1px solid #166534; font-size:0.85rem;}
.footer-terms a {color:#86efac; text-decoration:none;}
.footer-terms a:hover {color:var(--accent);}
.legal-note {background:#052e16; padding:1rem; border-radius:var(--radius); margin:0 auto 1.5rem; max-width:1200px; font-size:0.85rem; color:#86efac; text-align:center;}
.copyright {text-align:center; padding-top:1rem; font-size:0.9rem; color:#86efac; line-height:1.6;}
.back-to-top {position:fixed; bottom:2rem; right:2rem; width:45px; height:45px; border-radius:50%; background:var(--primary); color:white; border:none; box-shadow:var(--shadow); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:1.1rem; opacity:0; visibility:hidden; transition:all 0.3s; z-index:999;}
.back-to-top.show {opacity:1; visibility:visible;}
.post-sticky{background:#fef3c7;}
.reply-count{background:#fee2e2; color:#dc2626; padding:0.1rem 0.4rem; border-radius:4px; font-size:0.8rem;}
@media (max-width:992px) {.card-grid {grid-template-columns:repeat(2, 1fr);}.join-list{columns:1;}}
@media (max-width:768px) {
  body {padding-top:90px;}
  .site-banner {height:auto; padding:0.3rem 5%; font-size:0.8rem; gap:0.5rem;}
  .navbar {top:42px; height:60px;}
  .hamburger {display:flex;}
  .nav-links {position:absolute; top:60px; left:-100%; width:100%; flex-direction:column; background:var(--card-bg); padding:2rem 5%; gap:1.2rem; box-shadow:0 8px 10px rgba(22,163,74,0.06); transition:left 0.3s;}
  .nav-links.open {left:0;}
  .hero-text h1, .hero-text p {text-align:center;}
  .hero-btns {justify-content:center;}
  .carousel {aspect-ratio:16/9; min-height:180px;}
  .carousel-caption {bottom:12%; left:4%; right:4%;}
  .schedule-grid {min-width:700px;}
  .footer-links, .footer-terms {gap:0.8rem;}
  .back-to-top {bottom:1rem; right:1rem; width:40px; height:40px;}
}
@media (max-width:576px) {.card-grid {grid-template-columns:1fr;}}