/* Puhua education uses the same sage-green accent, typography, header and inquiry form as home. */
.ph-education { --edu-border:rgba(79,112,91,.2); }
.edu-modal-open { overflow:hidden; }
.edu-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; padding:23px 0; font-size:12px; color:var(--ph-muted); }
.edu-breadcrumb a:hover { color:var(--ph-accent); }
.edu-banner { display:grid; grid-template-columns:1fr 1fr; min-height:300px; background:var(--ph-soft); }
.edu-banner-copy { align-self:center; padding:40px 54px; }
.edu-banner-copy>span { color:var(--ph-accent); font-size:11px; letter-spacing:.16em; }
.edu-banner h1 { margin:13px 0 15px; color:var(--ph-ink); font-size:clamp(36px,4.3vw,58px); font-weight:600; line-height:1.25; letter-spacing:-.025em; }
.edu-banner p { margin:0; max-width:400px; font-size:14px; line-height:2; color:var(--ph-muted); }
.edu-banner-media { overflow:hidden; min-width:0; }
.edu-banner-media img { display:block; width:100%; height:100%; max-height:330px; object-fit:cover; }
.edu-section-nav { display:flex; flex-wrap:wrap; gap:36px; border-bottom:1px solid var(--edu-border); padding-top:22px; }
.edu-section-nav a { display:inline-flex; align-items:center; min-height:51px; padding:0 4px 13px; font-size:14px; border-bottom:2px solid transparent; color:var(--ph-muted); }
.edu-section-nav a:hover,.edu-section-nav a[aria-current] { color:var(--ph-accent); border-color:var(--ph-accent); }
.edu-content { padding:48px 0 76px; min-height:350px; scroll-margin-top:100px; }
.edu-section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:27px; }
.edu-section-head h2 { margin:0; color:var(--ph-ink); font-size:28px; font-weight:500; line-height:1.5; }
.edu-section-head p { margin:9px 0 0; font-size:13px; line-height:1.9; color:var(--ph-muted); }
.edu-count { flex:none; padding-bottom:4px; color:var(--ph-accent); font-size:12px; }
.edu-link { display:inline-flex; align-items:center; min-height:44px; font-size:12px; color:var(--ph-accent); }
.edu-link:hover { text-decoration:underline; text-underline-offset:5px; }
.edu-overview-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.edu-overview-card { display:grid; grid-template-columns:45% 1fr; border-bottom:1px solid var(--edu-border); padding-bottom:26px; min-width:0; gap:25px; }
.edu-overview-card>img { display:block; width:100%; height:100%; aspect-ratio:1.2; object-fit:cover; }
.edu-overview-card>div { padding-top:10px; }
.edu-overview-card h2 { font-size:23px; font-weight:500; margin:0; }
.edu-overview-card p { font-size:13px; color:var(--ph-muted); line-height:1.9; margin:12px 0 5px; }
.edu-overview-card:hover h2 { color:var(--ph-accent); }
.edu-group-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.edu-group-card { display:grid; grid-template-columns:43% 1fr; min-width:0; background:var(--ph-soft); overflow:hidden; }
.edu-group-photo { min-width:0; height:275px; background:var(--ph-linen); padding:18px 7px 0; overflow:hidden; }
.edu-group-photo img { width:100%; height:100%; object-fit:contain; object-position:center bottom; display:block; transition:transform .35s; }
.edu-group-copy { align-self:center; padding:25px 20px 25px 28px; }
.edu-group-english { font-size:10px; color:var(--ph-muted); letter-spacing:.12em; }
.edu-group-copy h2 { font-size:25px; font-weight:500; margin:12px 0 14px; color:var(--ph-ink); line-height:1.45; }
.edu-group-copy p { font-size:12px; color:var(--ph-muted); margin:0 0 22px; }
.edu-group-card:hover img { transform:translateY(-4px); }
.edu-group-card:hover h2 { color:var(--ph-accent); }
.edu-additional { margin-top:58px; padding-top:35px; border-top:1px solid var(--edu-border); }
.edu-filters { display:flex; flex-wrap:wrap; gap:10px; margin:17px 0 28px; }
.edu-filters a { display:inline-flex; align-items:center; justify-content:center; padding:7px 20px; min-height:44px; color:var(--ph-muted); background:var(--ph-soft); font-size:13px; border:1px solid transparent; }
.edu-filters a:hover { color:var(--ph-accent); border-color:var(--edu-border); }
.edu-filters a.is-active { color:#fff; background:var(--ph-accent); }
.edu-teacher-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 24px; }
.edu-faculty-section { padding:30px 0 38px; border-bottom:1px solid var(--edu-border); scroll-margin-top:100px; }
.edu-faculty-section:last-child { padding-bottom:0; border-bottom:0; }
.edu-faculty-section .edu-section-head { margin-bottom:22px; }
.edu-faculty-section .edu-section-head h2 { font-size:25px; }
.edu-teacher { min-width:0; }
.edu-portrait { position:relative; display:block; width:100%; aspect-ratio:4/5; max-height:430px; border:0; padding:20px 12px 0; background:var(--ph-linen); overflow:hidden; }
.edu-portrait>img { display:block; width:100%; height:100%; object-fit:contain; object-position:center bottom; transition:transform .35s; }
.edu-image-action { position:absolute; inset:auto 0 0; padding:10px; color:#fff; font-size:11px; background:rgba(var(--ph-overlay),.82); transform:translateY(100%); transition:transform .25s; }
.edu-portrait:hover>img { transform:translateY(-4px); }
.edu-teacher-intro { position:absolute; inset:0; z-index:1; display:flex; flex-direction:column; align-items:flex-start; padding:23px 20px; color:#fff; background:rgba(var(--ph-overlay),.92); text-align:left; opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity .22s,transform .22s,visibility .22s; }
.edu-portrait:hover .edu-teacher-intro,.edu-portrait:focus-visible .edu-teacher-intro,.edu-portrait[aria-expanded="true"] .edu-teacher-intro { opacity:1; visibility:visible; transform:none; }
.edu-intro-name { display:block; flex:none; font-size:21px; font-weight:500; margin-bottom:10px; }
.edu-intro-school { display:block; flex:none; font-size:11px; color:#E6DCCB; line-height:1.8; margin-bottom:13px; }
.edu-intro-bio { display:block; overflow:auto; font-size:12px; line-height:1.95; scrollbar-width:thin; scrollbar-color:var(--ph-sand) transparent; }
.edu-portrait:hover .edu-image-action,.edu-portrait:focus-visible .edu-image-action { transform:translateY(0); }
.edu-teacher-copy { padding:18px 0 0; }
.edu-tag { color:var(--ph-accent); font-size:11px; }
.edu-teacher-copy h3 { font-size:22px; font-weight:500; margin:5px 0 9px; }
.edu-teacher-copy p { font-size:12px; color:var(--ph-muted); margin:7px 0 0; line-height:1.9; }
.edu-teacher-copy .edu-teacher-school { font-size:11px; }
.edu-year-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.edu-year-card { display:block; min-width:0; }
.edu-year-photo { display:flex; justify-content:center; align-items:center; gap:12px; background:var(--ph-soft); height:330px; overflow:hidden; padding:28px 34px; }
.edu-year-photo img { display:block; height:100%; width:31%; object-fit:contain; box-shadow:0 8px 15px rgba(38,52,44,.12); transition:transform .3s; }
.edu-year-photo img:nth-child(1) { transform:rotate(-7deg) translateY(14px); }
.edu-year-photo img:nth-child(2) { z-index:1; }
.edu-year-photo img:nth-child(3) { transform:rotate(7deg) translateY(14px); }
.edu-year-card:hover .edu-year-photo img:nth-child(2) { transform:translateY(-7px); }
.edu-year-photo.is-empty { flex-direction:column; background:var(--ph-soft); gap:0; }
.edu-year-photo.is-empty span { color:var(--ph-sand); font:96px/1.15 Georgia,serif; }
.edu-year-photo.is-empty p { font-size:12px; color:var(--ph-muted); margin:20px 0 0; letter-spacing:.1em; }
.edu-year-copy { display:grid; grid-template-columns:1fr auto; padding-top:22px; border-bottom:1px solid var(--edu-border); padding-bottom:16px; }
.edu-year-copy h2 { font-size:25px; font-weight:500; margin:0; }
.edu-year-copy p { grid-column:1; color:var(--ph-muted); font-size:12px; margin:8px 0 0; }
.edu-year-copy .edu-link { grid-row:1/3; grid-column:2; align-self:center; }
.edu-honor-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 22px; }
.edu-honor-item { display:block; min-width:0; width:100%; padding:0; border:0; background:transparent; text-align:left; }
.edu-honor-item img { display:block; width:100%; aspect-ratio:1587/2245; object-fit:contain; background:var(--ph-soft); transition:transform .25s; }
.edu-honor-item span { display:block; font-size:11px; line-height:1.7; margin-top:12px; color:var(--ph-muted); }
.edu-honor-item:hover img { transform:translateY(-4px); }
.edu-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; padding-top:36px; }
.edu-pagination a { display:grid; place-items:center; min-width:44px; min-height:44px; border:1px solid var(--edu-border); color:var(--ph-muted); font-size:13px; }
.edu-pagination a.is-active,.edu-pagination a:hover { background:var(--ph-accent); color:#fff; }
.edu-pagination>span { font-size:12px; margin-left:12px; color:var(--ph-muted); }
.edu-empty { padding:66px 24px; background:var(--ph-soft); text-align:center; }
.edu-empty-symbol { display:block; width:44px; height:36px; border:1px solid var(--ph-sand-deep); border-radius:3px 3px 0 0; position:relative; margin:0 auto 25px; }
.edu-empty-symbol:before { content:""; position:absolute; top:0; bottom:0; left:50%; border-left:1px solid var(--ph-sand-deep); }
.edu-empty-symbol:after { content:""; position:absolute; left:7px; right:7px; top:10px; height:9px; border-block:1px solid var(--ph-sand-deep); }
.edu-empty h3 { font-size:23px; font-weight:500; margin:0 0 12px; }
.edu-empty p { font-size:13px; color:var(--ph-muted); margin:0 auto 25px; max-width:440px; line-height:2; }
.edu-resource-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.edu-resource { min-width:0; border:1px solid var(--edu-border); }
.edu-resource>img { display:block; width:100%; aspect-ratio:4/3; object-fit:contain; background:var(--ph-soft); }
.edu-resource-copy { padding:22px; }
.edu-resource h3 { font-size:20px; font-weight:500; margin:8px 0; }
.edu-resource p { font-size:13px; color:var(--ph-muted); line-height:1.9; white-space:pre-wrap; }
.edu-course-meta { display:flex; flex-wrap:wrap; align-items:center; gap:4px 16px; margin:8px 0 0; font-size:12px; line-height:1.8; color:var(--ph-accent); }
.edu-course-meta span { display:inline-flex; align-items:center; }
.edu-course-meta span+span:before { content:""; width:1px; height:10px; margin-right:16px; background:var(--edu-border); }
.edu-resource .ph-button { margin:15px 15px 0 0; border:0; }
.edu-dialog { width:min(1040px,calc(100% - 48px)); max-height:92dvh; padding:0; border:0; background:var(--ph-paper); color:var(--ph-ink); }
.edu-dialog::backdrop { background:rgba(24,36,29,.85); }
.edu-dialog-header { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:13px 22px; background:var(--ph-paper); border-bottom:1px solid var(--edu-border); }
.edu-dialog-header h2 { margin:0; font-size:17px; font-weight:500; }
.edu-dialog button { border:1px solid var(--edu-border); background:var(--ph-paper); color:var(--ph-ink); min-width:44px; min-height:44px; cursor:pointer; }
.edu-dialog-header button { font-size:27px; border:0; }
.edu-dialog-body { display:flex; gap:30px; justify-content:center; padding:24px; }
.edu-dialog-body>img { display:block; max-width:100%; max-height:68dvh; width:auto; object-fit:contain; }
.edu-dialog-body:has(.edu-dialog-copy)>img { max-width:52%; }
.edu-dialog-copy { width:380px; min-width:0; align-self:center; }
.edu-dialog-copy h3 { font-size:17px; font-weight:500; margin:12px 0; }
.edu-dialog-copy p { font-size:14px; color:var(--ph-muted); line-height:2.1; white-space:pre-wrap; }
.edu-dialog-body video { max-width:100%; max-height:65dvh; width:100%; background:#191916; }
.edu-dialog-footer { display:flex; justify-content:center; align-items:center; gap:22px; border-top:1px solid var(--edu-border); padding:12px; }
.edu-dialog-footer button { padding:0 18px; font-size:12px; }
.edu-dialog-footer button:disabled { opacity:.4; cursor:default; }
.edu-dialog-counter { font-size:12px; color:var(--ph-muted); }
@media(max-width:980px) {
  .edu-banner-copy { padding:30px; }
  .edu-group-photo { height:245px; }
  .edu-group-copy { padding:20px; }
  .edu-group-copy h2 { font-size:21px; }
  .edu-group-copy p { font-size:11px; }
  .edu-group-grid { gap:20px; }
  .edu-overview-card { display:block; }
  .edu-overview-card>img { height:220px; }
  .edu-year-photo { height:260px; padding:25px 20px; }
  .edu-teacher-grid,.edu-resource-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .edu-honor-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:640px) {
  .edu-breadcrumb { padding:17px 0; font-size:11px; }
  .edu-banner { grid-template-columns:1fr; min-height:0; }
  .edu-banner-copy { padding:27px 25px; }
  .edu-banner-copy>span { font-size:9px; }
  .edu-banner h1 { font-size:36px; margin:10px 0 12px; }
  .edu-banner p { font-size:12px; line-height:1.9; }
  .edu-banner-media { height:170px; }
  .edu-section-nav { gap:0; justify-content:space-between; padding-top:12px; }
  .edu-section-nav a { font-size:12px; min-height:48px; padding:0 2px 10px; }
  .edu-content { padding:30px 0 45px; }
  .edu-section-head { align-items:start; gap:14px; margin-bottom:22px; }
  .edu-section-head h2 { font-size:22px; }
  .edu-section-head p { font-size:12px; }
  .edu-count { font-size:10px; padding-top:7px; }
  .edu-overview-grid { grid-template-columns:1fr; gap:23px; }
  .edu-overview-card { display:grid; grid-template-columns:38% 1fr; gap:18px; padding-bottom:20px; }
  .edu-overview-card>img { height:100%; min-height:155px; }
  .edu-overview-card h2 { font-size:20px; }
  .edu-overview-card p { font-size:12px; }
  .edu-group-grid { grid-template-columns:1fr; gap:16px; }
  .edu-group-photo { height:240px; }
  .edu-group-copy { padding:25px; }
  .edu-group-copy h2 { font-size:24px; }
  .edu-group-copy p { line-height:1.9; }
  .edu-additional { margin-top:38px; padding-top:28px; }
  .edu-filters { gap:7px; margin:12px 0 25px; }
  .edu-filters a { font-size:11px; padding:6px 12px; }
  .edu-teacher-grid { gap:25px 16px; }
  .edu-portrait { padding:12px 5px 0; }
  .edu-image-action { transform:none; font-size:9px; padding:5px; }
  .edu-teacher-copy { padding-top:12px; }
  .edu-teacher-copy h3 { font-size:19px; }
  .edu-faculty-section { padding:20px 0 28px; scroll-margin-top:85px; }
  .edu-faculty-section .edu-section-head h2 { font-size:22px; }
  .edu-teacher-intro { padding:13px 11px; }
  .edu-intro-name { font-size:17px; margin-bottom:6px; }
  .edu-intro-school { font-size:10px; margin-bottom:8px; }
  .edu-intro-bio { font-size:11px; line-height:1.8; }
  .edu-teacher-copy p { font-size:11px; }
  .edu-year-grid { grid-template-columns:1fr; gap:30px; }
  .edu-year-photo { height:275px; }
  .edu-year-copy h2 { font-size:23px; }
  .edu-honor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 14px; }
  .edu-honor-item span { font-size:10px; }
  .edu-empty { padding:45px 20px; }
  .edu-empty h3 { font-size:21px; }
  .edu-empty p { font-size:12px; }
  .edu-resource-grid { grid-template-columns:1fr; }
  .edu-dialog { width:calc(100% - 20px); max-height:94dvh; }
  .edu-dialog-header { padding:8px 13px; gap:8px; }
  .edu-dialog-header h2 { font-size:14px; }
  .edu-dialog-body { flex-direction:column; gap:20px; padding:15px; align-items:center; }
  .edu-dialog-body>img,.edu-dialog-body:has(.edu-dialog-copy)>img { max-width:100%; max-height:55dvh; }
  .edu-dialog-copy { width:100%; }
  .edu-dialog-copy p { font-size:12px; line-height:2; }
}
@media(hover:none) {
  .edu-portrait:hover .edu-teacher-intro { opacity:0; visibility:hidden; transform:translateY(10px); }
  .edu-portrait[aria-expanded="true"] .edu-teacher-intro { opacity:1; visibility:visible; transform:none; }
}
@media(prefers-reduced-motion:reduce) {
  .ph-education *, .ph-education *::before, .ph-education *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* Textbook covers use a portrait layout, separate from course media cards. */
.ph-education[data-education-page="textbook"] .edu-content{padding-top:42px}
.ph-education[data-education-page="textbook"] .edu-resource-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px}
.ph-education[data-education-page="textbook"] .edu-resource{display:flex;flex-direction:column;border-color:var(--ph-line);background:#fff}
.ph-education[data-education-page="textbook"] .edu-resource>img{width:100%;aspect-ratio:7/10;object-fit:contain;background:var(--ph-gray)}
.ph-education[data-education-page="textbook"] .edu-resource-copy{display:flex;flex-direction:column;align-items:flex-start;flex:1;padding:18px 17px 20px}
.ph-education[data-education-page="textbook"] .edu-resource h3{font-size:17px;line-height:1.5;margin:6px 0 7px}
.ph-education[data-education-page="textbook"] .edu-resource p{font-size:12px;line-height:1.8;margin:0 0 16px}
.ph-education[data-education-page="textbook"] .edu-resource .ph-button{margin:auto 0 0;min-height:38px;padding:7px 16px;font-size:12px}
@media(max-width:980px){
  .ph-education[data-education-page="textbook"] .edu-resource-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:640px){
  .ph-education[data-education-page="textbook"] .edu-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 12px}
  .ph-education[data-education-page="textbook"] .edu-resource-copy{padding:12px}
  .ph-education[data-education-page="textbook"] .edu-resource h3{font-size:14px}
  .ph-education[data-education-page="textbook"] .edu-resource p{font-size:11px}
  .ph-education[data-education-page="textbook"] .edu-resource .ph-button{font-size:11px;padding:6px 12px}
}

/* Online courses are text-first cards; keep the same card language as textbook, but give long intros room. */
.ph-education[data-education-page="online"] .edu-content{padding-top:42px}
.ph-education[data-education-page="online"] .edu-resource{display:flex;flex-direction:column;background:#fff;border-color:var(--edu-border)}
.ph-education[data-education-page="online"] .edu-resource-copy{display:flex;flex-direction:column;flex:1;padding:24px 24px 26px}
.ph-education[data-education-page="online"] .edu-resource h3{font-size:21px;line-height:1.5;margin:7px 0 0}
.ph-education[data-education-page="online"] .edu-resource p{margin:13px 0 0;font-size:13px;line-height:1.95}
.ph-education[data-education-page="online"] .edu-course-section+.edu-course-section{margin-top:46px;padding-top:34px;border-top:1px solid var(--edu-border)}
.ph-education[data-education-page="online"] .edu-course-section .edu-section-head{margin-bottom:24px}
.ph-education[data-education-page="online"] .edu-course-section .edu-section-head h2{font-size:25px}
@media(max-width:980px){
  .ph-education[data-education-page="online"] .edu-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}
}
@media(max-width:640px){
  .ph-education[data-education-page="online"] .edu-resource-grid{grid-template-columns:1fr}
  .ph-education[data-education-page="online"] .edu-resource-copy{padding:18px}
  .ph-education[data-education-page="online"] .edu-resource h3{font-size:19px}
  .ph-education[data-education-page="online"] .edu-course-section+.edu-course-section{margin-top:34px;padding-top:26px}
}

/* 师资数据从接口加载时的占位提示 */
.edu-loading { padding:48px 0; font-size:14px; letter-spacing:.08em; color:var(--ph-muted); text-align:center; }

/* 网课真题：接口按学科分组返回，每页一张试卷扫描图。 */
.ph-education[data-education-page="online"] .edu-exam-section{margin-top:54px;padding-top:38px;border-top:1px solid var(--edu-border)}
.ph-education[data-education-page="online"] .edu-exam-subject+.edu-exam-subject{margin-top:36px}
.edu-exam-subject-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--edu-border)}
.edu-exam-subject-head h3{margin:0;color:var(--ph-ink);font-size:21px;font-weight:500;line-height:1.5}
.edu-exam-subject-head span{flex:none;font-size:12px;color:var(--ph-muted)}
.edu-exam-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.edu-exam-card{display:flex;flex-direction:column;min-width:0;padding:0;overflow:hidden;background:#fff;border:1px solid var(--edu-border);border-radius:4px;cursor:zoom-in;text-align:left;transition:transform .25s,box-shadow .25s}
.edu-exam-card:hover,.edu-exam-card:focus-visible{transform:translateY(-4px);box-shadow:0 16px 30px rgba(38,52,44,.12)}
.edu-exam-image{display:block;width:100%;aspect-ratio:600/850;object-fit:cover;object-position:top center;background:var(--ph-soft)}
.edu-exam-caption{display:block;padding:9px 14px;font-size:12px;letter-spacing:.04em;color:var(--ph-muted);border-top:1px solid var(--edu-border)}
@media(max-width:980px){
  .edu-exam-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
}
@media(max-width:640px){
  .ph-education[data-education-page="online"] .edu-exam-section{margin-top:36px;padding-top:26px}
  .edu-exam-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .edu-exam-subject-head h3{font-size:18px}
  .edu-exam-caption{padding:7px 10px;font-size:11px}
}
