/* === Reset === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%;}
body{min-height:100vh;line-height:1.6;font-family:'Microsoft YaHei','PingFang SC','Hiragino Sans GB','Noto Sans SC',sans-serif;background:#F5F5F5;color:#1A1A1A;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
img,video{max-width:100%;height:auto;display:block;}
ul,ol{list-style:none;}
a{text-decoration:none;color:inherit;}
button,input,select,textarea{font:inherit;border:none;background:none;cursor:pointer;}
h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;}
:focus-visible{outline:3px solid #FF4500;outline-offset:2px;border-radius:2px;}

/* === CSS Variables === */
:root{
  --clr-primary:#2E8B57;
  --clr-primary-dark:#1E6B3F;
  --clr-accent:#FF4500;
  --clr-accent-light:#FF6347;
  --clr-silver:#C0C0C0;
  --clr-dark:#121212;
  --clr-light:#F5F5F5;
  --clr-text:#1A1A1A;
  --clr-text-on-green:#FFFFFF;
  --clr-text-on-red:#FFFFFF;
  --clr-text-on-dark:#E0E0E0;
  --font-head:'Impact','Arial Black','Oswald',sans-serif;
  --font-body:'Microsoft YaHei','PingFang SC','Hiragino Sans GB','Noto Sans SC',sans-serif;
  --container-max:1200px;
  --gap:1.5rem;
  --radius:4px;
  --transition:0.25s ease;
  --shadow:0 4px 20px rgba(0,0,0,0.12);
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important;scroll-behavior:auto!important;}
}

