:root{
  --c-primary: #c52633;
  --c-primary-dark: #c52633;
  --font: 'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;
}
:root{--bg:#f7f3f3;--ink:#251315;--muted:#705154;--c-primary:#c52633;--accent2:#cf7230;--surface:#ffffff;--border:#e2d5d6;--light:#efe7e7;--herobg:#74252b;--heroink:#f6f4f4;--navbg:#361719;--navink:#f4f1f1;--footbg:#2f1316;--footink:#ede8e9;--btn-ink:#ffffff;--radius:14}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  background: var(--bg); color: var(--ink); line-height: 1.7; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.wrap { width: min(1180px, 92%); margin-inline: auto; }
.sec-t { font-size: 30px; margin: 0 0 28px; letter-spacing: .02em; }
.more { display: inline-block; margin-top: 26px; color: var(--accent); font-weight: 700; }
h1, h2, h3 { line-height: 1.25; }
.nav-in { position: sticky; top: 0; z-index: 50; background: var(--navbg); color: var(--navink);
  border-bottom: 1px solid var(--border); }
.nav { width: min(1180px, 92%); margin-inline: auto; display: flex; align-items: center;
  justify-content: space-between; height: 64px; }
.brand { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 19px; color: var(--navink); }
.logo-mark { flex: 0 0 auto; }
.brand span { font-size: 12px; opacity: .7; letter-spacing: .12em; text-transform: uppercase; }
.nav-nav ul { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.nav-nav a { display: block; padding: 9px 14px; border-radius: 8px; font-weight: 600; font-size: 15px; color: var(--navink); }
.nav-nav a:hover, .nav-nav a.active { background: var(--accent); color: var(--btn-ink); }
.nav-toggle { display: none; flex-direction: column; gap: 5px; background: none; border: 0; cursor: pointer; padding: 8px; }
.nav-toggle span { width: 26px; height: 3px; background: var(--navink); border-radius: 3px; }
.btn { display: inline-flex; align-items: center; gap: 8px; background: var(--accent); color: var(--btn-ink);
  font-weight: 700; padding: 13px 26px; border-radius: var(--radius); border: 0; cursor: pointer; }
.btn.ghost { background: transparent; color: var(--ink); border: 2px solid var(--accent); }
.tag { display: inline-block; background: var(--accent); color: var(--btn-ink); font-weight: 800;
  font-size: 12px; padding: 3px 10px; border-radius: 6px; margin-bottom: 10px; }
.foot { background: var(--footbg); color: var(--footink); padding: 54px 0 30px; margin-top: 0; position: relative; z-index: 1; }
.foot-in { width: min(1180px, 92%); margin-inline: auto; display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 30px; }
.foot-in b { font-size: 18px; color: var(--footink); }
.foot-in h4 { color: var(--footink); margin-bottom: 12px; font-size: 14px; letter-spacing: .1em; }
.foot-in p { margin-top: 8px; font-size: 14px; opacity: .85; }
.foot-in a:hover { color: var(--accent); }
.copy { width: min(1180px, 92%); margin: 30px auto 0; font-size: 13px; opacity: .6; border-top: 1px solid var(--border); padding-top: 16px; }
.adv { padding: 72px 0; position: relative; z-index: 1; }
.agrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.acard { background: var(--surface); padding: 30px 26px; border: 1px solid var(--border); }
.acard .anum { font-size: 30px; font-weight: 800; color: var(--accent); }
.acard h3 { margin: 10px 0 8px; font-size: 19px; }
.acard p { margin: 0; color: var(--muted); font-size: 15px; }
.prod { padding: 72px 0; background: var(--light); position: relative; z-index: 1; }
.pfilter { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 26px; }
.pfilter button { background: var(--surface); border: 1px solid var(--border); color: var(--ink);
  padding: 8px 16px; border-radius: 20px; cursor: pointer; font-weight: 600; }
.pfilter button.on { background: var(--accent); color: var(--btn-ink); border-color: var(--accent); }
.pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.pcard { background: var(--surface); border: 1px solid var(--border); overflow: hidden; display: flex; flex-direction: column; }
.pimg { height: 200px; background-size: cover; background-position: center; }
.pbody { padding: 20px; }
.pbody h3 { margin: 6px 0 8px; font-size: 18px; }
.pbody p { margin: 0; color: var(--muted); font-size: 14px; }
.news { padding: 72px 0; position: relative; z-index: 1; }
.ngrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.ncard { display: flex; gap: 18px; background: var(--surface); border: 1px solid var(--border); padding: 16px; }
.nimg { flex: 0 0 130px; height: 110px; border-radius: 10px; background-size: cover; background-position: center; }
.nbody .date { font-size: 13px; color: var(--accent); font-weight: 700; }
.nbody h3 { margin: 6px 0 6px; font-size: 17px; }
.nbody p { margin: 0; color: var(--muted); font-size: 14px; }
.stats { background: var(--accent); color: var(--btn-ink); padding: 46px 0; position: relative; z-index: 1; }
.stats .wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; text-align: center; }
.scell b { display: block; font-size: 40px; font-weight: 800; }
.scell span { font-size: 14px; opacity: .9; }
.cta { padding: 64px 0; background: var(--light); position: relative; z-index: 1; }
.cta .wrap { text-align: center; }
.cta h2 { margin: 0 0 10px; font-size: 28px; }
.cta p { margin: 0 0 22px; color: var(--muted); }
.hero { position: relative; overflow: hidden; }
.hero-in { position: relative; z-index: 2; }
.hero h1 { font-size: 52px; margin: 8px 0 14px; letter-spacing: .01em; }
.hero p { font-size: 18px; max-width: 560px; color: var(--muted); }
.hero .btn { margin-top: 24px; margin-right: 12px; }
.h-curtain{display:grid;grid-template-columns:1fr 1fr;min-height:560px;align-items:stretch}.h-curtain .curtain-img{background-size:cover;background-position:center;min-height:420px}.h-curtain .curtain-txt{display:flex;align-items:center;background:var(--herobg);color:var(--heroink);padding:60px}.h-curtain .wrap{max-width:540px;margin-inline:auto}/* inner page header */
.phead { background: var(--herobg); color: var(--heroink); padding: 64px 0 56px; position: relative; z-index: 1; }
.phead h1 { font-size: 40px; margin: 6px 0 10px; }
.phead p { margin: 0; opacity: .85; max-width: 640px; }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; padding: 70px 0; position: relative; z-index: 1; }
.about-grid .aimg { height: 360px; border-radius: var(--radius); background-size: cover; background-position: center; }
.about-grid h2 { font-size: 28px; margin: 0 0 16px; }
.about-grid p { color: var(--muted); }
.vals { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; padding-bottom: 70px; position: relative; z-index: 1; }
.vals .v { background: var(--surface); border: 1px solid var(--border); padding: 26px; }
.vals .v h3 { margin: 0 0 8px; font-size: 18px; color: var(--accent); }
.cwrap { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; padding: 70px 0; position: relative; z-index: 1; }
.cinfo p { margin: 10px 0; }
.cinfo b { color: var(--accent); }
.cform { background: var(--surface); border: 1px solid var(--border); padding: 28px; border-radius: var(--radius); }
.cform label { display: block; font-weight: 600; margin: 14px 0 6px; }
.cform input, .cform textarea { width: 100%; padding: 11px 13px; border: 1px solid var(--border); border-radius: 8px;
  background: var(--bg); color: var(--ink); font: inherit; }
