:root{--bg:#faf7f2;--ink:#2b2622;--muted:#7a6f66;--accent:#8a5a3b;--line:#e6ddd2;--band:#f1ebe2}
*{box-sizing:border-box}body{margin:0;font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--accent)}.wrap{max-width:1140px;margin:0 auto;padding:0 20px}section.wrap{padding:48px 20px}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.25}h1{font-size:clamp(2rem,4vw,3rem);margin:.2em 0}
header.site{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:9}.bar{display:flex;align-items:center;justify-content:space-between;min-height:68px}
.logo{text-decoration:none;color:var(--ink);font:600 1.3rem Georgia,serif}.logo span{display:block;font:12px system-ui;color:var(--muted)}
nav a{margin-left:18px;text-decoration:none;color:var(--ink);font-size:.93rem}nav a.active,nav a:hover{color:var(--accent);border-bottom:2px solid var(--accent)}
.menu{display:none;background:none;border:0;font-size:1.6rem}
.hero{background:linear-gradient(135deg,#efe5d8,#faf7f2);padding:80px 0}.hero.small{padding:48px 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;color:var(--muted)}
.lead{font-size:1.15rem;max-width:720px}.zh{color:var(--muted)}.muted{color:var(--muted)}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:12px 22px;border-radius:6px;text-decoration:none;border:0;font:inherit;cursor:pointer}.btn.ghost{background:none;color:var(--accent);border:1px solid var(--accent)}.btn.small{padding:7px 14px;font-size:.9rem}
.grid{display:grid;gap:20px}.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,1fr)}.four{grid-template-columns:repeat(4,1fr)}.five{grid-template-columns:repeat(5,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px}.card h3{margin-top:0}
.ph{background:repeating-linear-gradient(45deg,#ece3d7,#ece3d7 10px,#e4d9cb 10px,#e4d9cb 20px);border-radius:8px;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.9rem;margin-bottom:12px}
.band{background:var(--band);padding:48px 0}.steps{display:flex;flex-wrap:wrap;gap:10px;padding:0;list-style:none;counter-reset:s}.steps li{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:30px;padding:8px 16px}.steps li:before{content:counter(s) ". ";color:var(--accent);font-weight:600}
.stats div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px;text-align:center}.stats strong{display:block;font:2rem Georgia,serif;color:var(--accent)}.stats span{color:var(--muted);font-size:.9rem}
.cta{background:var(--ink);color:#fff;padding:56px 0;text-align:center}
.spec{width:100%;border-collapse:collapse;background:#fff}.spec th,.spec td{border:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}.spec th{width:38%;background:#fbf8f4}
.filters{margin-bottom:20px}.filters button{background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 14px;margin:0 6px 6px 0;cursor:pointer;font:inherit}.filters button.on{background:var(--accent);color:#fff}
.timeline{list-style:none;padding:0}.timeline li{border-left:3px solid var(--accent);padding:6px 14px}
.form label{display:block;margin-bottom:12px;font-weight:500}.form input,.form select,.form textarea{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff}
footer{background:#241f1b;color:#d8cfc5;padding:40px 0 20px;font-size:.9rem}footer a{color:#e8c9a8}.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.copy{margin-top:20px;opacity:.7}
@media(max-width:900px){.five,.four{grid-template-columns:1fr 1fr}.three{grid-template-columns:1fr 1fr}.menu{display:block}nav{display:none;position:absolute;top:68px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:10px 20px}body.nav-open nav{display:block}nav a{display:block;margin:8px 0}}
@media(max-width:600px){.two,.three,.four,.five,.cols{grid-template-columns:1fr}}
.logo{display:flex;align-items:center;gap:10px}.logo img{height:52px;width:auto;display:block}.logo .lt{display:block}
.hero.photo{background-size:cover;background-position:center}
.filters a{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 14px;margin:0 6px 6px 0;text-decoration:none}
.cat{padding:28px 0;border-top:1px solid var(--line);scroll-margin-top:80px}.cathead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.gallery figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}.gallery figcaption{padding:10px 12px;font-size:.88rem}

/* videos */
.video-figure{margin:1rem 0 0}
.video-box{position:relative;width:100%;aspect-ratio:16/9;background:#000;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.video-box.portrait{aspect-ratio:9/16}
.video-box video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.video-figure figcaption{color:var(--muted);font-size:.9rem;margin-top:.5rem;text-align:center}

.lb{position:fixed;inset:0;background:rgba(0,0,0,.88);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:999;cursor:zoom-out}.lb img{max-width:94vw;max-height:84vh}.lb p{color:#eee;margin:10px}.lb span{position:absolute;top:10px;right:20px;color:#fff;font-size:2rem}
.project h2 .zh{font-size:1rem;font-weight:normal;color:#8a7d70}.gallery.six{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}

.gallery.six{grid-template-columns:repeat(6,1fr)}@media(max-width:900px){.gallery.six{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.gallery.six{grid-template-columns:repeat(2,1fr)}}

/* video band */
.vband{background:#221d19;color:#f3ece3;padding:88px 0 96px}
.vhead{text-align:center;max-width:680px;margin:0 auto 44px}.vhead .eyebrow{color:#c9a27e;margin:0 0 10px}.vhead h2{color:#fff;font-size:clamp(1.7rem,3vw,2.4rem);margin:0 0 12px}.vsub{color:#bfb3a6;margin:0}
.vrow{display:grid;grid-template-columns:2fr 1fr;gap:28px;align-items:stretch}
.vc{margin:0;display:flex;flex-direction:column;background:#2d2621;border:1px solid rgba(255,255,255,.08);border-radius:14px;overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.vmedia{position:relative;flex:1;background:#000;overflow:hidden}
.vc-land .vmedia{aspect-ratio:16/9}
.vc-port .vmedia::before{content:"";position:absolute;inset:-30px;background:var(--bgimg) center/cover;filter:blur(26px) brightness(.62) saturate(1.15);transform:scale(1.1)}
.vc-port .vmedia::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(34,29,25,.55),transparent 25%,transparent 75%,rgba(34,29,25,.55));pointer-events:none}
.vmedia video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vc-port .vmedia video{z-index:1;left:50%;width:auto;aspect-ratio:9/16;transform:translateX(-50%);object-fit:cover;box-shadow:0 0 30px rgba(0,0,0,.5)}
.vc figcaption{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#e9dfd3}.vdur{color:#a89a8b}
.vplay{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:rgba(20,16,13,.55);backdrop-filter:blur(4px);cursor:pointer;transition:transform .2s,background .2s;z-index:2}
.vplay::after{content:"";position:absolute;left:34px;top:27px;border-style:solid;border-width:15px 0 15px 24px;border-color:transparent transparent transparent #fff}
.vplay:hover{transform:scale(1.07);background:rgba(138,90,59,.85)}
.vmedia.playing .vplay{display:none}
@media(max-width:760px){.vband{padding:60px 0 64px}.vhead{margin-bottom:28px}.vrow{grid-template-columns:1fr;gap:24px}.vc-port{width:70%;justify-self:center}.vc-port .vmedia{aspect-ratio:9/16;flex:none}.vc-port .vmedia::before,.vc-port .vmedia::after{display:none}.vc-port .vmedia video{left:0;width:100%;transform:none}.vplay{width:64px;height:64px;margin:-32px 0 0 -32px}.vplay::after{left:26px;top:19px;border-width:13px 0 13px 20px}}

/* certifications v2 */
.chero{background:#221d19;color:#f3ece3;padding:64px 0 40px;text-align:center}.chero h1{color:#fff}.chero .eyebrow{color:#c9a27e;margin:0}.chero .lead{color:#cfc3b6;margin:10px auto 26px}
.chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.chip{background:transparent;color:#e9dfd3;border:1px solid rgba(255,255,255,.25);border-radius:30px;padding:7px 16px;font:inherit;font-size:.88rem;cursor:pointer}.chip:hover{border-color:#c9a27e}.chip.on{background:#c9a27e;border-color:#c9a27e;color:#221d19}
.csec{padding-top:36px}
.cnote{background:#fff;border-left:3px solid #c9a27e;border-radius:6px;padding:12px 16px;font-size:.88rem;color:var(--muted);margin-bottom:28px}.cnote strong{color:var(--ink)}
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ccard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:box-shadow .2s,transform .2s}.ccard:hover{box-shadow:0 12px 28px rgba(36,31,27,.12);transform:translateY(-2px)}
.ccard figure{margin:0}.cthumb{display:block;aspect-ratio:4/3;background:#ece7e0;overflow:hidden;padding:18px 18px 0}
.cthumb img{display:block;width:62%;margin:0 auto;height:auto;min-height:100%;object-fit:cover;object-position:top;box-shadow:0 4px 16px rgba(0,0,0,.18);background:#fff}
.cbody{display:flex;flex-direction:column;flex:1;padding:16px 18px 18px}
.ctop{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}.ctag{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:600}.ctag.own{color:#2f6b4f}.cdate{color:var(--muted)}
.ccard h3{font-size:1.05rem;margin:8px 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:2.5em}
.cwho{font-size:.8rem;color:var(--muted);margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:2.6em;line-height:1.3}
.cfacts{display:grid;grid-template-columns:72px 1fr;gap:5px 10px;margin:0 0 10px;font-size:.83rem}.cfacts dt{color:var(--muted)}.cfacts dd{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.badge{display:inline-block;border-radius:20px;padding:1px 10px;font-size:.78rem;font-weight:600}.badge.pass{background:#e3f1e8;color:#23704a}.badge.info{background:#f1ebe2;color:var(--accent)}
.cdetail{font-size:.76rem;color:var(--muted);margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cact{margin-top:auto;display:flex;gap:8px}.cbtn{flex:1;text-align:center;font-size:.85rem;padding:8px 10px;border-radius:6px;border:1px solid var(--accent);color:var(--accent);text-decoration:none;white-space:nowrap}.cbtn.primary{background:var(--accent);color:#fff}.cbtn.dis{border-color:var(--line);color:var(--muted)}
.cplace{border:2px dashed var(--line);background:transparent;justify-content:center;text-align:center;padding:28px}.cplace:hover{box-shadow:none;transform:none}.cplace p{color:var(--muted);font-size:.9rem}.cplace .cbtn{display:inline-block;flex:none;padding:8px 18px}
@media(max-width:1000px){.cgrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.cgrid{grid-template-columns:1fr}.chero{padding:44px 0 30px}}
.cplace{grid-column:1/-1;flex-direction:row;padding:20px 24px;text-align:left}.cplace>div{display:flex;align-items:center;gap:20px;width:100%;flex-wrap:wrap}.cplace h3{margin:0;height:auto}.cplace p{margin:0;flex:1;min-width:220px}

.faqlist{max-width:860px}.faq details{background:#fff;border:1px solid var(--line);border-radius:8px;margin:0 0 10px;padding:0 18px}.faq summary{cursor:pointer;padding:14px 0;font-weight:600;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";float:right;color:var(--accent);font-size:1.2rem}.faq details[open] summary:after{content:"–"}.faq details p{margin:0 0 14px;color:var(--ink)}

.oembox{display:flex;gap:32px;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:10px;padding:28px 32px}.oembox h2{margin:.2em 0 .4em}.oembox p{margin:0}.oembox .btn{white-space:nowrap}.oembox>p{flex:none}.oembox .eyebrow{margin:0}@media(max-width:760px){.oembox{flex-direction:column;align-items:flex-start;padding:22px}}
.appt{background:#f6efe6;border-radius:6px;padding:10px 14px;font-size:.92rem}
