
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600&display=swap');
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:#263a31;background:#f8f7f2;overflow-x:hidden;overflow-anchor:none;font-family:'DM Sans','Noto Sans SC',sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{display:block}

.top{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;background:#faf9f5;position:sticky;top:0;z-index:60;border-bottom:1px solid #ecece4}
.brand{display:flex;align-items:center;gap:12px}
.mark{font-family:'Playfair Display',serif;font-size:30px;letter-spacing:-2px}
.brand small{border-left:1px solid #b4bcb4;padding-left:12px;font-size:9px;letter-spacing:.15em;line-height:1.6;color:#4a5d51}
.nav{display:flex;align-items:center;gap:30px;font-size:13px}
.lang{border:1px solid #d5dbd2;background:none;color:#34493d;padding:7px 12px;font-size:12px}
.navcta,.btn{background:#304b3b;color:#fff;padding:14px 22px;border:1px solid #304b3b;font-size:13px;display:inline-block}

.hero{height:640px;position:relative;background:linear-gradient(90deg,rgba(13,30,22,.86),rgba(13,30,22,.52) 45%,rgba(13,30,24,.10) 80%),url('hero.jpg') center 46%/cover}
.hero-content{position:absolute;left:9%;right:9%;top:50%;transform:translateY(-48%);max-width:760px;color:#fff}
.eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:700}
.hero h1{font-family:'Playfair Display','Noto Sans SC',serif;font-weight:400;font-size:clamp(38px,4.6vw,64px);line-height:1.22;margin:22px 0}
.hero p{font-size:16px;line-height:1.9;max-width:540px;color:#eef1e8}
.hero .btn{background:#f6f5ed;color:#263a31;border-color:#f6f5ed;margin-top:18px}
.hero-index{position:absolute;top:30px;right:7%;color:#fff;font-size:11px;letter-spacing:.2em;opacity:.8}
.hero-stats{position:absolute;bottom:34px;left:9%;display:flex;gap:42px;color:#fff}
.hero-stats div span{display:block;font-family:'Playfair Display',serif;font-size:30px;line-height:1}
.hero-stats div small{font-size:10px;letter-spacing:.16em;opacity:.8}

.notice{padding:15px 6%;background:#ebece3;color:#536357;font-size:12px;text-align:center;line-height:1.7}
.section{padding:96px 7%}
.heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:30px;flex-wrap:wrap}
.heading h2,.about h2,.contact h2{font-family:'Playfair Display','Noto Sans SC',serif;font-size:clamp(30px,3vw,44px);font-weight:400;margin:12px 0}
.muted{color:#758077;font-size:14px;line-height:1.8}

.filters{display:flex;gap:28px;flex-wrap:wrap;margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid #e4e7df}
.fgroup{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fgroup>span{font-size:11px;letter-spacing:.14em;color:#8b968c;margin-right:4px}
.filter{padding:9px 16px;background:transparent;border:1px solid #d5dbd2;color:#536358;font-size:12px}
.filter.active{background:#304b3b;color:#fff;border-color:#304b3b}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 24px}
.card{background:#fff;display:flex;flex-direction:column;cursor:pointer;transition:transform .35s ease,box-shadow .35s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -22px rgba(38,58,49,.45)}
.photo{position:relative;overflow:hidden;background:#e8eae3;cursor:pointer}
.photo img{width:100%;height:250px;object-fit:cover;transition:transform .8s ease}
.card:hover .photo img{transform:scale(1.04)}
.badge{position:absolute;top:14px;left:14px;background:rgba(248,247,241,.94);padding:7px 10px;font-size:10px;letter-spacing:.08em;color:#2f4a3a;font-weight:600;white-space:nowrap}
.body{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.city{font-size:10px;letter-spacing:.16em;color:#849085;text-transform:uppercase}
.body h3{font-family:'Playfair Display','Noto Sans SC',serif;font-size:20px;font-weight:500;margin:9px 0 4px;line-height:1.35}
.addr{font-size:12px;color:#8a948b;margin-bottom:14px}
.price{font-family:'Playfair Display',serif;font-size:23px;color:#2c4738;margin-bottom:12px}
.price small{font-size:11px;font-family:'DM Sans',sans-serif;color:#8a948b;letter-spacing:.06em;margin-left:4px}
.specs{display:flex;gap:14px;font-size:12px;color:#5f6f63;border-top:1px solid #eceee9;padding-top:14px;margin-top:auto}
.specs b{font-weight:600;color:#2c4738}
.details{display:flex;justify-content:space-between;align-items:center;margin-top:16px}
.details button{border:0;background:transparent;color:#304b3b;padding:0;font-weight:700;font-size:12px;border-bottom:1px solid #304b3b;padding-bottom:3px}
.empty{grid-column:1/-1;padding:70px 0;text-align:center;color:#8a948b;font-size:14px}

.about{background:#e9ece4;display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center}
.about img{width:100%;height:440px;object-fit:cover}
.about p{max-width:500px;line-height:2;color:#647369}
.about .line{width:50px;height:1px;background:#708877;margin:26px 0}

.contact{background:#304b3b;color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:7%}
.contact p{line-height:1.9;color:#c8d2c9}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-content:start}
.form label{display:flex;flex-direction:column;gap:8px;font-size:11px;letter-spacing:.12em;color:#a9bcae}
.form input,.form select,.form textarea{background:transparent;border:1px solid #5b7061;color:#fff;padding:12px;font-size:14px;outline:none}
.form input:focus,.form select:focus,.form textarea:focus{border-color:#a9bcae}
.form .full{grid-column:1/-1}
.form textarea{min-height:110px;resize:vertical}
.form select option{color:#263a31}
.form button{grid-column:1/-1;background:#f6f5ed;color:#263a31;border:0;padding:15px;font-size:13px;font-weight:600}
.formnote{grid-column:1/-1;font-size:11px;color:#9db0a2;line-height:1.7}

.footer{padding:34px 6%;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#7d8a80;background:#faf9f5;border-top:1px solid #ecece4;flex-wrap:wrap}

dialog{border:0;padding:0;max-width:1000px;width:92vw;overflow-anchor:none;background:#f8f7f2;color:#263a31;max-height:90vh;display:none;overflow-y:auto;overflow-x:hidden;position:fixed;inset:0;margin:auto;outline:0;box-shadow:0 40px 90px -30px rgba(0,0,0,.5);-webkit-overflow-scrolling:touch}
dialog[open]{display:block}
dialog:focus,dialog:focus-visible{outline:0}
dialog::backdrop{background:rgba(15,30,23,.72)}
.gbar{position:sticky;top:0;height:0;z-index:8;display:flex;justify-content:flex-end}
.gwrap{position:relative;flex:none;background:#1b2a22}
.gmain{width:100%;height:400px;object-fit:cover;display:block}
.gnav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;background:rgba(248,247,241,.92);color:#2c4738;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:5}
.gnav.prev{left:14px}.gnav.next{right:14px}
.gnav:focus,.gnav:focus-visible,.thumbs img:focus,.close:focus,.close:focus-visible{outline:0}
.gcount{position:absolute;bottom:12px;right:14px;background:rgba(0,0,0,.55);color:#fff;padding:4px 10px;font-size:11px;letter-spacing:.08em;z-index:5}
.thumbs{display:flex;gap:6px;overflow-x:auto;padding:10px 16px;background:#f0efe8;scrollbar-width:thin}
.thumbs img{width:78px;height:55px;object-fit:cover;cursor:pointer;opacity:.5;border:2px solid transparent;flex:none}
.thumbs img.active{opacity:1;border-color:#304b3b}
.intro h4{font-size:12px;letter-spacing:.14em;color:#304b3b;margin:24px 0 8px;font-weight:700}
.intro p{margin:0;font-size:15px;line-height:1.98;color:#4f6155}
.srcbox{margin-top:32px;border-top:1px solid #e4e7df;padding-top:22px}
.srcbox summary{cursor:pointer;font-size:11px;letter-spacing:.12em;color:#8b968c;list-style:none;text-transform:uppercase;display:flex;align-items:center;gap:8px}
.srcbox summary:after{content:'▼';font-size:9px;transform:translateY(1px)}
.srcbox[open] summary{color:#304b3b}
.srcbox[open] summary:after{content:'▲'}
.srcbox summary::-webkit-details-marker{display:none}
.srcbox p{margin:16px 0 0;font-size:14.5px;line-height:2;color:#4f6155;background:#f2f1ea;padding:20px 22px;border-left:3px solid #cfd6cd}
.srcbox p+p{background:none;padding:0;border:0;font-size:12px;color:#8b968c;line-height:1.8}
.modalbody{padding:34px 40px 44px}

.close{position:relative;top:14px;right:14px;z-index:9;border:0;background:rgba(248,247,241,.94);width:36px;height:36px;font-size:20px;line-height:1;color:#2c4738;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.modalbody h2{font-family:'Playfair Display','Noto Sans SC',serif;font-size:30px;font-weight:400;margin:10px 0 6px}
.modaladdr{font-size:13px;color:#7d8a80;margin-bottom:18px}
.modalprice{font-family:'Playfair Display',serif;font-size:32px;color:#2c4738;margin-bottom:22px}
.modalprice small{font-size:12px;font-family:'DM Sans',sans-serif;color:#8a948b;margin-left:6px}
.datagrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#e4e7df;border:1px solid #e4e7df;margin-bottom:26px}
.datagrid div{background:#f8f7f2;padding:14px 16px}
.datagrid span{display:block;font-size:10px;letter-spacing:.12em;color:#8b968c;margin-bottom:6px}
.datagrid b{font-size:15px;font-weight:600;color:#2c4738}
.modaldesc{font-size:14px;line-height:2;color:#55665b;max-width:760px}
.modalfoot{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:26px;padding-top:20px;border-top:1px solid #e4e7df;flex-wrap:wrap}
.modalmeta{font-size:11px;color:#8b968c;line-height:1.7}
.modalfoot .btn{background:#304b3b;border-color:#304b3b;color:#fff}

@media(max-width:1000px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .about,.contact{grid-template-columns:1fr}
  .about img{height:320px}
  .hero{height:560px}
  .hero-content{left:7%;right:7%}
  .hero-index{font-size:9px;letter-spacing:.16em}
  .hero-stats{display:none}
  .datagrid{grid-template-columns:repeat(2,1fr)}
  .gmain{height:250px}
  .gnav{width:36px;height:36px;font-size:18px}
  .modalbody{padding:26px 22px 30px}
}
@media(max-width:640px){
  .grid{grid-template-columns:1fr}
  .top{height:64px;padding:0 16px}
  .nav{gap:10px}
  .nav a:not(.navcta){display:none}
  .navcta{padding:11px 14px;font-size:12px}
  .mark{font-size:26px}
  .brand{gap:9px}
  .brand small{font-size:8px;padding-left:9px}
  .lang{padding:6px 9px;font-size:11px}
  .section{padding:64px 6%}
  .hero h1{font-size:32px}
  .hero p{font-size:14px;line-height:1.8}
  .hero{height:540px;background:linear-gradient(180deg,rgba(13,30,22,.74),rgba(13,30,22,.56)),url('hero.jpg') center 46%/cover}
  .form{grid-template-columns:1fr}
}

/* ===== 内容页 / 政策页 ===== */
.pagehead{padding:110px 7% 56px;background:#f1f0e8;border-bottom:1px solid #e4e7df}
.pagehead h1{font-family:'Playfair Display','Noto Sans SC',serif;font-size:clamp(30px,3.4vw,46px);font-weight:400;margin:14px 0 16px;line-height:1.2}
.pagehead p{max-width:760px;color:#5f6f63;line-height:1.95;font-size:15px;margin:0}
.breadcrumb{font-size:11px;letter-spacing:.12em;color:#8b968c;margin-bottom:8px}
.breadcrumb a{border-bottom:1px solid #cfd6cd}
.prose-wrap{max-width:1000px;margin:0 auto;padding:64px 5% 96px}
.prose h2{font-family:'Playfair Display','Noto Sans SC',serif;font-size:21px;font-weight:500;margin:46px 0 12px;padding-bottom:10px;border-bottom:1px solid #e4e7df}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:14px;margin:26px 0 8px;color:#2c4738;letter-spacing:.02em}
.prose p,.prose li{font-size:14px;line-height:1.95;color:#55665b;margin:0 0 12px}
.prose ul,.prose ol{padding-left:22px;margin:0 0 16px}
.prose li{margin-bottom:6px}
.prose .en{font-size:14px;line-height:1.95;color:#4f6155;margin:10px 0 24px;padding:16px 20px;background:#f2f1ea;border-left:3px solid #cfd6cd;position:relative}
.prose .en:before{content:'EN';position:absolute;top:-9px;left:16px;background:#304b3b;color:#fff;font-size:9px;letter-spacing:.14em;padding:2px 7px}
.prose table{width:100%;border-collapse:collapse;margin:18px 0 24px;font-size:13px}
.prose th,.prose td{border:1px solid #e4e7df;padding:10px 12px;text-align:left;vertical-align:top;line-height:1.7}
.prose th{background:#f2f1ea;font-weight:600;color:#2c4738}
.prose .note{background:#f7f6f0;border-left:3px solid #304b3b;padding:16px 20px;font-size:13px;line-height:1.9;color:#55665b;margin:22px 0}
.toc{background:#fff;border:1px solid #e4e7df;padding:22px 26px;margin-bottom:34px}
.toc div{font-size:11px;letter-spacing:.14em;color:#8b968c;margin-bottom:10px}
.toc a{display:block;font-size:13px;color:#304b3b;padding:5px 0;border-bottom:1px dashed #eef0ea}

/* ===== 团队 ===== */
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin:10px -6% 40px}
.member{display:flex;gap:18px;background:#fff;padding:24px;border:1px solid #eef0ea;align-items:flex-start}
.member img{width:96px;height:124px;border-radius:2px;flex:none;background:#e8eae3;object-fit:cover;box-shadow:0 6px 18px -10px rgba(38,58,49,.5)}
.member h3{margin:0 0 4px;font-family:'Playfair Display','Noto Sans SC',serif;font-size:20px;font-weight:500;border:0;padding:0}
.member .role{font-size:10px;letter-spacing:.14em;color:#849085;text-transform:uppercase;margin-bottom:10px}
.member p{font-size:13.5px;line-height:1.8;color:#5f6f63;margin:0 0 10px}
.member .tags{display:flex;gap:6px;flex-wrap:wrap}
.member .tags span{font-size:10px;border:1px solid #d5dbd2;padding:4px 8px;color:#536358;white-space:nowrap}
.placeholder-flag{display:inline-block;font-size:10px;background:#f4ecdc;color:#8a6d3b;padding:3px 7px;margin-left:6px;vertical-align:middle}

/* ===== 服务流程 ===== */
.steps{counter-reset:s;margin:20px 0 34px}
.steps li{list-style:none;position:relative;padding-left:46px;margin-bottom:22px;font-size:14px;line-height:1.9;color:#55665b}
.steps li:before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:#304b3b;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;font-family:'DM Sans',sans-serif}
.steps b{display:block;color:#2c4738;font-size:14px;margin-bottom:2px}

/* ===== 页脚扩展 ===== */
.footer{display:block;padding:44px 6% 30px}
.footcols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px;max-width:1180px;margin:0 auto 28px}
.footcols h4{font-size:10px;letter-spacing:.16em;color:#8b968c;margin:0 0 12px;font-weight:700;text-transform:uppercase}
.footcols a,.footcols span{display:block;font-size:12px;color:#5f6f63;line-height:2}
.footcols a:hover{color:#2c4738}
.footbase{border-top:1px solid #e4e7df;padding-top:20px;max-width:1180px;margin:0 auto;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:11px;color:#8b968c;line-height:1.8}
.eho{display:inline-flex;align-items:center;gap:8px}
.eho b{font-size:14px;letter-spacing:-.5px;color:#2c4738}
@media(max-width:900px){.team-grid{grid-template-columns:1fr;margin-left:0;margin-right:0}.footcols{grid-template-columns:1fr 1fr}}