.cform button { margin-top: 18px; width: 100%; background: var(--accent); color: var(--btn-ink); border: 0; padding: 14px; border-radius: 8px; font-weight: 700; cursor: pointer; }
.acard,.pcard,.ncard{box-shadow:6px 6px 0 var(--accent);border-radius:var(--radius);border:1px solid var(--ink)}
@media (max-width: 960px){
  .nav-toggle{display:flex}
  .nav-nav{position:absolute;top:100%;left:0;right:0;background:var(--navbg);max-height:0;overflow:hidden;transition:max-height .3s}
  .nav-nav.open{max-height:360px}
  .nav-nav ul{flex-direction:column;padding:10px}
  .pgrid,.ngrid,.agrid,.vals,.about-grid,.cwrap,.foot-in{grid-template-columns:1fr}
  .h-split,.h-wedge,.h-curtain,.h-orbit{grid-template-columns:1fr}
  .h-split .hero-pic,.h-wedge .hero-pic,.h-curtain .curtain-img{min-height:300px}
  .h-bento{grid-template-columns:1fr}.h-bento .b-main{grid-row:auto}
  .hero h1{font-size:38px}.h-typo h1{font-size:46px}
  .stats .wrap{grid-template-columns:repeat(2,1fr)}
  .ncard{flex-direction:column}.ncard .nimg{width:100%;height:160px}
}
@media (max-width: 560px){ .stats .wrap{grid-template-columns:1fr 1fr} .hero h1{font-size:30px} }

