/* ============================================================
   陈家沟太极拳学校官网 · 拳谱气设计系统
   方向二定案色板：拳谱墨 #241E1A / 生宣 #F7F3EC / 印章朱 #A62B1F
                 亚金 #C9A86C / 金褐 #8A6534 / 纸筋 #E4DACA
   要点：衬线标题体系（标题/正文 ≥2.5×）· 印章式编号 壹贰叁
        明暗仅两处深色块（首屏 + 分会）· 册页式竖排题签
   说明：标题衬线用本地字体栈，后续可自托管 Noto Serif SC 子集
   ============================================================ */

:root{
  --mo:#241E1A;        /* 拳谱墨 */
  --mo2:#332b25;       /* 墨·浅 */
  --xuan:#F7F3EC;      /* 生宣 */
  --paper:#FFFDF8;     /* 纸白 */
  --zhu:#A62B1F;       /* 印章朱 */
  --zhu-d:#8c2318;
  --yajin:#C9A86C;     /* 亚金 */
  --jin:#8A6534;       /* 金褐 */
  --zhijin:#E4DACA;    /* 纸筋 */
  --ink:#241E1A;
  --ink2:#5A4F45;
  --ink3:#8a7c6d;
  --line:#E4DACA;
  --line2:#d8cbb8;
  --max:1180px;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--xuan); color:var(--ink);
  font:16px/1.9 var(--sans); -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
ul{margin:0; padding:0; list-style:none}
button{font-family:inherit}
.wrap{max-width:var(--max); margin:0 auto; padding:0 24px}

/* ---------- 印章式编号 ---------- */
.seal{
  display:inline-flex; align-items:center; justify-content-center; flex:0 0 auto;
  width:46px; height:46px; background:var(--zhu); color:#f6e8d8;
  font-family:var(--serif); font-size:23px; font-weight:700; line-height:1;
  border-radius:4px 5px 3px 6px; box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.28);
  user-select:none;
}
.seal.sm{width:34px; height:34px; font-size:17px; border-radius:3px 4px 2px 4px}

