:root {
  --brand: #2f7d32;
  --brand-dark: #1c5520;
  --ink: #172018;
  --muted: #627063;
  --line: #e5ece5;
  --paper: #fff;
  --gutter: clamp(1rem, 3vw, 2rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif; }
body.is-drawer-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
.container { width: min(calc(100% - var(--gutter) * 2), 75rem); margin-inline: auto; }
.skip-link { position: fixed; z-index: 100; top: 0.75rem; left: 0.75rem; padding: 0.75rem 1rem; color: #fff; background: var(--brand-dark); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: sticky; z-index: 40; top: 0; border-bottom: 1px solid rgba(20, 53, 22, .08); background: rgba(255, 255, 255, .96); box-shadow: 0 3px 18px rgba(19, 48, 21, .04); backdrop-filter: blur(10px); }
.site-header__inner { display: flex; align-items: center; min-height: 5.25rem; gap: clamp(1rem, 2vw, 2.25rem); }
.brand { flex: 0 0 auto; width: clamp(8.6rem, 11vw, 10.75rem); }
.brand img { width: 100%; height: auto; }
.desktop-nav { flex: 1 1 auto; }
.desktop-nav ul { display: flex; justify-content: center; gap: clamp(.2rem, 1vw, 1.05rem); margin: 0; padding: 0; list-style: none; }
.desktop-nav a { display: block; padding: .65rem .3rem; font-size: clamp(.82rem, .92vw, .98rem); font-weight: 700; white-space: nowrap; transition: color .2s ease; }
.desktop-nav a:hover, .desktop-nav a:focus-visible, .desktop-nav a.is-current { color: var(--brand); }
.desktop-nav a.is-current { box-shadow: inset 0 -2px 0 var(--brand); }
.desktop-nav > ul > li { position: relative; }
.desktop-nav .nav-dropdown > a { display: flex; align-items: center; }
.desktop-nav .nav-caret { display: inline-grid; width: .92em; height: .92em; margin-left: .32rem; }
.desktop-nav .nav-caret img { grid-area: 1 / 1; width: 100%; height: 100%; object-fit: contain; transition: opacity .2s ease; }
.desktop-nav .nav-caret__up { opacity: 0; }
.desktop-nav .nav-dropdown__menu { position: absolute; top: calc(100% + .65rem); left: 50%; z-index: 45; display: grid; width: max-content; min-width: 10.8rem; padding: .42rem; border: 1px solid var(--line); border-radius: .45rem; background: #fff; box-shadow: 0 12px 30px rgba(16, 47, 18, .15); opacity: 0; pointer-events: none; transform: translate(-50%, -.45rem); transition: opacity .2s ease, transform .2s ease; }
.desktop-nav .nav-dropdown__menu::before { position: absolute; top: -.45rem; left: 50%; width: .75rem; height: .75rem; border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: #fff; content: ""; transform: translateX(-50%) rotate(45deg); }
.desktop-nav .nav-dropdown__menu a { position: relative; padding: .55rem .72rem; border-radius: .28rem; color: var(--ink); font-size: .88rem; font-weight: 600; line-height: 1.35; box-shadow: none; }
.desktop-nav .nav-dropdown__menu a:hover, .desktop-nav .nav-dropdown__menu a:focus-visible { color: #fff; background: var(--brand); }
.desktop-nav .nav-dropdown:hover .nav-dropdown__menu, .desktop-nav .nav-dropdown:focus-within .nav-dropdown__menu { opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.desktop-nav .nav-dropdown:hover .nav-caret__down, .desktop-nav .nav-dropdown:focus-within .nav-caret__down { opacity: 0; }
.desktop-nav .nav-dropdown:hover .nav-caret__up, .desktop-nav .nav-dropdown:focus-within .nav-caret__up { opacity: 1; }
.header-contact { flex: 0 0 auto; display: grid; gap: .12rem; padding-left: 1.05rem; border-left: 1px solid var(--line); color: var(--brand-dark); line-height: 1.15; }
.header-contact span { color: var(--muted); font-size: .72rem; }
.header-contact strong { font-size: clamp(.94rem, 1.2vw, 1.18rem); letter-spacing: .02em; }
.menu-trigger { display: none; align-items: center; justify-content: center; gap: .22rem; width: 3rem; min-height: 3rem; padding: .35rem; border: 0; border-radius: .4rem; color: var(--brand-dark); background: #edf5ed; cursor: pointer; }
.menu-trigger img { width: 2.5rem; height: 2.5rem; object-fit: contain; }

.drawer-backdrop { position: fixed; z-index: 80; inset: 0; background: rgba(7, 21, 8, .55); opacity: 0; transition: opacity .25s ease; }
.drawer-backdrop.is-visible { opacity: 1; }
.mobile-drawer { position: fixed; z-index: 90; top: 0; bottom: 0; left: 0; display: flex; flex-direction: column; width: min(82vw, 21rem); padding: 1.25rem; color: #fff; background: var(--brand-dark); box-shadow: 12px 0 35px rgba(0, 0, 0, .22); transform: translateX(-105%); transition: transform .28s ease; }
.mobile-drawer.is-open { transform: translateX(0); }
.mobile-drawer__head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid rgba(255,255,255,.22); font-size: 1.1rem; font-weight: 700; }
.drawer-close { width: 2.3rem; height: 2.3rem; border: 0; border-radius: 50%; color: #fff; background: rgba(255,255,255,.14); font-size: 1.7rem; line-height: 1; cursor: pointer; }
.mobile-drawer ul { margin: 1rem 0; padding: 0; list-style: none; }
.mobile-drawer li { border-bottom: 1px solid rgba(255,255,255,.14); }
.mobile-drawer li a { display: block; padding: .95rem .15rem; font-size: 1rem; }
.mobile-drawer li a.is-current { color: #c9efb9; font-weight: 700; }
.mobile-drawer__phone { margin-top: auto; padding: .8rem; border-radius: .35rem; color: var(--brand-dark); background: #fff; font-weight: 700; text-align: center; }

.site-footer { color: rgba(255,255,255,.8); background: #17371a; }
.site-footer__grid { display: grid; grid-template-columns: minmax(13rem, 1.6fr) repeat(3, minmax(8rem, 1fr)) minmax(8rem, .85fr); gap: clamp(1.5rem, 3vw, 3rem); padding-block: clamp(2.75rem, 6vw, 5rem); }
.footer-brand { display: inline-block; width: 9.75rem; margin-bottom: 1.15rem; filter: brightness(0) invert(1); }
.footer-contact h2, .footer-nav h2 { margin: 0 0 .85rem; color: #fff; font-size: 1rem; }
.footer-contact p { margin: 0 0 .65rem; color: #fff; font-size: 1.05rem; font-weight: 700; }
.footer-contact address { display: grid; gap: .45rem; font-style: normal; font-size: .88rem; line-height: 1.55; }
.footer-nav { display: grid; align-content: start; gap: .5rem; }
.footer-nav a { font-size: .88rem; line-height: 1.35; }
.site-footer a:hover, .site-footer a:focus-visible { color: #bce4a8; }
.footer-qr { margin: 0; text-align: center; }
.footer-qr img { width: 7.25rem; margin-inline: auto; padding: .25rem; background: #fff; }
.footer-qr p { margin: .65rem 0 0; font-size: .85rem; }
.site-footer__copyright { border-top: 1px solid rgba(255,255,255,.13); }
.site-footer__copyright p { margin: 0; padding-block: 1.25rem; font-size: .78rem; line-height: 1.7; text-align: center; }

@media (max-width: 70rem) { .header-contact { display: none; } .desktop-nav ul { justify-content: flex-end; } .site-footer__grid { grid-template-columns: repeat(3, 1fr); } .footer-contact { grid-column: span 2; } }
@media (max-width: 52rem) { .site-header__inner { min-height: 4.5rem; justify-content: space-between; } .desktop-nav { display: none; } .menu-trigger { display: inline-flex; } .site-footer__grid { grid-template-columns: repeat(2, 1fr); } .footer-contact { grid-column: span 1; } }
@media (max-width: 34rem) { .site-footer__grid { grid-template-columns: 1fr; } .footer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; } .footer-nav h2 { grid-column: 1 / -1; } .footer-qr { text-align: left; } .footer-qr img { margin-left: 0; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

.mobile-cta { display: none; }
@media (max-width: 46rem) { .mobile-cta { position: fixed; z-index: 35; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom)); left: max(1rem, env(safe-area-inset-left)); display: block; filter: drop-shadow(0 8px 18px rgba(11, 50, 14, .25)); } .mobile-cta a { display: block; padding: .9rem 1rem; border-radius: 99rem; color: #fff; background: var(--brand); font-weight: 800; text-align: center; } .site-footer { padding-bottom: 4.9rem; } }
.footer-nav summary { margin:0 0 .85rem; color:#fff; font-size:1rem; font-weight:700; cursor:default; list-style:none; }
.footer-nav summary::-webkit-details-marker { display:none; }
.footer-nav a { display:block; margin:.5rem 0; }
@media (max-width: 52rem) { .site-footer__grid { gap:1rem; padding-block:2.25rem; } .footer-nav { padding:.85rem 0; border-top:1px solid rgba(255,255,255,.15); } .footer-nav summary { display:flex; align-items:center; justify-content:space-between; margin:0; cursor:pointer; } .footer-nav summary::after { content:'+'; font-size:1.35rem; font-weight:400; } .footer-nav[open] summary { margin-bottom:.55rem; } .footer-nav[open] summary::after { content:'−'; } .footer-nav a { margin:.42rem 0; font-size:.85rem; } .footer-qr { display:none; } .site-footer__copyright p { padding-block:.9rem; font-size:.72rem; } .site-footer__copyright p span, .site-footer__copyright a:not([rel]) { display:none; } }

.footer-menu-grid { grid-template-columns:repeat(5,minmax(0,1fr)) minmax(7rem,.75fr); }
.footer-nav > span { display:block; margin:.5rem 0; font-size:.88rem; line-height:1.45; }
@media (max-width:70rem) { .footer-menu-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:52rem) { .footer-menu-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:34rem) { .footer-menu-grid { grid-template-columns:1fr; } }

.footer-mobile-brand { display:none; }
@media (max-width:52rem) { .footer-mobile-brand { display:block; grid-column:1 / -1; width:10.5rem; margin:0 auto .35rem; } .footer-mobile-brand img { width:100%; height:auto; } }

@media (max-width:52rem) { .footer-nav:not(.footer-nav--contact)[open] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:1rem; } .footer-nav:not(.footer-nav--contact)[open] summary { grid-column:1 / -1; } .footer-nav:not(.footer-nav--contact)[open] a { min-width:0; } }
