:root{
  --navy:#132C5F; --navy-deep:#0C1F45; --blue:#2E7CF6; --blue-bg:#EAF2FF;
  --gold:#C5A05C; --gold-bg:#F8F1E3; --cta:#FF5A2D;
  --ink:#21304F; --gray:#6F7B93; --line:#E6ECF5; --bg:#F6F8FC;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{background:#E9EDF3;}
body{
  font-family:-apple-system,"PingFang SC","Helvetica Neue",sans-serif;
  color:var(--ink);font-size:15px;line-height:1.6;
}
img{display:block;max-width:100%;}
a{text-decoration:none;color:inherit;}

/* 居中手机宽容器 */
#app{
  max-width:480px;margin:0 auto;background:var(--bg);min-height:100vh;
  padding:14px 14px 96px;overflow:hidden;
  box-shadow:0 0 40px rgba(19,44,95,.08);
}

/* ===== 通用 ===== */
.section{margin-top:26px;}
.card{background:#fff;border-radius:16px;box-shadow:0 4px 16px rgba(19,44,95,.06);}
.sec-head{display:flex;align-items:baseline;margin-bottom:14px;}
.sec-bar{width:5px;height:18px;border-radius:3px;background:var(--gold);align-self:center;margin-right:9px;}
.sec-bar.gao{background:var(--gold);}
.sec-title{font-size:19px;font-weight:700;color:var(--navy);}
.sec-sub{margin-left:10px;font-size:12px;color:var(--gray);}
.btn{display:flex;align-items:center;justify-content:center;height:46px;border-radius:24px;font-size:16px;font-weight:500;cursor:pointer;}
.btn-primary{background:var(--navy);color:#fff;}
.btn-blue{background:var(--blue);color:#fff;}
.btn-outline{border:1.5px solid var(--navy);color:var(--navy);background:#fff;}
.chip{display:inline-flex;align-items:center;padding:3px 11px;border-radius:14px;font-size:12px;background:var(--blue-bg);color:var(--blue);margin:0 7px 7px 0;}
.chip-navy{background:rgba(19,44,95,.07);color:var(--navy);}

/* ===== 顶部品牌 ===== */
.brand-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 14px;}
.brand-logo{width:150px;}
.brand-tag{font-size:11px;color:var(--gray);}

/* ===== 轮播 banner ===== */
.banner{position:relative;border-radius:18px;overflow:hidden;height:240px;}
.bn-track{display:flex;height:100%;transition:transform .55s cubic-bezier(.4,0,.2,1);}
.bn-slide{position:relative;min-width:100%;height:100%;overflow:hidden;}
.bn-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.bn-mask{position:absolute;inset:0;background:linear-gradient(110deg,rgba(12,31,69,.85) 0%,rgba(19,44,95,.6) 55%,rgba(19,44,95,.25) 100%);}
.bn-inner{position:relative;z-index:2;padding:30px 26px;color:#fff;height:100%;display:flex;flex-direction:column;justify-content:center;}
.bn-en{font-size:11px;letter-spacing:4px;color:var(--gold);margin-bottom:10px;}
.bn-title{font-size:27px;font-weight:800;letter-spacing:1px;line-height:1.35;}
.bn-divider{width:38px;height:3px;border-radius:2px;background:var(--gold);margin:13px 0 11px;}
.bn-slogan{font-size:14px;color:rgba(255,255,255,.85);}
.bn-tag{display:inline-block;font-size:11px;color:var(--gold);border:1px solid rgba(197,160,92,.6);border-radius:12px;padding:2px 10px;margin-bottom:12px;align-self:flex-start;}
.bn-ahead{display:flex;align-items:center;margin-bottom:8px;}
.bn-icon{width:38px;height:38px;border-radius:9px;margin-right:11px;}
.bn-aname{font-size:23px;font-weight:800;}
.bn-adesc{font-size:14px;color:var(--gold);margin-bottom:7px;}
.bn-adetail{font-size:12.5px;line-height:1.7;color:rgba(255,255,255,.9);}
.bn-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:6px;z-index:3;}
.bn-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45);transition:.3s;}
.bn-dot.on{width:18px;border-radius:3px;background:var(--gold);}

/* ===== 6 年级网格 ===== */
.grade-grid{display:flex;flex-wrap:wrap;justify-content:space-between;}
.gcell{position:relative;width:31.5%;background:#fff;border-radius:14px;padding:15px 11px 13px;margin-bottom:11px;box-shadow:0 4px 16px rgba(19,44,95,.06);overflow:hidden;cursor:pointer;}
.gcell::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;}
.gcell.chu::before{background:var(--blue);}
.gcell.gao::before{background:var(--gold);}
.gcell-name{font-size:20px;font-weight:800;color:var(--navy);}
.gcell-tag{margin-top:5px;font-size:12px;color:var(--gray);}
.gcell.gao .gcell-tag{color:#9A7B3F;}
.grade-placement{margin-top:2px;text-align:center;font-size:13px;color:var(--blue);padding:6px;cursor:pointer;}

/* ===== 优势(首页静态备份，轮播为主) ===== */

/* ===== 名师精选(横滑) ===== */
.tscroll{display:flex;gap:11px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;}
.tscroll::-webkit-scrollbar{display:none;}
.tmini{flex:0 0 auto;width:108px;background:#fff;border-radius:14px;box-shadow:0 4px 16px rgba(19,44,95,.06);padding:15px 12px;text-align:center;cursor:pointer;}
.tmini-av{width:62px;height:62px;border-radius:50%;margin:0 auto;border:2px solid #fff;box-shadow:0 2px 8px rgba(19,44,95,.16);object-fit:cover;}
.tmini-name{margin-top:9px;font-size:15px;font-weight:700;color:var(--ink);}
.tmini-tag{margin-top:4px;font-size:10px;color:var(--blue);background:var(--blue-bg);border-radius:9px;padding:1px 7px;display:inline-block;}

/* ===== 服务闭环 ===== */
.loop{display:flex;flex-wrap:wrap;}
.loop-step{width:33.33%;display:flex;flex-direction:column;align-items:center;padding:9px 0;}
.loop-no{width:28px;height:28px;border-radius:50%;background:var(--blue-bg);color:var(--blue);font-size:13px;display:flex;align-items:center;justify-content:center;}
.loop-name{margin-top:6px;font-size:12px;color:var(--ink);}

/* ===== 通用卡内边距 ===== */
.pad{padding:16px;}

/* ===== 暑期 / 课程横幅图 ===== */
.banner-img{width:100%;border-radius:14px;display:block;}

/* ===== 转化区 ===== */
.convert{padding:24px 20px;text-align:center;}
.convert-title{font-size:19px;font-weight:700;color:var(--navy);}
.convert-sub{margin-top:8px;font-size:13px;color:var(--gray);}
.convert-btns{display:flex;gap:11px;margin-top:18px;}
.convert-btns .btn{flex:1;}

/* ===== 年级详情 ===== */
.back{display:inline-flex;align-items:center;gap:5px;font-size:14px;color:var(--navy);padding:8px 2px;cursor:pointer;}
.cd-hero{position:relative;overflow:hidden;border-radius:18px;padding:26px 22px;background:linear-gradient(135deg,var(--navy-deep),var(--navy) 60%,#1D49A0);color:#fff;}
.cd-hero.gao{background:linear-gradient(135deg,#3a2f12,#6b5524 55%,var(--gold));}
.cd-badge{display:inline-flex;padding:2px 13px;border:1px solid var(--gold);color:var(--gold);border-radius:13px;font-size:12px;margin-bottom:11px;}
.cd-hero.gao .cd-badge{border-color:#fff;color:#fff;}
.cd-title{font-size:26px;font-weight:800;letter-spacing:1px;}
.cd-sub{margin-top:7px;font-size:13px;color:rgba(255,255,255,.8);}
.cd-points{display:flex;flex-wrap:wrap;margin-top:15px;}
.cd-point{padding:3px 11px;margin:0 8px 7px 0;border-radius:13px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);font-size:12px;}
.cd-intro{padding:16px;margin-top:14px;font-size:14px;line-height:1.8;color:var(--ink);text-align:justify;}
.cd-fit{margin-top:12px;padding:10px 14px;border-radius:10px;background:var(--gold-bg);color:#9A7B3F;font-size:12px;}
.cd-season{width:47%;padding:14px;margin-bottom:11px;}
.cd-season-name{font-size:15px;font-weight:600;color:var(--navy);}
.cd-season-name::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:7px;vertical-align:2px;}
.cd-season-plan{margin-top:5px;font-size:12px;color:var(--gray);}
.cd-summer-img{width:100%;border-radius:12px;}
.cd-img-tip{text-align:center;font-size:11px;color:var(--gray);padding:8px 0 2px;}

/* 分班 */
.place{position:relative;background:#fff;border-radius:13px;padding:14px 15px 11px;margin-bottom:10px;box-shadow:0 4px 16px rgba(19,44,95,.06);overflow:hidden;}
.place::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;}
.place.top::before{background:var(--gold);}
.place.mid::before{background:var(--blue);}
.place.base::before{background:#8FA0BC;}
.place-type{font-size:16px;font-weight:700;color:var(--navy);margin-bottom:8px;}
.place.top .place-type{color:#9A7B3F;}
.place-row{display:flex;padding:5px 0;border-top:1px dashed var(--line);}
.place-label{width:64px;flex-shrink:0;font-size:12px;color:var(--gray);}
.place-val{flex:1;font-size:12.5px;color:var(--ink);line-height:1.55;}

/* 大纲手风琴 */
.stage{margin-bottom:11px;overflow:hidden;}
.stage-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;}
.stage-name{font-size:15px;font-weight:600;color:var(--navy);}
.stage-arrow{font-size:20px;color:var(--gray);transition:.2s;}
.stage.open .stage-arrow{transform:rotate(90deg);}
.lessons{border-top:1px solid var(--line);padding:4px 16px 12px;display:none;}
.stage.open .lessons{display:block;}
.lesson{display:flex;padding:9px 0;border-bottom:1px dashed var(--line);}
.lesson:last-child{border-bottom:none;}
.lesson-no{width:26px;height:26px;border-radius:50%;background:var(--blue-bg);color:var(--blue);font-size:12px;display:flex;align-items:center;justify-content:center;margin-right:11px;flex-shrink:0;}
.lesson-topic{font-size:14px;font-weight:500;}
.lesson-content{margin-top:2px;font-size:12px;color:var(--gray);}

/* 初一三年规划 */
.plan-sub{font-size:12px;color:var(--gray);margin:-6px 0 14px;}
.plan-phi{display:flex;gap:11px;margin-bottom:14px;}
.plan-phi-item{flex:1;background:linear-gradient(135deg,var(--navy),#1D49A0);border-radius:13px;padding:14px;color:#fff;}
.plan-phi-name{font-size:16px;font-weight:700;color:var(--gold);margin-bottom:6px;}
.plan-phi-desc{font-size:11.5px;line-height:1.6;color:rgba(255,255,255,.85);}
.plan-stage{margin-bottom:11px;padding:15px;}
.plan-stage-head{display:flex;align-items:center;margin-bottom:10px;}
.plan-no{width:40px;height:40px;border-radius:11px;background:var(--blue-bg);color:var(--blue);font-size:19px;font-weight:800;font-style:italic;display:flex;align-items:center;justify-content:center;margin-right:12px;}
.plan-stage-name{font-size:16px;font-weight:700;color:var(--navy);}
.plan-stage-time{font-size:12px;color:var(--gold);}
.plan-goal{font-size:13px;color:var(--ink);background:var(--bg);border-radius:10px;padding:10px 13px;margin-bottom:9px;}
.plan-pt{font-size:12.5px;color:var(--gray);line-height:1.7;padding-left:15px;position:relative;}
.plan-pt::before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--gold);}

/* ===== 名师详情 ===== */
.thero{position:relative;height:200px;border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#F0F6FF,#D2E4FC);display:flex;align-items:center;}
.thero-info{position:relative;z-index:2;padding-left:18px;max-width:58%;}
.thero-name{font-size:24px;font-weight:800;color:var(--navy);}
.thero-role{margin-left:8px;font-size:12px;color:var(--gold);}
.thero-photo{position:absolute;right:8px;bottom:0;height:200px;object-fit:contain;object-position:bottom;}
.tsec{display:flex;align-items:center;margin:22px 0 11px;}
.tsec-bar{width:4px;height:16px;border-radius:3px;background:var(--gold);margin-right:9px;}
.tsec-title{font-size:16px;font-weight:600;color:var(--navy);}
.tpoints{padding:14px 16px;background:#fff;border-radius:13px;box-shadow:0 4px 16px rgba(19,44,95,.06);}
.tpoint{font-size:13px;color:var(--ink);padding:4px 0;}
.tpoint::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);margin-right:10px;vertical-align:3px;}
.tquote{position:relative;padding:16px 16px 12px 18px;background:#F3F8FF;border-left:4px solid var(--gold);border-radius:0 12px 12px 0;}
.tquote-item{font-size:13px;color:var(--ink);line-height:1.7;padding-bottom:6px;}
.tach-item{display:flex;align-items:flex-start;padding:6px 0;}
.tach-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);margin:8px 9px 0 2px;flex-shrink:0;}
.tach-text{font-size:13px;color:var(--ink);line-height:1.6;}

/* 教师列表(名师页视图) */
.tlist{display:flex;align-items:center;padding:14px;margin-bottom:11px;cursor:pointer;}
.tlist-av{width:60px;height:60px;border-radius:50%;border:2px solid #fff;box-shadow:0 2px 8px rgba(19,44,95,.16);margin-right:13px;flex-shrink:0;object-fit:cover;}
.tlist-name{font-size:17px;font-weight:700;color:var(--navy);}
.tlist-role{margin-left:7px;font-size:12px;color:var(--gold);}
.tlist-tags{margin-top:6px;display:flex;flex-wrap:wrap;}
.tlist-arrow{font-size:22px;color:var(--gray);margin-left:8px;}

/* ===== 暑期课表 ===== */
.sc-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(19,44,95,.06);margin-bottom:14px;}
.sc-bar{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;background:linear-gradient(135deg,var(--navy),#1D49A0);}
.sc-grade{font-size:17px;font-weight:700;color:#fff;}
.sc-plan{font-size:11.5px;color:rgba(255,255,255,.85);}
.sc-img{width:100%;display:block;}

/* ===== 暑期班期与上课时间 ===== */
.term-wrap{margin-top:14px;}
.term-card{background:#fff;border-radius:16px;box-shadow:0 4px 16px rgba(19,44,95,.06);padding:15px 17px;margin-bottom:12px;border-left:4px solid var(--navy);}
.term-card.pre{border-left-color:var(--gold);background:linear-gradient(180deg,var(--gold-bg),#fff 70%);}
.term-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:9px;padding-bottom:9px;border-bottom:1px solid var(--line);}
.term-name{font-size:17px;font-weight:800;color:var(--navy);}
.term-card.pre .term-name{color:#9a7b34;}
.term-total{font-size:12px;color:var(--gray);}
.term-row{display:flex;align-items:center;gap:10px;padding:8px 0;}
.term-row+.term-row{border-top:1px dashed var(--line);}
.term-stage{flex:0 0 38px;font-weight:800;color:var(--navy);font-size:15px;}
.term-card.pre .term-stage{color:#b08d3e;}
.term-date{flex:1;color:var(--ink);font-size:14px;font-weight:600;}
.term-rest{flex:0 0 auto;font-size:11.5px;color:var(--gray);background:var(--bg);padding:3px 9px;border-radius:10px;}
.term-card.pre .term-rest{background:#fff;}
.term-seg{margin-top:4px;background:var(--blue-bg);border-radius:14px;padding:13px 16px;}
.term-seg-t{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:9px;}
.term-seg-list{display:flex;flex-wrap:wrap;gap:7px;}
.term-seg-list span{font-size:12.5px;color:var(--navy);background:#fff;border:1px solid #D5E3FB;border-radius:999px;padding:4px 11px;font-weight:600;}
.term-tip{margin-top:12px;font-size:12px;line-height:1.7;color:var(--gray);padding:0 2px;}
.sc-sec-t{margin:24px 0 13px;font-size:16px;font-weight:800;color:var(--navy);display:flex;align-items:center;}
.sc-sec-t::before{content:'';width:5px;height:18px;border-radius:3px;background:var(--gold);margin-right:9px;}

/* 校区 */
.campus-list{display:flex;gap:10px;}
.campus-item{flex:1;background:#fff;border:1px solid #D5E3FB;border-radius:12px;padding:11px 12px;text-align:center;}
.campus-k{display:block;font-size:11.5px;color:var(--gray);margin-bottom:3px;}
.campus-v{display:block;font-size:15px;font-weight:700;color:var(--navy);}
.campus-note{margin-top:10px;font-size:11.5px;color:var(--gray);line-height:1.6;}

/* 暑期入口卡 */
.sched-entry{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:linear-gradient(135deg,var(--navy-deep),var(--navy) 70%,#1D49A0);color:#fff;border-radius:16px;box-shadow:0 4px 16px rgba(19,44,95,.12);}
.sched-entry-t{font-size:16px;font-weight:700;}
.sched-entry-s{font-size:12px;color:rgba(255,255,255,.78);margin-top:4px;}
.sched-entry-arr{font-size:24px;color:rgba(255,255,255,.6);flex:0 0 auto;margin-left:12px;}

/* ===== 底部 dock ===== */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;gap:10px;max-width:480px;margin:0 auto;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 -4px 20px rgba(19,44,95,.1);}
.dock-btn{flex:1;height:44px;border-radius:22px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;cursor:pointer;}
.dock-call{border:1.5px solid var(--navy);color:var(--navy);}
.dock-wx{background:var(--navy);color:#fff;}

/* ===== 弹层 ===== */
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;}
.modal[hidden]{display:none;}
.modal-mask{position:absolute;inset:0;background:rgba(8,20,48,.5);}
.modal-card{position:relative;z-index:2;width:300px;background:#fff;border-radius:20px;padding:28px 24px 22px;text-align:center;}
.modal-title{font-size:19px;font-weight:700;color:var(--navy);}
.modal-sub{margin-top:7px;font-size:12px;color:var(--gray);}
.modal-num{margin:18px 0;font-size:26px;font-weight:800;color:var(--navy);letter-spacing:1px;}
.modal-actions{display:flex;gap:11px;}
.mbtn{flex:1;height:42px;border-radius:21px;display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;}
.mbtn-primary{background:var(--navy);color:#fff;}
.mbtn-line{border:1.5px solid var(--navy);color:var(--navy);}
.modal-tip{margin-top:14px;font-size:11px;color:var(--gray);}
.modal-close{position:absolute;top:12px;right:16px;font-size:16px;color:var(--gray);cursor:pointer;}

/* ===== toast ===== */
.toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:120;background:rgba(8,20,48,.85);color:#fff;font-size:14px;padding:11px 22px;border-radius:10px;}
.toast[hidden]{display:none;}

/* ===== 占位示例标识 ===== */
.demo{display:inline-flex;padding:1px 8px;border-radius:5px;font-size:10px;color:#9A7B3F;border:1px solid var(--gold);}