/* ---------- 顶部信息条 ---------- */
.topbar{background:var(--mo); color:#a89a8c; font-size:13px}
.topbar .wrap{display:flex; justify-content:space-between; align-items:center; height:38px; gap:16px}
.topbar a:hover{color:var(--yajin)}
.topbar .l span{margin-right:22px}
.topbar .l b{color:#d9c9b5; font-weight:500}
.topbar .r a{border-left:1px solid #453b33; padding-left:16px}

/* ---------- 导航 ---------- */
.nav{background:var(--paper); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:60}
.nav .wrap{display:flex; align-items:center; justify-content:space-between; height:72px; gap:20px}
.brand{display:flex; align-items:center; gap:12px; flex:0 0 auto}
.brand .mark{width:42px; height:42px; flex:0 0 42px}
.brand .txt b{display:block; font-size:18px; letter-spacing:.06em; color:var(--mo); font-weight:700; font-family:var(--serif); line-height:1.3}
.brand .txt span{display:block; font-size:10px; letter-spacing:.14em; color:var(--ink3)}
.menu{display:flex; gap:2px; flex:1 1 auto; justify-content:center}
.menu>li{position:relative}
.menu a{
  display:block; padding:10px 14px; font-size:15px; color:var(--ink2);
  border-radius:3px; white-space:nowrap; transition:color .15s, background .15s;
}
.menu a:hover,.menu a.on{color:var(--zhu); background:#faf1ec}
.menu .drop{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
  min-width:148px; background:var(--paper); border:1px solid var(--line);
  border-radius:4px; box-shadow:0 10px 28px rgba(36,30,26,.10);
  padding:8px; opacity:0; visibility:hidden; transition:all .16s;
}
.menu>li:hover .drop,.menu>li:focus-within .drop{opacity:1; visibility:visible; transform:translateX(-50%) translateY(0)}
.menu .drop a{font-size:14px; padding:8px 12px}
.nav-cta{
  flex:0 0 auto; background:var(--zhu); color:#fff; padding:10px 20px; border-radius:3px;
  font-size:14.5px; letter-spacing:.04em; transition:background .15s;
}
.nav-cta:hover{background:var(--zhu-d)}
.burger{display:none; width:42px; height:42px; border:1px solid var(--line2); background:var(--paper); border-radius:3px; font-size:18px; color:var(--ink2); cursor:pointer}

/* ---------- 首页 Hero（深色块 1/2） ---------- */
.hero{position:relative; background:var(--mo); color:#f4ece1; overflow:hidden}
.hero .bg{position:absolute; inset:0}
.hero .bg img{width:100%; height:100%; object-fit:cover; opacity:.5}
.hero .bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(36,30,26,.92) 0%, rgba(36,30,26,.72) 46%, rgba(36,30,26,.38) 100%);
}
.hero .wrap{position:relative; display:grid; grid-template-columns:1fr 300px; gap:56px; align-items:center; padding-top:92px; padding-bottom:96px}
.hero .tagline{
  display:inline-block; font-size:12.5px; letter-spacing:.2em; color:var(--yajin);
  border:1px solid #6b5842; padding:5px 14px; border-radius:2px; margin-bottom:26px;
}
.hero h1{font-family:var(--serif); font-size:48px; line-height:1.35; margin:0 0 18px; font-weight:700; letter-spacing:.02em}
.hero h1 em{font-style:normal; color:var(--yajin)}
.hero .sc{font-size:19px; letter-spacing:.3em; color:#d9c9b5; margin:0 0 26px; font-family:var(--serif)}
.hero .lead{font-size:16px; line-height:2; color:#b5a696; margin:0 0 34px; max-width:600px}
.btns{display:flex; gap:14px; flex-wrap:wrap}
.btn{
  display:inline-flex; align-items:center; gap:8px; padding:14px 30px; border-radius:3px;
  font-size:15.5px; letter-spacing:.06em; transition:all .16s;
}
.btn-p{background:var(--zhu); color:#fff}
.btn-p:hover{background:var(--zhu-d); transform:translateY(-1px)}
.btn-o{border:1px solid #6b5842; color:#e0d3c2}
.btn-o:hover{border-color:var(--yajin); color:#fff}
.taiji{width:300px; height:300px; opacity:.9}
@media (prefers-reduced-motion:no-preference){
  .taiji svg{animation:spin 64s linear infinite; transform-origin:50% 50%}
  @keyframes spin{to{transform:rotate(360deg)}}
}
.hero-note{position:relative; margin-top:22px; font-size:12.5px; color:#7f7268; letter-spacing:.04em}

/* ---------- 内页页头 ---------- */
.pagehero{background:var(--mo); color:#f4ece1; padding:52px 0 56px; position:relative; overflow:hidden}
.pagehero::before{
  content:""; position:absolute; right:-60px; top:-60px; width:280px; height:280px; opacity:.07;
  background-image:repeating-linear-gradient(45deg, #fff 0 1px, transparent 1px 16px),
                   repeating-linear-gradient(-45deg, #fff 0 1px, transparent 1px 16px);
}
.pagehero .wrap{position:relative; display:flex; align-items:center; gap:26px}
.pagehero .vtag{
  writing-mode:vertical-rl; font-family:var(--serif); font-size:15px; letter-spacing:.4em;
  color:var(--yajin); border:1px solid #5b4d3f; padding:14px 7px; border-radius:2px; flex:0 0 auto;
}
.pagehero h1{font-family:var(--serif); font-size:36px; margin:0 0 10px; font-weight:700; letter-spacing:.02em}
.pagehero .en{font-size:12px; letter-spacing:.22em; color:#8f8278; margin:0 0 12px}
.pagehero p{margin:0; color:#b5a696; font-size:15px; max-width:760px}
.crumb{font-size:13px; color:#8f8278; margin-bottom:16px}
.crumb a{color:#a89a8c}
.crumb a:hover{color:var(--yajin)}

/* ---------- 数字条 ---------- */
.figures{background:var(--paper); border-bottom:1px solid var(--line)}
.figures .wrap{display:grid; grid-template-columns:repeat(4,1fr); padding:0}
.fig{padding:32px 20px; text-align:center; border-right:1px solid var(--line)}
.fig:last-child{border-right:0}
.fig b{display:block; font-size:36px; font-weight:700; color:var(--jin); line-height:1.2; font-family:var(--serif); font-variant-numeric:tabular-nums}
.fig b small{font-size:15px; font-weight:400; margin-left:2px; font-family:var(--sans)}
.fig span{display:block; font-size:13.5px; color:var(--ink3); margin-top:6px}

/* ---------- 区块 ---------- */
.sec{padding:78px 0}
.sec.alt{background:var(--paper)}
.sec-head{display:flex; align-items:center; gap:20px; margin:0 0 46px}
.sec-head .vtag{
  writing-mode:vertical-rl; font-family:var(--serif); font-size:14px; letter-spacing:.34em;
  color:var(--jin); border-left:1px solid var(--line2); border-right:1px solid var(--line2);
  padding:10px 5px; flex:0 0 auto;
}
.sec-head h2{font-family:var(--serif); font-size:32px; margin:0 0 6px; font-weight:700; color:var(--mo); letter-spacing:.02em; line-height:1.4}
.sec-head .en{font-size:11.5px; letter-spacing:.2em; color:var(--ink3); margin:0}
.sec-head .rule{width:52px; height:2px; background:var(--zhu); margin-top:12px}
.lead-p{color:var(--ink2); font-size:15.5px; line-height:2.1; margin:0 0 16px}
.lead-p strong{color:var(--ink); font-weight:600}

/* ---------- 概况 ---------- */
.about{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:start}
.about .ph{border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--paper)}
.about .ph img{width:100%; height:300px; object-fit:cover}
.facts{border-left:2px solid var(--zhu); padding-left:26px}
.facts div{margin-bottom:20px}
.facts div:last-child{margin-bottom:0}
.facts span{display:block; font-size:12.5px; color:var(--ink3); letter-spacing:.06em; margin-bottom:3px}
.facts b{font-size:15.5px; color:var(--ink); font-weight:500; line-height:1.7}

/* ---------- 名师卡 ---------- */
.masters{display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
.master{background:var(--paper); border:1px solid var(--line); border-radius:4px; overflow:hidden; transition:border-color .18s, transform .18s}
.master:hover{border-color:#c9b9a5; transform:translateY(-3px)}
.master .ph{height:240px; background:var(--mo2); position:relative; overflow:hidden}
.master .ph img{width:100%; height:100%; object-fit:cover}
.master .ph .seal{position:absolute; left:18px; bottom:18px}
.master .b{padding:26px 26px 28px}
.master h3{margin:0 0 4px; font-size:20px; font-weight:700; color:var(--mo); font-family:var(--serif)}
.master .role{font-size:13.5px; color:var(--zhu); margin:0 0 14px; letter-spacing:.03em}
.master p{margin:0; font-size:14px; color:var(--ink2); line-height:1.9}
.master-note{margin-top:26px; font-size:13.5px; color:var(--ink3); text-align:center; line-height:1.9}

/* ---------- 班型卡 ---------- */
.classes{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.cls{background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:24px 22px; transition:border-color .18s, box-shadow .18s}
.cls:hover{border-color:var(--jin); box-shadow:0 4px 18px rgba(141,91,42,.08)}
.cls .n{font-size:12px; color:#c2b4a6; letter-spacing:.1em; margin-bottom:12px}
.cls h4{margin:0 0 10px; font-size:17px; font-weight:700; color:var(--mo); font-family:var(--serif)}
.cls p{margin:0; font-size:13.5px; color:var(--ink2); line-height:1.8}
.cls.edu{background:linear-gradient(180deg,#faf3e8 0%,var(--paper) 100%); border-color:var(--yajin)}
.edu-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:12px}
.edu-tags span{background:#f4ece2; color:var(--jin); font-size:12.5px; padding:3px 10px; border-radius:2px}

/* ---------- 赛事卡 ---------- */
.events{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.ev{background:var(--paper); border:1px solid var(--line); border-radius:4px; overflow:hidden; display:flex; flex-direction:column}
.ev .cover{height:150px; background:var(--mo2); position:relative; overflow:hidden}
.ev .cover img{width:100%; height:100%; object-fit:cover}
.ev .b{padding:22px; flex:1; display:flex; flex-direction:column}
.ev time{font-size:13px; color:var(--jin); letter-spacing:.04em}
.ev h4{margin:8px 0 10px; font-size:16.5px; font-weight:700; color:var(--mo); line-height:1.6; font-family:var(--serif)}
.ev p{margin:0; font-size:13.5px; color:var(--ink2); line-height:1.8}

/* ---------- 分会（深色块 2/2） ---------- */
.chapters{background:var(--mo); color:#e8dccd; padding:78px 0}
.chapters .sec-head h2{color:#f4ece1}
.chapters .sec-head .vtag{color:var(--yajin); border-color:#5b4d3f}
.chapters .sec-head .en{color:#a3948a}
.chapters .sec-head .rule{background:var(--yajin)}
.filters{display:flex; flex-wrap:wrap; gap:9px; margin:0 0 36px}
.filters button{
  background:transparent; border:1px solid #5b4d3f; color:#b5a696; font-size:14px;
  padding:8px 18px; border-radius:2px; cursor:pointer; transition:all .15s;
}
.filters button:hover{border-color:var(--yajin); color:#e8dccd}
.filters button.on{background:var(--zhu); border-color:var(--zhu); color:#fff}
.ch-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.ch{
  background:rgba(255,255,255,.045); border:1px solid #4a3f34; border-radius:4px; padding:22px 20px;
  transition:border-color .18s, background .18s; display:block;
}
.ch:hover{border-color:#8a7355; background:rgba(255,255,255,.075)}
.ch .prov{font-size:12px; color:#8f8278; letter-spacing:.1em; margin-bottom:8px}
.ch h4{margin:0 0 10px; font-size:17px; font-weight:700; color:#f0e6d8; font-family:var(--serif)}
.ch .who{font-size:13px; color:#a3948a; line-height:1.8; margin:0 0 14px}
.ch .go{font-size:13px; color:var(--yajin); letter-spacing:.04em}
.ch-foot{margin-top:32px; font-size:13.5px; color:#8f8278; line-height:1.9}

/* ---------- 新闻卡 ---------- */
.news-list{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.news{background:var(--paper); border:1px solid var(--line); border-radius:4px; overflow:hidden; display:flex; flex-direction:column; transition:border-color .18s, transform .18s}
.news:hover{border-color:#c9b9a5; transform:translateY(-3px)}
.news .thumb{height:168px; background:#efe8df; overflow:hidden; position:relative}
.news .thumb img{width:100%; height:100%; object-fit:cover}
.news .b{padding:22px; flex:1; display:flex; flex-direction:column}
.news .meta{font-size:12.5px; color:var(--ink3); margin-bottom:10px}
.news .meta b{color:var(--jin); font-weight:500; margin-right:10px}
.news h4{margin:0 0 10px; font-size:16.5px; font-weight:700; color:var(--mo); line-height:1.65; flex:1; font-family:var(--serif)}
.news .more{font-size:13.5px; color:var(--zhu); letter-spacing:.03em}
.news-more{margin-top:36px; text-align:center}

/* ---------- 影像 ---------- */
.video-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.vid{position:relative; border-radius:4px; overflow:hidden; background:var(--mo2); aspect-ratio:16/10; display:flex; align-items:center; justify-content:center}
.vid img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55}
.vid .play{width:52px; height:52px; border-radius:50%; border:1.5px solid var(--yajin); display:flex; align-items:center; justify-content:center; position:relative; z-index:1}
.vid .play::after{content:""; border-left:14px solid var(--yajin); border-top:8px solid transparent; border-bottom:8px solid transparent; margin-left:4px}
.vid .cap{position:absolute; left:0; right:0; bottom:0; padding:14px 16px; background:linear-gradient(transparent,rgba(0,0,0,.72)); color:#e8dccd; font-size:14px; z-index:1}
.vid-note{margin-top:18px; font-size:13.5px; color:var(--ink3); text-align:center; line-height:1.9}

/* ---------- CTA ---------- */
.cta{background:var(--zhu); color:#fff; padding:60px 0}
.cta .wrap{display:grid; grid-template-columns:1fr auto; gap:40px; align-items:center}
.cta h2{margin:0 0 12px; font-size:27px; font-weight:700; letter-spacing:.02em; font-family:var(--serif)}
.cta p{margin:0; color:#f0d5d0; font-size:15px}
.cta .acts{display:flex; gap:14px; flex-wrap:wrap}
.cta .acts a{background:#fff; color:var(--zhu); padding:14px 26px; border-radius:3px; font-size:15px; letter-spacing:.04em; transition:transform .15s}
.cta .acts a.ghost{background:transparent; border:1px solid rgba(255,255,255,.6); color:#fff}
.cta .acts a:hover{transform:translateY(-2px)}

/* ---------- 页脚 ---------- */
footer{background:var(--mo); color:#9c8e82; padding:58px 0 0; font-size:14px}
.f-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:40px}
footer h5{margin:0 0 16px; font-size:15px; color:#e0d3c2; font-weight:600; letter-spacing:.06em; font-family:var(--serif)}
footer li{margin-bottom:9px; line-height:1.7}
footer a:hover{color:var(--yajin)}
.f-brand b{display:block; font-size:19px; color:#f0e6d8; letter-spacing:.08em; margin-bottom:10px; font-weight:700; font-family:var(--serif)}
.f-brand p{margin:0 0 8px; line-height:1.9}
.f-brand .sc{color:var(--yajin); letter-spacing:.22em; font-size:13px; margin-top:14px; font-family:var(--serif)}
.f-bot{border-top:1px solid #3d342c; padding:22px 0; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size:13px; color:#7f7268}
.f-bot a{color:#8f8278}

/* ---------- 浮动咨询 ---------- */
.float{position:fixed; right:22px; bottom:26px; z-index:70; display:flex; flex-direction:column; gap:10px}
.float a{
  width:56px; height:56px; border-radius:50%; background:var(--paper); border:1px solid var(--line);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  font-size:11px; color:var(--ink2); box-shadow:0 4px 16px rgba(43,35,32,.14); transition:transform .16s;
}
.float a:hover{transform:translateY(-3px)}
.float a.hot{background:var(--zhu); border-color:var(--zhu); color:#fff}

/* ---------- 招生页组件 ---------- */
.steps{display:grid; grid-template-columns:repeat(5,1fr); gap:14px; counter-reset:step}
.step{background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:24px 20px; position:relative}
.step .seal{margin-bottom:14px}
.step h4{margin:0 0 8px; font-size:16px; font-weight:700; color:var(--mo); font-family:var(--serif)}
.step p{margin:0; font-size:13px; color:var(--ink2); line-height:1.8}
.step::after{
  content:"→"; position:absolute; right:-11px; top:44px; color:var(--line2); font-size:14px; z-index:1;
}
.step:last-child::after{display:none}
.tbl{width:100%; border-collapse:collapse; background:var(--paper); border:1px solid var(--line); font-size:14.5px}
.tbl th,.tbl td{border-bottom:1px solid var(--line); padding:14px 16px; text-align:left; line-height:1.7; vertical-align:top}
.tbl th{background:#faf3e8; color:var(--mo); font-weight:600; font-family:var(--serif); white-space:nowrap}
.tbl tr:last-child td{border-bottom:0}
.tbl td b{color:var(--zhu); font-weight:600}
.tbl .rowh td{background:#faf6ee; font-weight:600; color:var(--mo); font-family:var(--serif)}
.faq{max-width:860px}
.faq details{background:var(--paper); border:1px solid var(--line); border-radius:4px; margin-bottom:12px; overflow:hidden}
.faq summary{
  cursor:pointer; list-style:none; padding:18px 22px; font-weight:600; color:var(--mo);
  font-family:var(--serif); font-size:16px; display:flex; align-items:center; gap:12px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{
  content:"问"; flex:0 0 auto; width:26px; height:26px; background:var(--zhu); color:#fff;
  border-radius:3px; font-size:13px; display:flex; align-items:center; justify-content:center; font-weight:700;
}
.faq details[open] summary{border-bottom:1px solid var(--line); background:#faf3e8}
.faq .a{padding:18px 22px 20px 60px; color:var(--ink2); font-size:14.5px; line-height:2; position:relative}
.faq .a::before{
  content:"答"; position:absolute; left:22px; top:18px; width:26px; height:26px; border:1px solid var(--jin);
  color:var(--jin); border-radius:3px; font-size:13px; display:flex; align-items:center; justify-content:center; font-weight:700;
}
.callout{
  border:1px solid var(--yajin); background:#faf3e8; border-radius:4px; padding:20px 24px;
  font-size:14px; color:var(--ink2); line-height:2; margin:26px 0;
}
.callout b{color:var(--mo)}
.note-box{
  border-left:3px solid var(--zhu); background:var(--paper); border-radius:0 4px 4px 0;
  padding:16px 22px; font-size:13.5px; color:var(--ink2); line-height:1.9; margin:24px 0;
}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:24px}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.kv{background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:24px 26px}
a.kv{display:block; transition:border-color .18s, transform .18s}
a.kv:hover{border-color:#c9b9a5; transform:translateY(-2px)}
.kv h4{margin:0 0 14px; font-size:17px; font-weight:700; color:var(--mo); font-family:var(--serif); display:flex; align-items:center; gap:10px}
.kv ul li{padding:10px 0; border-bottom:1px dashed var(--line); font-size:14.5px; color:var(--ink2); line-height:1.8; display:flex; gap:10px}
.kv ul li:last-child{border-bottom:0}
.kv ul li b{color:var(--mo); font-weight:600; flex:0 0 auto}
.kv ul li span{color:var(--ink3)}

/* ---------- 表单 ---------- */
.form{background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:34px 34px 30px; max-width:760px}
.form .row{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.form .field{margin-bottom:18px}
.form label{display:block; font-size:14px; color:var(--mo); font-weight:600; margin-bottom:8px}
.form label i{font-style:normal; color:var(--zhu); margin-left:2px}
.form input,.form select,.form textarea{
  width:100%; border:1px solid var(--line2); background:#fff; border-radius:3px;
  padding:11px 14px; font-size:15px; font-family:inherit; color:var(--ink);
  transition:border-color .15s; -webkit-appearance:none; appearance:none;
}
.form select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238a7c6d'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center}
.form input:focus,.form select:focus,.form textarea:focus{outline:none; border-color:var(--zhu)}
.form textarea{min-height:96px; resize:vertical}
.form .submit{
  background:var(--zhu); color:#fff; border:0; border-radius:3px; padding:14px 40px;
  font-size:16px; letter-spacing:.08em; cursor:pointer; font-family:var(--serif); font-weight:700; transition:background .15s;
}
.form .submit:hover{background:var(--zhu-d)}
.form .tip{font-size:13px; color:var(--ink3); margin:12px 0 0; line-height:1.8}
.form-done{display:none; background:var(--paper); border:1px solid var(--yajin); border-radius:4px; padding:30px 34px; max-width:760px}
.form-done.show{display:block}
.form-done h3{margin:0 0 12px; font-size:19px; color:var(--mo); font-family:var(--serif); display:flex; align-items:center; gap:10px}
.form-done pre{
  background:var(--xuan); border:1px solid var(--line); border-radius:3px; padding:16px 18px;
  font-size:13.5px; line-height:1.9; white-space:pre-wrap; word-break:break-all; color:var(--ink2); margin:0 0 16px;
}
.form-done .acts{display:flex; gap:12px; flex-wrap:wrap}
.form-done .acts a,.form-done .acts button{
  border:0; cursor:pointer; border-radius:3px; padding:11px 22px; font-size:14px; letter-spacing:.04em;
  background:var(--mo); color:#e8dccd; font-family:inherit;
}
.form-done .acts a.hot{background:var(--zhu); color:#fff}

/* ---------- 分会详情 ---------- */
.ch-detail{display:grid; grid-template-columns:1fr 340px; gap:40px; align-items:start}
.ch-detail .main h2{font-family:var(--serif); font-size:26px; margin:0 0 6px; color:var(--mo); font-weight:700}
.ch-detail .main .sub{color:var(--ink3); font-size:14px; margin:0 0 24px}
.ch-detail .side{background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:26px}
.ch-detail .side h4{margin:0 0 16px; font-size:16px; color:var(--mo); font-family:var(--serif); display:flex; align-items:center; gap:10px}
.ch-detail .side dl{margin:0}
.ch-detail .side dt{font-size:12.5px; color:var(--ink3); letter-spacing:.06em; margin-top:14px}
.ch-detail .side dd{margin:4px 0 0; font-size:14.5px; color:var(--ink); line-height:1.7}
.ch-detail .side .cta{margin-top:22px; display:block; text-align:center; background:var(--zhu); color:#fff; border-radius:3px; padding:13px}
.ch-detail .ph{border:1px solid var(--line); border-radius:4px; overflow:hidden; margin-bottom:26px}
.ch-detail .ph img{width:100%; height:280px; object-fit:cover}

/* ---------- 联系页 ---------- */
.contact-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:start}
.route{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:26px}
.route .r{background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:24px}
.route .r .ic{width:44px; height:44px; border-radius:50%; background:#faf3e8; color:var(--jin); display:flex; align-items:center; justify-content:center; font-size:20px; margin-bottom:14px}
.route .r h4{margin:0 0 8px; font-size:16.5px; color:var(--mo); font-family:var(--serif); font-weight:700}
.route .r p{margin:0; font-size:13.5px; color:var(--ink2); line-height:1.9}
.mapbox{
  border:1px solid var(--line); border-radius:4px; background:var(--paper); padding:30px;
  display:flex; flex-direction:column; align-items:center; gap:18px; text-align:center;
}
.mapbox svg{width:100%; max-width:340px; height:auto}
.mapbox .cap{font-size:13px; color:var(--ink3); line-height:1.8}
.qr-box{
  width:180px; height:180px; border:1px dashed var(--line2); border-radius:4px;
  display:flex; align-items:center; justify-content:center; color:var(--ink3); font-size:13px;
  text-align:center; line-height:1.8; background:var(--xuan);
}

/* ---------- 演示标识 ---------- */
.tag-demo{
  display:inline-block; font-size:11.5px; color:var(--jin); background:#faf3e8;
  border:1px solid var(--yajin); border-radius:2px; padding:2px 8px; letter-spacing:.06em;
  vertical-align:middle; margin-left:8px; font-weight:400;
}
.ph-demo{position:relative}
.ph-demo::after{
  content:"演示图"; position:absolute; right:10px; top:10px; font-size:11px; letter-spacing:.1em;
  background:rgba(36,30,26,.72); color:#e8dccd; padding:3px 9px; border-radius:2px;
}

/* ---------- 师资页 ---------- */
.mst-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px}
.mst{background:var(--paper); border:1px solid var(--line); border-radius:4px; overflow:hidden; display:flex; flex-direction:column; transition:border-color .18s, transform .18s}
.mst:hover{border-color:#c9b9a5; transform:translateY(-2px)}
.mst .ph{height:320px; background:var(--mo2); overflow:hidden; position:relative}
.mst .ph img{width:100%; height:100%; object-fit:cover}
.mst .ph .noimg{display:flex; align-items:center; justify-content:center; height:100%}
.mst .b{padding:24px 26px 26px; flex:1; display:flex; flex-direction:column}
.mst h3{margin:0 0 4px; font-size:20px; font-weight:700; color:var(--mo); font-family:var(--serif)}
.mst .role{font-size:13.5px; color:var(--zhu); letter-spacing:.03em}
.mst .gen{display:inline-block; font-size:12px; color:var(--jin); border:1px solid var(--yajin); padding:1px 8px; border-radius:2px; margin-left:8px; vertical-align:middle; letter-spacing:.05em}
.mst p{margin:14px 0 0; font-size:14px; color:var(--ink2); line-height:1.95; flex:1}
.mst .tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:14px}
.mst .tags span{background:var(--xuan); border:1px solid var(--line); border-radius:6px; padding:3px 10px; font-size:12.5px; color:var(--ink2)}
.mst-grid.small{grid-template-columns:repeat(3,1fr)}
.mst-grid.small .mst .ph{height:230px}
.mst-grid.small .mst h3{font-size:17.5px}
.mst-grid.small .mst p{font-size:13.5px; -webkit-line-clamp:6; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden}

/* ---------- 学校荣誉 ---------- */
.honor-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px 28px}
.honor{
  display:flex; gap:16px; align-items:flex-start; background:var(--paper);
  border:1px solid var(--line); border-radius:4px; padding:16px 20px;
  transition:border-color .18s, transform .18s;
}
.honor:hover{border-color:#c9b9a5; transform:translateY(-2px)}
.honor .no{
  flex:0 0 auto; width:34px; height:34px; border:1px solid var(--zhu); color:var(--zhu);
  border-radius:3px; display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:15px; font-weight:700; background:#faf3e8;
}
.honor .tx{flex:1}
.honor .tx b{display:block; font-size:15px; color:var(--mo); font-weight:600; line-height:1.75; font-family:var(--serif)}
.honor .tx span{display:inline-block; margin-top:7px; font-size:12px; color:var(--jin); letter-spacing:.1em; border:1px solid var(--yajin); border-radius:2px; padding:1px 8px}

/* ---------- 响应式 ---------- */
.menu-m{transition:none}
@media (max-width:1080px){
  .menu-m{
    display:none; position:absolute; top:72px; left:0; right:0; background:var(--paper);
    border-bottom:1px solid var(--line); padding:8px 24px 18px; box-shadow:0 18px 34px rgba(36,30,26,.10);
  }
  .menu-m.open{display:block}
  .menu-m a{padding:14px 8px; border-bottom:1px dashed var(--line); font-size:16px}
  .menu-m .drop{
    position:static; opacity:1; visibility:visible; transform:none; box-shadow:none;
    border:0; padding:2px 0 8px 16px; min-width:0;
  }
  .menu-m .drop a{font-size:14.5px; padding:9px 8px; border-bottom:0}
  .menu{display:none}
  .burger{display:block}
  .classes,.ch-grid{grid-template-columns:repeat(2,1fr)}
  .honor-grid{grid-template-columns:1fr}
  .hero .wrap{grid-template-columns:1fr}
  .taiji{display:none}
  .f-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .step::after{display:none}
  .ch-detail{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .route{grid-template-columns:1fr}
}
@media (max-width:860px){
  .hero{padding:0}
  .hero .wrap{padding-top:64px; padding-bottom:68px}
  .hero h1{font-size:31px}
  .hero .sc{font-size:15px; letter-spacing:.22em}
  .figures .wrap{grid-template-columns:repeat(2,1fr)}
  .fig{border-bottom:1px solid var(--line)}
  .masters,.events,.news-list,.video-grid{grid-template-columns:1fr}
  .about{grid-template-columns:1fr; gap:36px}
  .sec{padding:56px 0}
  .sec-head h2{font-size:26px}
  .cta .wrap{grid-template-columns:1fr}
  .topbar .l span:nth-child(2){display:none}
  .f-grid{grid-template-columns:1fr; gap:28px}
  .pagehero h1{font-size:27px}
  .grid2,.grid3{grid-template-columns:1fr}
  .form .row{grid-template-columns:1fr}
  .tbl{display:block; overflow-x:auto}
  .float{right:14px; bottom:16px}
  .float a{width:48px; height:48px; font-size:10px}
}
@media (max-width:560px){
  .classes,.ch-grid,.steps{grid-template-columns:1fr}
  .figures .wrap{grid-template-columns:1fr 1fr}
  .hero h1{font-size:26px}
  .sec-head{gap:14px}
  .sec-head .vtag{display:none}
}
