: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: 100%; 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: flex; align-items: center; gap: .55rem; padding-left: 1.05rem; border-left: 1px solid var(--line); color: var(--brand-dark); line-height: 1.15; transition: color .2s ease; }
.header-contact__icon { width: 2.25rem; height: 2.25rem; object-fit: contain; transition: transform .2s ease; }
.header-contact__text { display: grid; gap: .12rem; }
.header-contact__text span { color: var(--muted); font-size: .72rem; }
.header-contact strong { font-size: clamp(.94rem, 1.2vw, 1.18rem); letter-spacing: .02em; }
.header-contact:hover, .header-contact:focus-visible { color: var(--brand); }
.header-contact:hover .header-contact__icon, .header-contact:focus-visible .header-contact__icon { transform: scale(1.08); }
.header-booking { flex: 0 0 auto; padding: .72rem 1rem; border: 0; border-radius: .28rem; color: #FFFFFF; background: #2f7d32; font: inherit; font-size: .88rem; font-weight: 700; line-height: 1.2; white-space: nowrap; cursor: pointer; transition: background-color .2s ease, transform .2s ease; }
.header-booking:hover, .header-booking:focus-visible { background: #246328; transform: translateY(-1px); }
.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, .header-booking { 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; } }

.site-mobile-cta { display:none; }
.booking-modal { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:12px; background:rgba(0,0,0,.55); }
.booking-modal[hidden] { display:none; }
.booking-modal__content { width:min(460px,calc(100% - 24px)); height:min(586px,calc(100vh - 24px)); height:min(586px,calc(100dvh - 24px)); display:flex; flex-direction:column; overflow:hidden; border-radius:12px; background:#fff; box-shadow:0 20px 60px rgba(0,0,0,.3); }
.booking-modal__header { height:64px; flex:0 0 64px; padding:0 24px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #e5e7eb; box-sizing:border-box; }
.booking-modal__header h2 { margin:0; color:#166534; font-size:20px; }
.booking-modal__close { width:40px; height:40px; padding:0; border:0; background:transparent; color:#4b5563; font-size:30px; line-height:1; cursor:pointer; }
.booking-modal__sla { flex:0 0 auto; margin:0; padding:10px 24px; background:#f0fdf4; color:#166534; font-size:14px; line-height:1.5; }
.booking-modal iframe { display:block; width:100%; height:auto; min-height:0; flex:1 1 auto; border:0; }
.wechat-modal__content { height:auto; max-width:380px; }
.wechat-modal__body { padding:20px 24px 28px; text-align:center; }
.wechat-modal__body p { margin:0; color:#4b5563; font-size:14px; line-height:1.7; }
.wechat-modal__body img { display:block; width:min(280px,100%); height:auto; margin:16px auto 0; }
@media (max-width:46rem) {
  .page-home2 .hero .actions .button.light { display:none; }
  .site-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:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; filter:drop-shadow(0 8px 18px rgba(11,50,14,.25)); }
  .site-mobile-cta a { display:flex; align-items:center; justify-content:center; padding:.9rem .35rem; border-radius:19px; color:#fff; background:var(--brand); font-size:clamp(.75rem,3.5vw,.9rem); font-weight:800; text-align:center; white-space:nowrap; }
  .site-footer { padding-bottom:4.9rem; }
  .booking-modal { align-items:flex-end; padding:8px 8px 0; }
  .booking-modal__content { width:100%; height:min(586px,calc(100vh - 8px)); height:min(586px,calc(100dvh - 8px)); border-radius:10px 10px 0 0; animation:booking-slide-up .25s ease-out; }
  .wechat-modal__content { height:auto; max-width:100%; }
  .booking-modal__header { height:56px; flex-basis:56px; padding:0 16px; }
  .booking-modal__header h2 { font-size:18px; }
  .booking-modal__sla { padding:9px 16px; font-size:13px; }
  .wechat-modal__body { padding:18px 20px max(24px,env(safe-area-inset-bottom)); }
}
@keyframes booking-slide-up { from { transform:translateY(100%); } }
.mobile-cta { display:none !important; }