/* === Skip Link === */
.skip-link{position:absolute;top:-100px;left:0;z-index:1000;padding:0.75rem 1.5rem;background:var(--clr-accent);color:#fff;font-weight:600;font-size:1rem;}
.skip-link:focus{top:0;outline:3px solid #fff;outline-offset:-3px;}

/* === Container === */
.container{max-width:var(--container-max);margin:0 auto;padding:0 1.25rem;}

/* === Header === */
.site-header{position:sticky;top:0;z-index:900;background:var(--clr-dark);border-bottom:3px solid var(--clr-primary);box-shadow:0 2px 16px rgba(0,0,0,0.3);}
.header-inner{display:flex;align-items:center;justify-content:space-between;max-width:var(--container-max);margin:0 auto;padding:0 1.25rem;height:68px;position:relative;}
.brand{display:flex;align-items:center;gap:0.6rem;color:var(--clr-silver);transition:color var(--transition);flex-shrink:0;}
.brand:hover,.brand:focus-visible{color:var(--clr-primary);}
.brand-icon{flex-shrink:0;}
.brand-name{font-family:var(--font-head);font-size:1.5rem;font-weight:700;letter-spacing:0.04em;color:var(--clr-text-on-dark);}
.brand:hover .brand-name{color:var(--clr-primary);}

.whistle-btn{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--clr-accent);color:#fff;transition:transform var(--transition),background var(--transition);flex-shrink:0;margin:0 0.5rem;position:relative;}
.whistle-btn:hover,.whistle-btn:focus-visible{transform:scale(1.12);background:var(--clr-accent-light);}
.whistle-btn:active{transform:scale(0.94);}
.whistle-btn svg{width:26px;height:26px;pointer-events:none;}

.nav-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;width:44px;height:44px;background:transparent;border:2px solid var(--clr-silver);border-radius:var(--radius);gap:5px;padding:8px;flex-shrink:0;transition:border-color var(--transition);}
.nav-toggle:hover,.nav-toggle:focus-visible{border-color:var(--clr-primary);}
.nav-toggle-line{display:block;width:100%;height:2px;background:var(--clr-silver);border-radius:2px;transition:background var(--transition),transform var(--transition);}
.nav-toggle:hover .nav-toggle-line{background:var(--clr-primary);}

.nav{display:flex;align-items:center;}
.nav-list{display:flex;align-items:center;gap:0.25rem;}
.nav-item{margin:0;}
.nav-link{display:block;padding:0.5rem 0.9rem;font-family:var(--font-head);font-size:0.95rem;font-weight:700;color:var(--clr-text-on-dark);letter-spacing:0.03em;text-transform:uppercase;border-bottom:2px solid transparent;transition:color var(--transition),border-color var(--transition),background var(--transition);border-radius:var(--radius) var(--radius) 0 0;}
.nav-link:hover,.nav-link:focus-visible{color:var(--clr-primary);border-bottom-color:var(--clr-primary);background:rgba(46,139,87,0.08);}
.nav-link[aria-current="page"]{color:var(--clr-primary);border-bottom-color:var(--clr-accent);background:rgba(255,69,0,0.06);}

@media(max-width:768px){
  .nav-toggle{display:flex;}
  .nav{position:absolute;top:68px;left:0;right:0;background:var(--clr-dark);border-bottom:3px solid var(--clr-primary);max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.3s ease;padding:0 1.25rem;box-shadow:0 8px 24px rgba(0,0,0,0.3);}
  .nav[data-open]{max-height:520px;padding:0.75rem 1.25rem 1rem;}
  .nav-list{flex-direction:column;align-items:stretch;gap:0;width:100%;}
  .nav-link{padding:0.75rem 1rem;border-bottom:1px solid rgba(192,192,192,0.15);border-radius:0;font-size:1.05rem;}
  .nav-link[aria-current="page"]{border-bottom-color:var(--clr-accent);background:rgba(255,69,0,0.1);}
  .header-inner{height:60px;}
  .brand-name{font-size:1.25rem;}
}

/* === Footer === */
.site-footer{background:var(--clr-dark);color:var(--clr-text-on-dark);border-top:4px solid var(--clr-primary);padding:3rem 0 1.5rem;}
.footer-inner{max-width:var(--container-max);margin:0 auto;padding:0 1.25rem;}
.footer-columns{display:grid;grid-template-columns:repeat(5,1fr);gap:2rem;margin-bottom:2.5rem;}
.footer-column{display:flex;flex-direction:column;gap:0.6rem;}
.footer-heading{font-family:var(--font-head);font-size:1.1rem;font-weight:700;color:var(--clr-primary);letter-spacing:0.04em;text-transform:uppercase;padding-bottom:0.5rem;border-bottom:2px solid rgba(46,139,87,0.3);margin-bottom:0.25rem;}
.footer-text{font-size:0.9rem;color:var(--clr-text-on-dark);line-height:1.5;opacity:0.85;}
.footer-list{display:flex;flex-direction:column;gap:0.45rem;}
.footer-link{color:var(--clr-text-on-dark);font-size:0.9rem;transition:color var(--transition);opacity:0.8;}
.footer-link:hover,.footer-link:focus-visible{color:var(--clr-primary);opacity:1;}
.footer-bottom{border-top:1px solid rgba(192,192,192,0.2);padding-top:1.5rem;display:flex;flex-direction:column;align-items:center;gap:0.8rem;text-align:center;}
.footer-contact{font-size:0.85rem;color:var(--clr-text-on-dark);opacity:0.7;display:flex;flex-wrap:wrap;justify-content:center;gap:0.5rem;}
.footer-legal{display:flex;flex-wrap:wrap;justify-content:center;gap:0.75rem;}
.footer-legal .footer-link{font-size:0.9rem;font-weight:600;color:var(--clr-silver);opacity:0.9;}
.footer-legal .footer-link:hover{color:var(--clr-primary);}
.footer-divider{color:var(--clr-silver);opacity:0.4;}
.footer-icp{font-size:0.8rem;color:var(--clr-text-on-dark);opacity:0.5;}
.footer-copy{font-size:0.8rem;color:var(--clr-text-on-dark);opacity:0.5;max-width:800px;}

@media(max-width:992px){
  .footer-columns{grid-template-columns:repeat(3,1fr);gap:1.5rem;}
}
@media(max-width:640px){
  .footer-columns{grid-template-columns:1fr 1fr;gap:1.5rem;}
  .footer-column:first-child{grid-column:1/-1;}
  .footer-contact{flex-direction:column;gap:0.3rem;}
  .footer-divider{display:none;}
}
@media(max-width:400px){
  .footer-columns{grid-template-columns:1fr;}
}

/* === Buttons === */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:0.65rem 1.5rem;font-family:var(--font-head);font-size:1rem;font-weight:700;border-radius:var(--radius);transition:background var(--transition),transform var(--transition),box-shadow var(--transition);text-transform:uppercase;letter-spacing:0.03em;gap:0.5rem;}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,0.18);}
.btn:active{transform:translateY(0);}
.btn-primary{background:var(--clr-primary);color:var(--clr-text-on-green);}
.btn-primary:hover{background:var(--clr-primary-dark);}
.btn-accent{background:var(--clr-accent);color:var(--clr-text-on-red);}
.btn-accent:hover{background:var(--clr-accent-light);}
.btn-outline{background:transparent;border:2px solid var(--clr-primary);color:var(--clr-primary);}
.btn-outline:hover{background:var(--clr-primary);color:#fff;}

/* === Breadcrumb === */
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:0.4rem;padding:0.8rem 0;font-size:0.9rem;color:var(--clr-text);opacity:0.65;}
.breadcrumb a{color:var(--clr-primary);transition:color var(--transition);}
.breadcrumb a:hover{color:var(--clr-accent);}
.breadcrumb .breadcrumb-current{color:var(--clr-text);font-weight:600;opacity:0.8;}
.breadcrumb-sep{color:var(--clr-silver);margin:0 0.2rem;}

/* === Grid === */
.grid{display:grid;gap:var(--gap);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:992px){
  .grid-4{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}
}

/* === Particles Container === */
.particles-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;overflow:hidden;}
.particle{position:absolute;width:8px;height:8px;background:#FFD700;border-radius:50%;opacity:0.9;box-shadow:0 0 6px rgba(255,215,0,0.6);animation:particleFall linear forwards;}
@keyframes particleFall{
  0%{transform:translateY(0) rotate(0deg);opacity:1;}
  100%{transform:translateY(100vh) rotate(720deg);opacity:0;}
}

/* === Scroll-to-top === */
[data-scroll-top]{position:fixed;bottom:2rem;right:2rem;z-index:800;width:48px;height:48px;border-radius:50%;background:var(--clr-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 4px 16px rgba(255,69,0,0.35);opacity:0;visibility:hidden;transition:opacity var(--transition),visibility var(--transition),transform var(--transition);}
[data-scroll-top].visible{opacity:1;visibility:visible;}
[data-scroll-top]:hover{transform:translateY(-4px);background:var(--clr-accent-light);}
[data-scroll-top]::after{content:'↑';font-weight:700;line-height:1;}

/* === Utilities === */
.text-center{text-align:center;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}
