@font-face{font-family:Myriad;src:local("Myriad Pro");font-display:swap}
:root{--ink:#102b21;--muted:#50665d;--green:#087c42;--deep:#0b3026;--cream:#f3f7f1;--line:#d9e5dc;--lime:#dbf5a7;--red:#d82922;--white:#fff}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;font:16px/1.55 Myriad,"Segoe UI",Arial,sans-serif;color:var(--ink);background:#fff}
html:lang(zh) body{font-family:"Microsoft YaHei","Noto Sans CJK SC",sans-serif}html:lang(ko) body{font-family:"Malgun Gothic","Noto Sans CJK KR",sans-serif}html:lang(ja) body{font-family:"Yu Gothic","Noto Sans CJK JP",sans-serif}
a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:4px}
button,input,select,textarea{font:inherit}
button,select,summary{cursor:pointer}
button:disabled{opacity:.6;cursor:wait}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #43a467;outline-offset:3px}
[hidden]{display:none!important}
img{display:block;max-width:100%}
p,h1,h2,h3{margin:0}
h1,h2,h3{line-height:1.12;text-wrap:balance}
h2{font-size:clamp(1.9rem,3.4vw,3.2rem);letter-spacing:-.048em;font-weight:720}
h3{font-size:1.22rem;letter-spacing:-.027em}
.wrap{max-width:1280px;width:calc(100% - 96px);margin-inline:auto}
.skip{position:fixed;z-index:90;top:-100px;left:12px;background:white;padding:12px}.skip:focus{top:10px}
.header{position:sticky;z-index:15;top:0;background:#fff;border-bottom:1px solid #e7eee9;border-top:3px solid #0c8842}
.header-inner{height:66px;display:flex;align-items:center;justify-content:space-between;gap:22px}
.logo{flex:none}.logo img{width:165px;height:auto}
.nav{display:flex;align-items:center;gap:clamp(13px,2.3vw,35px);font-size:.87rem;font-weight:650;line-height:1.2}
.header-end{display:flex;align-items:center;gap:12px}
.language{border:1px solid var(--line);border-radius:5px;background:white;padding:7px;color:var(--ink);max-width:106px;font-size:.82rem;height:40px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;padding:0 19px;border-radius:5px;border:1px solid transparent;background:var(--green);color:#fff;font-weight:700;text-decoration:none;font-size:.9rem;line-height:1.2}
.button:hover{background:#086735;text-decoration:none}
.button.lime{color:#143027;background:var(--lime)}.button.lime:hover{background:#edf9c9}
.button.ghost{border-color:#ffffff70;color:#fff;background:#12352b60}.button.ghost:hover{background:#ffffff27}
.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;flex:none}
.hero{position:relative;min-height:530px;isolation:isolate;background:#14352c;color:#fff;display:grid;align-items:center;overflow:hidden}
.hero-image{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 56%}
.hero:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#09281feF 0%,#0d2c21e5 25%,#102b20a0 55%,#102c1d1b 100%),linear-gradient(0deg,#0b2e2370,transparent 30%)}
.hero-inner{padding:72px 0 89px;position:relative}
.kicker{font-size:.72rem;font-weight:780;letter-spacing:.15em;text-transform:uppercase;display:flex;align-items:center;gap:9px;color:#176b42;margin-bottom:14px}
.kicker:before{content:"";width:18px;height:2px;background:currentColor;display:inline-block;flex:none}
.hero .kicker{color:var(--lime)}
.hero h1{white-space:pre-line;font-size:clamp(3.05rem,6.2vw,6rem);line-height:.99;letter-spacing:-.067em;max-width:880px}
.hero p.lead{color:#ebf3ee;max-width:560px;margin:21px 0 27px;font-size:clamp(1rem,1.55vw,1.22rem)}
.actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-note{position:absolute;bottom:19px;right:max(48px,calc((100vw - 1280px)/2));font-size:.69rem;letter-spacing:.13em;color:#fff;font-weight:700;background:#102e23c7;border:1px solid #ffffff36;padding:6px 9px;border-radius:3px}
.advisory{background:var(--cream);padding:49px 0 64px;border-bottom:1px solid var(--line)}
.advisory-intro{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:24px;margin-bottom:24px}
.advisory-intro p,.section-copy{color:var(--muted);font-size:1rem;max-width:490px}
.advisory-intro .kicker{margin-bottom:8px}.advisory-intro h2{font-size:clamp(1.78rem,3.2vw,2.9rem)}
.filter-box{border:1px solid var(--line);border-radius:9px;padding:16px;background:#fff;display:grid;grid-template-columns:1fr 1fr 1.25fr auto;align-items:end;gap:12px}
label{font-size:.82rem;font-weight:700;display:grid;gap:6px;min-width:0}
input,select,textarea{color:var(--ink);width:100%;min-height:44px;padding:9px 11px;border:1px solid #c9d9ce;border-radius:5px;background:#fff}
input::placeholder,textarea::placeholder{color:#63746a;opacity:1}
.filter-box .button{min-height:44px}
.filter-note{font-size:.78rem;color:var(--muted);margin:10px 0 27px;display:flex;gap:8px 20px;justify-content:space-between;flex-wrap:wrap}
.inline-button{padding:0;background:none;border:none;color:#176640;font-size:inherit;text-decoration:underline;text-underline-offset:3px}
.results-title{display:flex;align-items:center;gap:11px;margin-bottom:13px}
.results-title h3{font-size:1.12rem;outline:none}.count{font-size:.68rem;font-weight:800;padding:2px 7px;border:1px solid #c8d9cd;background:#e7f0e8;border-radius:10px}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.property{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);background:#fff;border-radius:8px;position:relative;min-width:0;transition:box-shadow .18s ease}
.property:hover{box-shadow:0 8px 24px #102b2113}
.property-picture{aspect-ratio:2.25;overflow:hidden;background:linear-gradient(125deg,#123e2e,#227049);position:relative}.property-picture img{height:100%;width:100%;object-fit:cover}
.property-picture.no-image img{display:none}.property-picture.no-image:before{content:"P";position:absolute;inset:0;display:grid;place-items:center;color:#e3f4cc66;font-size:4rem;font-weight:800}
.property-info{padding:15px 17px 16px;flex:1;display:flex;flex-direction:column}
.card-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:.69rem;font-weight:750;color:#246542;margin-bottom:8px}
.card-meta span:first-child{padding:2px 7px;border-radius:3px;background:#eaf3ec}.card-meta span:empty{display:none}
.property h3{margin-bottom:8px}
.property p{font-size:.88rem;color:var(--muted);margin-bottom:12px}
.text-link{display:inline-flex;gap:7px;align-items:center;color:#116b3c;font-weight:750;font-size:.86rem;margin-top:auto;width:fit-content;min-height:30px}
.text-link .icon{width:16px;height:16px}
.empty,.revisit{border:1px solid var(--line);border-radius:6px;background:white;padding:15px;display:flex;gap:10px 15px;flex-wrap:wrap;align-items:center}
.revisit{margin-top:18px}.revisit a{color:var(--green);font-weight:700}
.section{padding:72px 0}
.section-header{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px}
.services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden}
.service{padding:22px;display:flex;flex-direction:column;min-width:0}.service+.service{border-left:1px solid var(--line)}
.service-icon{background:#eaf4ea;color:var(--green);border-radius:8px;display:grid;place-items:center;width:42px;height:42px;margin-bottom:16px}
.service h3{margin-bottom:7px}.service p{color:var(--muted);font-size:.9rem;margin-bottom:9px}
.news{background:#f7faf7;border-top:1px solid var(--line)}.news .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.contact{background:#0c3025;color:#fff;padding:62px 0}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,7vw,105px);align-items:center}
.contact .kicker{color:var(--lime)}
.contact p{color:#d7e7df;margin:13px 0}
.contact-address{display:flex;gap:9px;align-items:center;margin:10px 0;font-weight:650;width:fit-content;color:#fff}
.lead-form{background:#fff;color:var(--ink);border-radius:9px;padding:24px;display:grid;gap:11px}
.lead-form textarea{resize:vertical;min-height:105px}.lead-form button{justify-self:start}
.lead-form p{margin:0;font-size:.78rem;color:var(--muted)}
.lead-form p:empty{display:none}.lead-form [data-state=error]{color:#a22219}.lead-form [data-state=success]{color:#136237}
.honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.footer{background:#08261e;color:#cdded6;font-size:.77rem;border-top:1px solid #ffffff22}
.footer-inner{padding:13px 0;display:flex;justify-content:space-between;gap:8px 18px;flex-wrap:wrap}
.footer a{margin-left:12px}
dialog{border:0;border-radius:10px;padding:13px;background:#102b21;color:#fff;width:min(860px,calc(100% - 28px))}
dialog::backdrop{background:#061c16ce}dialog iframe{width:100%;border:0;aspect-ratio:16/9;display:block;background:#0a1710;margin-top:8px}dialog form{text-align:right}
.detail-hero{background:var(--cream);padding:54px 0;border-bottom:1px solid var(--line)}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:center}
.detail-hero h1{font-size:clamp(2.4rem,5vw,4.3rem);letter-spacing:-.06em;margin:12px 0}
.detail-hero p{color:var(--muted);max-width:600px;margin-bottom:17px}
.detail-hero img{border-radius:10px;width:100%;aspect-ratio:1.7;object-fit:cover}
.prose{max-width:760px}.prose p{margin-bottom:17px}.prose a{color:var(--green);font-weight:700}
.admin{max-width:1050px;margin:auto;padding:32px 22px 65px}
.admin h1{font-size:2.25rem;margin:14px 0}.admin h2{font-size:1.4rem;margin:17px 0}
.admin nav,.admin-controls,.admin-fields{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.admin nav a,.admin a{color:var(--green);text-decoration:underline}
.admin-panel{background:#f4f8f3;border:1px solid var(--line);border-radius:8px;padding:20px;margin:18px 0}
.admin-panel form,.admin form.editor{display:grid;gap:12px}.admin-fields>label{flex:1 1 190px}
.admin-panel input[type=file]{max-width:100%}.admin-panel button{justify-self:start}
.admin textarea{min-height:95px;resize:vertical}
.admin table{border-collapse:collapse;width:100%}.admin th,.admin td{padding:9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}.admin th{font-size:.82rem}.table-wrap{overflow:auto}
.admin .message{white-space:pre-wrap;max-width:54ch}.admin .admin-media{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.admin-media img{width:100%;height:100px;object-fit:contain;background:#fff}.admin-media input{font-size:.75rem}
@media(max-width:1030px){.wrap{width:calc(100% - 52px)}.nav{gap:12px}.header-inner{gap:13px}.hero-note{right:26px}.header-end{gap:7px}.logo img{width:138px}}
@media(max-width:790px){html{scroll-padding-top:110px}.header-inner{height:auto;min-height:57px;display:grid;grid-template-columns:1fr auto;gap:0 12px;padding:8px 0 4px}.nav{grid-row:2;grid-column:1/-1;overflow:auto;gap:17px;white-space:nowrap;scrollbar-width:thin;padding:3px 0}.nav a{min-height:36px;display:grid;align-items:center}.header-end{grid-column:2;grid-row:1}.header-end .button{min-height:38px;padding:0 9px}.header-end .button .icon{display:none}.language{height:38px}.hero{min-height:450px}.hero:before{background:linear-gradient(90deg,#0a2c22ed,#0a2c2275),linear-gradient(0deg,#0a2819bb,transparent)}.advisory-intro{display:block}.advisory-intro p,.section-copy{margin-top:10px}.filter-box{grid-template-columns:1fr 1fr}.grid{gap:11px}.services{grid-template-columns:1fr 1fr}.service:nth-child(3){border-left:0}.service:nth-child(n+3){border-top:1px solid var(--line)}.section{padding:53px 0}.contact-grid{gap:24px}.hero h1{letter-spacing:-.054em}.section-header{display:block}}
@media(max-width:540px){.wrap{width:calc(100% - 32px)}.hero-note{right:16px}.hero-inner{padding:52px 0 67px}.hero{min-height:415px}.hero h1{font-size:clamp(2.45rem,10vw,3.2rem)}.hero-image{object-position:58% center}.hero p.lead{margin:15px 0 21px}.advisory{padding:34px 0 39px}.filter-box{grid-template-columns:1fr;gap:9px;padding:12px}.filter-box .button{justify-self:start}.filter-note{margin-bottom:18px}.grid,.news .grid,.contact-grid,.detail-grid{grid-template-columns:1fr}.property-picture{aspect-ratio:2.4}.service{padding:14px}.section,.contact{padding:43px 0}.lead-form{padding:16px}.detail-hero{padding:30px 0}.footer a{margin:0 10px 0 0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.channel-qr{margin:10px 0 0;width:fit-content}.channel-qr img{background:#fff;padding:4px;border-radius:4px}.channel-qr figcaption{font-size:.8rem;margin-top:4px}

.header-end .button{white-space:nowrap}
.project-catalog{background:var(--cream);border-block:1px solid var(--line);padding:68px 0}
.portfolio-group+.portfolio-group{margin-top:42px;padding-top:29px;border-top:1px solid var(--line)}
.portfolio-header{display:flex;justify-content:space-between;align-items:center;gap:10px 15px;flex-wrap:wrap;margin-bottom:14px}
.portfolio-header h3{font-size:clamp(1.4rem,2.5vw,2rem)}
.portfolio-header .text-link{margin:0}
.property h3 a:hover{color:var(--green)}
.advisory-process{background:#fff}
.process-steps{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0;margin:0}
.process-steps li{border:1px solid var(--line);border-radius:7px;padding:18px;background:#f9fbf8}
.process-steps span{color:var(--green);font-weight:800;letter-spacing:.08em;display:block;margin-bottom:9px;font-size:.8rem}
.process-steps h3{margin-bottom:7px}
.process-steps p{color:var(--muted);font-size:.88rem}
.company{background:#123d30;color:#fff;border-top:1px solid #ffffff30;padding:32px 0}
.company-grid{display:grid;grid-template-columns:1fr 1.5fr;align-items:start;gap:26px}
.company .kicker{color:var(--lime);margin-bottom:7px}
.company h2{font-size:clamp(1.3rem,2.8vw,2.15rem)}
.company dl{display:grid;gap:6px;margin:0;color:#e7f1e9}
.company dl div{display:grid;grid-template-columns:minmax(110px,1fr) 2.3fr;gap:10px}
.company dt{font-weight:750}.company dd{margin:0}
.detail-hero img{object-fit:contain;background:#e6eee7}
.prose h2,.project-gallery h2{font-size:clamp(1.5rem,2.6vw,2.35rem);margin:0 0 14px}
.prose h3{margin:20px 0 10px}
.project-facts{display:grid;gap:0;margin:0 0 16px}
.project-facts div{display:grid;grid-template-columns:minmax(115px,1fr) 2.5fr;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.project-facts dt{font-weight:700}.project-facts dd{margin:0;color:var(--muted)}
.project-gallery{margin:35px 0}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:12px}
.gallery-grid a{display:block;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--cream)}
.gallery-grid img{width:100%;height:auto;aspect-ratio:1.55;object-fit:contain}
#gallery-dialog img{margin:10px auto;max-height:66vh;width:auto;object-fit:contain}
.gallery-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.84rem}
.gallery-controls .button{padding:0 10px}
@media(max-width:790px){.project-catalog{padding:53px 0}.process-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.project-catalog{padding:42px 0}.company-grid,.company dl div{grid-template-columns:1fr;gap:5px}.company dl{gap:11px}.company h2{margin-bottom:12px}.process-steps{gap:8px}.process-steps li{padding:12px}.process-steps h3{font-size:1rem}.project-facts div{grid-template-columns:1fr;gap:3px}.gallery-controls .button{font-size:.75rem}.portfolio-group+.portfolio-group{margin-top:28px}}
.gallery-note{margin:-5px 0 12px;color:var(--muted);font-size:.85rem}
.gallery-note a{color:var(--green);text-decoration:underline}
.archive-banner{padding:55px 0 46px;background:var(--cream);border-bottom:1px solid var(--line)}
.archive-banner h1{font-size:clamp(2.4rem,5.7vw,4.6rem);letter-spacing:-.055em;margin:8px 0 13px}
.archive-banner p:last-child{max-width:680px;color:var(--muted)}
.archive-main{padding-top:28px}
.archive-tabs,.archive-paging{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap}
.archive-tabs{margin-bottom:18px}
.archive-tabs a{border:1px solid var(--line);border-radius:5px;padding:8px 12px;font-weight:700;font-size:.92rem}
.archive-tabs a[aria-current=page]{background:var(--green);color:white;border-color:var(--green)}
.archive-tabs span{margin-left:6px;font-size:.8rem;opacity:.85}
.archive-filter.compact{grid-template-columns:minmax(190px,520px) auto;justify-content:start}
.archive-result{margin:18px 0 13px;font-weight:700;color:var(--muted)}
.archive-paging{justify-content:center;margin-top:24px}
.language-badge{color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:1px 5px}
.video-picture.no-image:before{display:none}.video-picture>.icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;color:white}
.source-details{padding:10px 12px;background:var(--cream);margin-bottom:15px}.source-details summary{font-weight:700}.source-details p{margin-top:12px}
@media(max-width:540px){.archive-filter.compact{grid-template-columns:1fr}}
.fraud-notice{border-top:1px solid #e8d8ba;background:#fff8e9;color:#533813}
.fraud-inner{padding:13px 0;display:flex;gap:6px 13px;align-items:baseline;flex-wrap:wrap;font-size:.86rem}
.fraud-inner strong{font-weight:780}.fraud-inner a{text-decoration:underline;font-weight:700}
.admin .publish-check{display:flex;gap:8px;align-items:flex-start;padding:10px 0;color:#624314}
.admin .publish-check input{width:17px;min-height:17px;margin:3px 0 0;flex:none}