/* fix: constrain about/contact sections to content width */
.about-grid,.vals,.cwrap{width:min(1180px,92%);margin-inline:auto;}
.about-grid{gap:56px;}
.cwrap{gap:48px;align-items:start;}
.cinfo{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:26px 28px;}
.cinfo p{margin:12px 0;line-height:1.7;}
.vals{padding-top:0;}

@media (max-width:960px){.h-split .hero-txt,.h-wedge .hero-in,.h-curtain .curtain-txt{padding:36px 22px}}

/* ===== CMS 共享：列表 / 详情 / 分页 / 表单 ===== */
.cms-page{padding:72px 0;}
.cms-page .container{max-width:1200px;margin:0 auto;padding:0 20px;}
.cms-page .cms-title{font-size:34px;font-weight:800;text-align:center;margin-bottom:8px;}
.cms-page .cms-subtitle{text-align:center;color:#888;margin-bottom:36px;}
.cms-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:26px;}
.cms-card{display:block;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 26px rgba(0,0,0,.07);transition:.25s;text-decoration:none;color:inherit;}
.cms-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.12);}
.cms-card img{width:100%;height:200px;object-fit:cover;display:block;}
.cms-card h3{margin:0;padding:18px 18px 4px;font-size:18px;}
.cms-card p{padding:0 18px 18px;color:#777;font-size:14px;margin:0;}
.cms-detail{max-width:860px;margin:0 auto;padding:0 20px;}
.cms-detail img{max-width:100%;border-radius:14px;margin:18px 0;}
.cms-detail h1{font-size:34px;margin:10px 0 6px;}
.cms-detail .lead{color:#888;font-size:16px;}
.cms-content{line-height:1.9;color:#444;margin-top:18px;}
.cms-content img{max-width:100%;}
.cms-back{display:inline-block;margin:8px 0 18px;color:var(--c-primary,#e11d2e);text-decoration:none;font-weight:600;}
.cms-pager{margin:34px 0;text-align:center;}
.cms-pager a,.cms-pager span{padding:8px 14px;margin:0 3px;border-radius:8px;background:#fff;color:#444;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.cms-pager .active{background:var(--c-primary,#e11d2e);color:#fff;}
.contact-form{max-width:640px;margin:18px auto 0;display:grid;gap:14px;}
.contact-form input,.contact-form textarea,.contact-form select{
  width:100%;padding:12px 14px;border:1px solid #e3e3e3;border-radius:10px;font-size:15px;font-family:inherit;}
.contact-form textarea{min-height:120px;resize:vertical;}
.btn-primary{background:var(--c-primary,#e11d2e);color:#fff;padding:12px 22px;border-radius:10px;font-weight:700;border:none;cursor:pointer;}
.form-alert{padding:12px 14px;border-radius:10px;margin-bottom:12px;font-size:14px;}
.form-alert-ok{background:#eafaf0;color:#1c7a43;}
.form-alert-err{background:#fdecea;color:#b42318;}
.form-alert-err ul{margin:6px 0 0;padding-left:18px;}
.ve-editable-bg{cursor:pointer;}
