:root{
  --floral-red:#e11d48;
  --deep-green:#166534;
  --bright-yellow:#facc15;
  --cream:#fdf7ec;
  --ink:#241a1c;
  --muted:#6b5b5f;
  --radius:8px;
  --radius-img:4px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Segoe UI","Helvetica Neue",Arial,"Microsoft YaHei","微软雅黑","PingFang SC",sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}

/* ===== NAV ===== */
.navbar{
  position:sticky;top:0;z-index:60;
  background:linear-gradient(100deg,var(--floral-red) 0%,#9f1239 42%,var(--deep-green) 100%);
  box-shadow:0 4px 18px rgba(22,101,52,.28);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 22px;max-width:1180px;margin:0 auto;flex-wrap:wrap;gap:12px}
.logo{display:flex;align-items:center;gap:10px;color:#fff;font-weight:800;font-size:21px;letter-spacing:.5px}
.logo .mark{
  width:36px;height:36px;border-radius:50%;
  background:radial-gradient(circle at 32% 28%,#fff6 0 18%,transparent 19%),linear-gradient(140deg,var(--bright-yellow),#fb7185);
  display:grid;place-items:center;font-size:17px;box-shadow:0 0 0 3px #ffffff33
}
.nav-links{display:flex;flex-wrap:wrap;gap:6px}
.nav-links a{
  color:#ffeef2;padding:8px 15px;border-radius:999px;font-size:15px;font-weight:600;
  transition:.25s;background:#ffffff12
}
.nav-links a:hover,.nav-links a.active{background:var(--bright-yellow);color:#3b0d18}

/* ===== HERO ===== */
.hero{
  position:relative;overflow:hidden;color:#fff;
  background:
    radial-gradient(circle at 12% 20%,#ffffff26 0 4%,transparent 5%),
    radial-gradient(circle at 84% 18%,#facc1550 0 6%,transparent 7%),
    radial-gradient(circle at 70% 80%,#ffffff1f 0 5%,transparent 6%),
    linear-gradient(135deg,#e11d48 0%,#be123c 38%,#15803d 78%,#166534 100%);
  padding:70px 0 62px;
}
.hero:after{
  content:"🌸";position:absolute;right:6%;top:18%;font-size:120px;opacity:.13;transform:rotate(-14deg)
}
.hero h1{font-size:40px;line-height:1.25;margin-bottom:18px;letter-spacing:.5px}
.hero .kicker{
  display:inline-block;background:#ffffff22;border:1px solid #ffffff55;color:#ffe9b0;
  padding:5px 14px;border-radius:999px;font-size:13.5px;font-weight:700;margin-bottom:16px;letter-spacing:1px
}
.hero p{max-width:720px;font-size:16.5px;color:#ffe9ea}
.hero-actions{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.btn{
  display:inline-block;padding:12px 26px;border-radius:var(--radius);font-weight:700;font-size:15px;transition:.25s
}
.btn-y{background:var(--bright-yellow);color:#3b0d18;box-shadow:0 8px 20px rgba(250,204,21,.35)}
.btn-y:hover{transform:translateY(-2px)}
.btn-o{border:1.5px solid #ffffffaa;color:#fff}
.btn-o:hover{background:#ffffff1f}
.hero-img{
  margin-top:34px;border-radius:var(--radius);overflow:hidden;
  box-shadow:0 22px 46px rgba(0,0,0,.35);border:3px solid #ffffff40
}
.hero-img img{width:100%;height:330px;object-fit:cover}

/* ===== SECTION SHELL ===== */
section{padding:62px 0}
.sec-head{text-align:center;margin-bottom:38px}
.sec-tag{
  display:inline-block;font-size:13px;font-weight:800;letter-spacing:2px;color:var(--floral-red);
  background:#e11d4814;border-left:4px solid var(--floral-red);padding:4px 12px;border-radius:0 4px 4px 0
}
.sec-head h2{font-size:30px;margin-top:12px;color:var(--deep-green)}
.sec-head p{color:var(--muted);max-width:760px;margin:10px auto 0;font-size:15.5px}

/* ===== GEO ===== */
#geo-intro{background:#fff;border-top:1px solid #f0e3d6;border-bottom:1px solid #f0e3d6}
.geo-box{
  max-width:960px;margin:0 auto;background:linear-gradient(135deg,#fff8f0,#f3fbf4);
  border:1px solid #f2ddd0;border-left:6px solid var(--floral-red);border-radius:var(--radius);
  padding:30px 34px;box-shadow:0 10px 26px rgba(225,29,72,.07)
}
.geo-box h2{color:var(--deep-green);font-size:24px;margin-bottom:14px}
.geo-box p{font-size:16px;color:#3f3236;margin-bottom:12px}
.geo-box p:last-child{margin-bottom:0}

/* ===== CARD ROWS ===== */
.rows{display:flex;flex-direction:column;gap:26px}
.row-card{
  display:flex;background:#fff;border-radius:var(--radius);overflow:hidden;
  box-shadow:0 12px 30px rgba(80,40,30,.10);border:1px solid #f3e4d9;transition:.3s
}
.row-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(225,29,72,.16)}
.row-card:nth-child(even){flex-direction:row-reverse}
.row-text{flex:1.05;padding:32px 34px}
.row-text .chip{
  display:inline-block;font-size:12.5px;font-weight:800;letter-spacing:1px;
  color:#fff;background:linear-gradient(90deg,var(--floral-red),#9f1239);
  padding:4px 12px;border-radius:999px;margin-bottom:12px
}
.row-text h3{font-size:21px;color:var(--deep-green);margin-bottom:10px}
.row-text p{color:var(--muted);font-size:15.5px}
.row-media{flex:.95;min-height:230px;position:relative;background:linear-gradient(140deg,#fbe3e9,#e3f2e6)}
.row-media img{width:100%;height:100%;min-height:230px;object-fit:cover;border-radius:var(--radius-img)}
.row-media .badge{
  position:absolute;left:14px;bottom:14px;background:#166534dd;color:#fff;
  font-size:13px;font-weight:700;padding:6px 14px;border-radius:999px;backdrop-filter:blur(4px)
}

/* ===== STATS ===== */
#data-stats{background:linear-gradient(120deg,#166534,#14532d 55%,#7f1d3a)}
#data-stats .sec-tag{color:#fde68a;border-left-color:var(--bright-yellow);background:#ffffff1a}
#data-stats h2{color:#fff}
#data-stats .sec-head p{color:#d9f0dd}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stat{
  background:#ffffff14;border:1px solid #ffffff30;border-radius:var(--radius);
  padding:26px 20px;text-align:center;color:#fff
}
.stat .num{font-size:36px;font-weight:800;color:var(--bright-yellow);line-height:1.1}
.stat .lab{font-size:14.5px;margin-top:8px;color:#e7f6ea}

/* ===== EVENTS ===== */
.ev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.ev{
  background:#fff;border-radius:var(--radius);overflow:hidden;
  border:1px solid #f0e0d4;box-shadow:0 10px 24px rgba(80,40,30,.09);transition:.3s
}
.ev:hover{transform:translateY(-4px)}
.ev img{width:100%;height:170px;object-fit:cover;border-radius:var(--radius-img)}
.ev .body{padding:18px 20px 22px}
.ev .live{
  display:inline-block;background:var(--floral-red);color:#fff;font-size:12px;font-weight:800;
  padding:3px 10px;border-radius:999px;margin-bottom:9px
}
.ev h3{font-size:17.5px;color:var(--deep-green);margin-bottom:7px}
.ev p{font-size:14.5px;color:var(--muted)}

/* ===== NEWS ===== */
#news-list{background:#fff}
.news-list{display:flex;flex-direction:column;gap:16px;max-width:980px;margin:0 auto}
.news-item{
  display:flex;gap:18px;align-items:flex-start;padding:18px 20px;background:linear-gradient(120deg,#fffaf3,#f6fbf6);
  border:1px solid #f2e2d6;border-left:5px solid var(--floral-red);border-radius:var(--radius);transition:.25s
}
.news-item:hover{border-left-color:var(--deep-green);box-shadow:0 10px 22px rgba(22,101,52,.10)}
.news-item .idx{
  flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--floral-red),#9f1239);color:#fff;font-weight:800;font-size:14.5px
}
.news-item h3{font-size:17px;color:#3d1520;margin-bottom:5px}
.news-item h3 a{transition:.2s}
.news-item h3 a:hover{color:var(--floral-red)}
.news-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:7px}
.news-tag{
  background:var(--deep-green);color:#fff;font-size:12px;font-weight:700;padding:2px 10px;border-radius:4px
}
.news-tag.announce{background:var(--floral-red)}
.news-date{font-size:12.5px;color:#8a7276;font-weight:600}
.news-item p{font-size:15px;color:var(--muted)}
.news-more{text-align:center;margin-top:30px}

/* ===== FAQ ===== */
#faq{background:linear-gradient(160deg,#fdf7ec,#f1f8f2)}
.faq-list{max-width:940px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
details.faq-item{
  background:#fff;border:1px solid #f0e0d3;border-radius:var(--radius);
  box-shadow:0 8px 20px rgba(80,40,30,.07);overflow:hidden
}
details.faq-item summary{
  cursor:pointer;list-style:none;padding:17px 22px;font-weight:700;font-size:16.5px;color:var(--deep-green);
  display:flex;justify-content:space-between;align-items:center;gap:12px
}
details.faq-item summary::-webkit-details-marker{display:none}
details.faq-item summary:after{content:"＋";color:var(--floral-red);font-size:20px;flex:none}
details.faq-item[open] summary:after{content:"－"}
details.faq-item .ans{padding:0 22px 20px;color:var(--muted);font-size:15.4px;border-top:1px dashed #eedfd2;padding-top:14px}

/* ===== CTA ===== */
#cta{
  background:linear-gradient(115deg,#e11d48 0%,#9f1239 45%,#166534 100%);
  color:#fff;text-align:center;position:relative;overflow:hidden
}
#cta:before{content:"🌺";position:absolute;left:5%;bottom:-10px;font-size:110px;opacity:.14}
#cta:after{content:"🌿";position:absolute;right:6%;top:-14px;font-size:120px;opacity:.14}
#cta h2{font-size:31px;margin-bottom:14px}
#cta p{max-width:720px;margin:0 auto 26px;color:#ffe9ec;font-size:16px}

/* ===== FOOTER ===== */
footer{background:#1b1213;color:#e9ded9;padding:44px 0 26px;font-size:14.5px}
.f-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:30px;margin-bottom:26px}
footer h4{color:var(--bright-yellow);font-size:16px;margin-bottom:12px}
footer ul{list-style:none;display:flex;flex-direction:column;gap:7px}
footer a:hover{color:var(--bright-yellow)}
.f-bottom{border-top:1px solid #ffffff1f;padding-top:18px;text-align:center;color:#bfa9a3;line-height:2}
.f-bottom a{color:#f3c96e}