/* Shared visual system. Local assets only; static decorations. */
:root { --serif:'Songti SC','STSong','SimSun',serif; --green:#28513f; --green-deep:#1d3c30; --gold:#b49359; }
body { background:#faf8f2; }
.container { max-width:1280px; padding-inline:48px; }
.site-header { background:#faf8f2f5; border-bottom:1px solid #28513f18; box-shadow:none; }
.header-inner { max-width:1440px; padding-inline:40px; }
.nav-links { gap:18px; }
.nav-links a { font-size:.8rem; white-space:nowrap; letter-spacing:.03em; }
.nav-cta { background:#28513f; color:#fffaf0!important; border:1px solid #28513f; border-radius:5px; }
.logo-text { letter-spacing:.14em; }
.page-hero { padding:150px 0 66px; background:radial-gradient(ellipse at 85% 30%,#dce5d644,transparent 50%),#f5f2e9; }
.page-hero::before { content:''; position:absolute; width:200px; height:300px; right:5%; top:66px; border:1px solid #b493592c; border-radius:100% 0 100% 0; transform:rotate(28deg); pointer-events:none; }
.page-hero::after { content:''; position:absolute; width:130px; height:210px; left:6%; bottom:-65px; border:1px solid #b4935936; border-radius:100% 0 100% 0; transform:rotate(-25deg); pointer-events:none; }
.page-hero h1 { font-size:clamp(1.9rem,3.3vw,3rem); line-height:1.55; letter-spacing:.03em; }
.page-hero p { line-height:1.9; font-size:.95rem; }
.breadcrumb { font-size:.75rem!important; }
.section { padding-block:72px; overflow:clip; }
.section-alt { background:#f0f3ed; }
.section-title h2 { font-size:clamp(1.6rem,2.6vw,2.2rem); line-height:1.6; }
.section-title p { font-size:.92rem; line-height:1.9; }
.section-title::after { background:#b49359; width:42px; height:1px; }
.kicker { letter-spacing:.15em; }
.card,.product-card,.plan-card,.equipment-card,.contact-item,.cause-card,.store-item,.expert-card,.coming-soon-card { border-radius:12px; border:1px solid #dce3d6; box-shadow:0 6px 24px #23443206; }
.card h3,.product-card h3 { font-size:1.25rem; }
.card p,.product-card p { font-size:.92rem; line-height:1.9; }
.plan-card.featured { background:#f5f3e8; border-color:#b49359; box-shadow:none; }
.btn { border-radius:5px; box-shadow:none; }
.btn-primary { background:#28513f; }
.btn-gold { background:#e4d4ae; color:#254d3a; border-color:#d4bd8a; }
.img-frame,.section-banner { border-radius:10px; box-shadow:none; }
.img-shine,.cursor-glow { display:none; }
.cloud-deco { opacity:.2; }
.step-item { border:1px solid #dce3d6; border-radius:10px; background:#fffdf8; }
.faq-item { border-radius:8px; border-color:#dce3d6; box-shadow:none; }
.faq-item summary { line-height:1.7; }
.article-body { max-width:760px; }
.article-body p,.article-body ul li { font-size:1rem; line-height:2; }
.article-body h2 { margin-top:40px; border-left-color:#b49359; }
.article-body blockquote,.article-cta { background:#eef2e9; border-radius:8px; }
.article-body table { display:block; max-width:100%; overflow:auto; }
.article-cover img,.article-figure img,.article-poster img { border-radius:10px; }
.site-footer { background:#f4f1e8; padding-top:56px; }
.footer-brand p { font-size:.82rem; line-height:1.95; }
.footer-col a,.footer-contact-item { font-size:.85rem; }
.footer-kepu { font-size:.75rem; }
.reveal { opacity:1; transform:none; animation:none; transition-delay:0s; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #a48649; outline-offset:4px; }
@media(min-width:861px) and (max-width:1190px) { .header-inner { padding-inline:22px; gap:14px; } .logo-sub { display:none; } .nav-links { gap:12px; } .nav-links a { font-size:.72rem; } .container { padding-inline:32px; } }
@media(max-width:860px) {
.container { padding-inline:22px; }
.header-inner { padding-inline:22px; }
.nav-links { gap:0; max-height:calc(100svh - 90px); overflow-y:auto; visibility:hidden; pointer-events:none; }
.nav-links.show { visibility:visible; pointer-events:auto; }
.nav-links a { font-size:.94rem; padding:13px 0; }
.page-hero { padding:120px 0 46px; }
.page-hero::before { right:-70px; opacity:.65; }
.page-hero::after { left:-60px; }
.page-hero h1 { font-size:1.9rem; }
.page-hero p { font-size:.88rem; }
.section { padding-block:46px; }
.section-title h2 { font-size:1.6rem; }
.card,.product-card { padding:28px 22px; }
.card-photo { margin-inline:-22px; }
.article-body p,.article-body ul li { font-size:.95rem; line-height:1.95; }
.article-body h2 { font-size:1.25rem; }
.footer-grid { gap:30px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
