.news-home { background: #fff; }
.news-home.section-tint { background: #fff7f1; }
.news-home-grid, .news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.news-home-loading, .news-empty { grid-column: 1 / -1; padding: 55px 24px; text-align: center; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.news-card { min-width: 0; overflow: hidden; border: 1px solid #f1ded5; border-radius: 18px; background: #fff; box-shadow: 0 12px 32px #773d1810; transition: transform .2s, box-shadow .2s; }
.news-card:hover { transform: translateY(-5px); box-shadow: 0 18px 38px #773d1820; }
.news-card > a { display: block; height: 100%; }
.news-card-art { position: relative; display: flex; justify-content: space-between; align-items: flex-end; min-height: 152px; padding: 22px; overflow: hidden; color: #fff; background: radial-gradient(circle at 85% 10%, #ffae704d 0 25%, transparent 26%), linear-gradient(125deg, #df211e, #ff6a2c); }
.news-card-art::after { content: "文"; position: absolute; right: 55px; bottom: -80px; font-size: 180px; font-weight: 900; line-height: 1; opacity: .11; }
.news-card-art span { z-index: 1; font-size: 14px; letter-spacing: .15em; font-weight: 700; }
.news-card-art strong { z-index: 1; font-size: 36px; line-height: 1; }
.news-card-body { padding: 24px; }
.news-card-meta { margin: 0 0 12px; color: #b26a55; font-size: 12px; }
.news-card h3 { margin: 0 0 12px; color: #172032; font-size: 21px; line-height: 1.45; }
.news-card-body > p:not(.news-card-meta) { min-height: 3.2em; margin: 0 0 20px; color: #657184; font-size: 14px; line-height: 1.6; }
.news-read { color: #e83b28; font-weight: 800; font-size: 14px; }
.news-home-more { margin-top: 28px; text-align: center; }
.news-home-more a { display: inline-block; padding: 12px 24px; border: 1px solid #f2583b; border-radius: 99px; color: #e83b28; font-weight: 800; }
.news-nav { display: flex; align-items: center; gap: 23px; margin-left: auto; font-size: 14px; font-weight: 700; }
.news-nav a:hover, .news-nav [aria-current] { color: #e83b28; }
.news-phone { margin-left: 18px; color: #e83b28; font-weight: 900; white-space: nowrap; }
.news-hero { color: #fff; background: linear-gradient(115deg, #bd1a1f, #f24429 67%, #ff9a43); }
.news-hero-inner { min-height: 276px; display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.news-eyebrow { margin: 0 0 12px; color: #fcad8f; font-size: 12px; font-weight: 800; letter-spacing: .2em; }
.news-hero .news-eyebrow { color: #ffdfd0; }
.news-hero h1 { margin: 0; font-size: clamp(38px, 5vw, 60px); line-height: 1.2; }
.news-hero p:last-child { margin: 15px 0 0; font-size: 17px; }
.news-hero-mark { display: grid; place-items: center; width: 132px; height: 132px; flex: none; border: 2px solid #ffffffa3; border-radius: 28px; transform: rotate(-9deg); font-size: 86px; font-weight: 900; line-height: 1; opacity: .7; }
.news-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 24px 0; color: #82909e; font-size: 13px; }
.news-breadcrumb a:hover { color: #e83b28; }
.news-list-section { padding: 22px 0 76px; }
.news-section-title { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin-bottom: 28px; }
.news-section-title p { margin: 0 0 5px; color: #ed452c; font-size: 12px; font-weight: 900; letter-spacing: .18em; }
.news-section-title h2 { margin: 0; font-size: clamp(28px, 3vw, 38px); }
.news-section-title > span { color: #718093; font-size: 14px; }
.news-pages { display: flex; justify-content: center; align-items: center; gap: 20px; margin-top: 34px; color: #667; }
.news-pages a { padding: 9px 17px; border: 1px solid #f1b6a5; border-radius: 8px; color: #d63b26; }
.news-end-band { padding: 28px 0; color: #fff; background: linear-gradient(110deg, #e73326, #ff8a34); }
.news-end-band .wrap { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.news-end-band h2 { margin: 0 0 4px; font-size: 25px; }
.news-end-band p { margin: 0; }
.news-end-band a { padding: 11px 22px; border-radius: 8px; background: #fff; color: #df3b28; font-weight: 800; white-space: nowrap; }
.article-main { background: #fffaf7; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; align-items: start; gap: 28px; padding-bottom: 80px; }
.article-aside-stack { display: grid; gap: 18px; min-width: 0; }
.article-panel, .article-aside { border: 1px solid #f0e0d8; border-radius: 18px; background: #fff; box-shadow: 0 12px 32px #773d180d; }
.article-panel { padding: clamp(24px, 4vw, 48px); }
.article-panel h1 { margin: 0 0 20px; font-size: clamp(29px, 3vw, 40px); line-height: 1.4; color: #152038; }
.article-meta { display: flex; flex-wrap: wrap; gap: 10px 22px; padding-bottom: 22px; border-bottom: 1px solid #eadbd5; color: #8a94a3; font-size: 13px; }
.sample-label { color: #b35b3b; }
.article-lead { margin: 26px 0; padding: 20px 23px; border-left: 4px solid #f05033; border-radius: 0 8px 8px 0; color: #596b7d; background: #fff5f0; line-height: 1.8; }
.article-content { font-size: 16px; line-height: 2; color: #26354a; overflow-wrap: anywhere; }
.article-content p { margin: 0 0 20px; }
.article-content h2 { margin: 32px 0 12px; font-size: 22px; color: #142b44; }
.article-back { margin-top: 32px; padding-top: 22px; border-top: 1px solid #eadbd5; color: #dc3b28; font-weight: 800; }
.article-aside { padding: 25px; }
.article-aside h2 { margin: 0 0 16px; font-size: 20px; }
.article-aside ul { margin: 0; padding: 0; list-style: none; }
.article-aside li { padding: 15px 0; border-top: 1px solid #f0e4df; font-size: 14px; line-height: 1.55; }
.article-aside li a:hover { color: #e83b28; }
.aside-help { margin-top: 22px; padding: 21px; border-radius: 12px; background: #fff2eb; }
.aside-help p { color: #647081; font-size: 13px; }
.aside-help a { color: #e23c28; font-size: 13px; font-weight: 800; }
@media (max-width: 900px) { .news-nav { gap: 12px; font-size: 12px; } .news-phone { display: none; } .article-layout { grid-template-columns: 1fr; } }
@media (max-width: 780px) { .news-home-grid, .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .news-nav { margin-left: auto; } .news-nav a:not([aria-current]) { display: none; } .news-hero-inner { min-height: 220px; } }
@media (max-width: 560px) { .news-home-grid, .news-grid { grid-template-columns: 1fr; } .news-hero-mark { width: 75px; height: 75px; font-size: 47px; border-radius: 15px; } .news-hero-inner { min-height: 190px; } .news-hero p:last-child { font-size: 14px; } .news-section-title { display: block; } .news-section-title > span { display: block; margin-top: 8px; } .news-end-band .wrap { display: block; } .news-end-band a { display: inline-block; margin-top: 15px; } .article-meta { gap: 7px 14px; } .article-panel { padding: 24px 18px; } }

/* The article landing page uses one editorial row per story. */
.news-hero-inner { min-height: 184px; }
.news-hero h1 { font-size: clamp(34px, 4vw, 49px); }
.news-hero-mark { width: 94px; height: 94px; border-radius: 22px; font-size: 61px; }
.news-list-layout { display: grid; grid-template-columns: minmax(0, 1fr) 282px; align-items: start; gap: 30px; }
.news-stream { min-width: 0; }
.news-row { margin-bottom: 16px; border: 1px solid #f0e2da; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 10px 28px #62351d0b; }
.news-row-link { display: grid; grid-template-columns: 92px minmax(0, 1fr) 190px; align-items: center; gap: 20px; min-height: 164px; padding: 15px; }
.news-row:hover { border-color: #ffc4b2; box-shadow: 0 14px 35px #62351d18; }
.news-date { display: flex; flex-direction: column; align-items: center; justify-content: center; align-self: stretch; min-height: 120px; border-radius: 11px; color: #fff; background: linear-gradient(160deg, #df2725, #ff7134); }
.news-date strong { font-size: 43px; line-height: 1.05; }
.news-date span { margin-top: 6px; font-size: 13px; letter-spacing: .08em; }
.news-row-copy { min-width: 0; }
.news-row-category { color: #ef4a2e; font-size: 12px; font-weight: 800; letter-spacing: .06em; }
.news-row h3 { margin: 7px 0 8px; color: #182539; font-size: 21px; line-height: 1.42; }
.news-row-copy p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: 0 0 12px; color: #6e7a89; font-size: 13px; line-height: 1.6; }
.news-row-thumb { display: grid; place-items: center; width: 100%; height: 132px; overflow: hidden; border-radius: 10px; color: #fff; background: linear-gradient(135deg, #dc2827, #ff783e); }
.news-row-thumb img { width: 100%; height: 100%; object-fit: cover; }
.news-row-thumb span { font-size: 70px; font-weight: 900; opacity: .3; }
.news-list-aside { display: grid; gap: 18px; }
.news-aside-box, .news-aside-contact { padding: 24px; border: 1px solid #f0e2da; border-radius: 16px; background: #fff; }
.news-aside-box h2, .news-aside-contact h2 { margin: 0 0 12px; color: #162238; font-size: 20px; }
.news-aside-box p, .news-aside-contact p { margin: 0 0 15px; color: #758292; font-size: 13px; line-height: 1.7; }
.news-aside-box > a { display: flex; justify-content: space-between; padding: 11px 0; border-top: 1px solid #f1e5de; color: #23334b; font-size: 14px; font-weight: 700; }
.news-aside-box > a:hover, .news-aside-latest a:hover { color: #ed452c; }
.news-aside-latest { margin: 0; padding-left: 23px; color: #ed452c; }
.news-aside-latest li { padding: 10px 0; border-top: 1px solid #f1e5de; }
.news-aside-latest a { color: #23334b; font-size: 13px; line-height: 1.55; }
.news-aside-contact { color: #fff; background: linear-gradient(155deg, #d72324, #ff733a); border: 0; }
.news-aside-contact > span { display: block; margin-bottom: 8px; color: #ffdccd; font-size: 10px; font-weight: 800; letter-spacing: .15em; }
.news-aside-contact h2, .news-aside-contact p { color: #fff; }
.news-aside-contact > a { display: inline-block; padding: 10px 14px; border-radius: 7px; color: #d92d25; background: #fff; font-size: 13px; font-weight: 800; }
@media (max-width: 1000px) {
  .news-list-layout { grid-template-columns: minmax(0, 1fr) 235px; gap: 20px; }
  .news-row-link { grid-template-columns: 76px minmax(0, 1fr) 135px; gap: 14px; }
  .news-row-thumb { height: 116px; }
  .news-date { min-height: 116px; }
}
@media (max-width: 760px) {
  .news-list-layout { grid-template-columns: 1fr; }
  .news-list-aside { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .news-aside-contact { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .news-hero-inner { min-height: 145px; }
  .news-hero h1 { font-size: 32px; }
  .news-hero-mark { width: 62px; height: 62px; border-radius: 14px; font-size: 40px; }
  .news-hero p:last-child { margin-top: 7px; font-size: 12px; }
  .news-row-link { grid-template-columns: 57px minmax(0, 1fr) 72px; gap: 10px; min-height: 118px; padding: 10px; }
  .news-date { min-height: 95px; }
  .news-date strong { font-size: 28px; }
  .news-date span { font-size: 10px; }
  .news-row-category { font-size: 10px; }
  .news-row h3 { margin: 4px 0; font-size: 15px; }
  .news-row-copy p { display: none; }
  .news-read { font-size: 11px; }
  .news-row-thumb { height: 95px; }
  .news-list-aside { grid-template-columns: 1fr; }
  .news-aside-contact { grid-column: auto; }
}

/* Listing refinements: text-only rows and consultation after the articles. */
.news-row-link { grid-template-columns: 92px minmax(0, 1fr); }
.news-list-contact { margin-top: 26px; }
.news-pages { flex-wrap: wrap; gap: 10px; }
.news-pages a { font-weight: 700; }
.news-pages a[aria-disabled="true"] { color: #98a0aa; border-color: #e6e9ec; background: #f6f7f8; pointer-events: none; }
@media (max-width: 1000px) {
  .news-row-link { grid-template-columns: 76px minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .news-row-link { grid-template-columns: 57px minmax(0, 1fr); }
}
.news-pages .news-page-disabled { padding: 9px 17px; border: 1px solid #e6e9ec; border-radius: 8px; color: #98a0aa; background: #f6f7f8; }

/* Article navigation uses PbootCMS's published neighbours in this category. */
.article-adjacent { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 34px; padding-top: 24px; border-top: 1px solid #eadbd5; }
.article-adjacent-item { min-width: 0; padding: 17px 18px; border: 1px solid #f0e0d8; border-radius: 12px; color: #8893a2; background: #fffaf7; font-size: 14px; }
.article-adjacent-item > span { display: block; margin-bottom: 7px; color: #ea482e; font-size: 12px; font-weight: 800; }
.article-adjacent-item a { display: block; color: #1b2b40; font-weight: 800; line-height: 1.55; overflow-wrap: anywhere; }
.article-adjacent-item a:hover { color: #e83b28; }
@media (max-width: 560px) { .article-adjacent { grid-template-columns: 1fr; gap: 10px; } }

/* News list feedback: linked CMS ad, compact rows and sidebar preview form. */
.news-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.news-ad-hero { background: #fff; }
.news-ad-link { display: block; overflow: hidden; }
.news-ad-link img { display: block; width: 100%; height: auto; aspect-ratio: 400 / 49; object-fit: cover; }
.news-row-link { min-height: 82px; padding: 7px 11px; grid-template-columns: 64px minmax(0, 1fr); gap: 15px; }
.news-date { min-height: 68px; }
.news-date strong { font-size: 30px; }
.news-date span { margin-top: 2px; font-size: 10px; }
.news-row-category { font-size: 10px; }
.news-row h3 { margin: 2px 0; font-size: 17px; line-height: 1.3; }
.news-row-copy p { display: none; }
.news-read { font-size: 11px; }
.news-aside-form { padding: 22px; border: 1px solid #f0e2da; border-radius: 16px; background: #fff; box-shadow: 0 10px 28px #62351d0b; }
.news-aside-form .form-kicker { display: block; margin-bottom: 6px; color: #ec462e; font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.news-aside-form h2 { margin: 0 0 5px; font-size: 20px; color: #162238; }
.news-aside-form p { margin: 0 0 14px; color: #758292; font-size: 12px; line-height: 1.5; }
.news-aside-form label { display: block; margin-top: 10px; color: #25344b; font-size: 12px; font-weight: 700; }
.news-aside-form input, .news-aside-form select { display: block; width: 100%; height: 37px; margin-top: 4px; padding: 7px 9px; border: 1px solid #dce2e8; border-radius: 7px; background: #fff; color: #25344b; font: inherit; font-weight: 400; }
.news-aside-form button { width: 100%; margin-top: 15px; padding: 10px; border: 0; border-radius: 7px; color: #fff; background: #ed432d; font-weight: 800; cursor: pointer; }
.news-aside-form small { display: block; margin-top: 8px; color: #a55242; font-size: 10px; line-height: 1.5; }
.news-aside-form .form-state { margin-top: 7px; color: #a33223; font-size: 11px; }
.header-phone-icon { display: none; }
@media (max-width: 780px) {
  .header-phone { display: grid; place-items: center; width: 38px; height: 38px; margin-right: 9px; border-radius: 9px; color: #e23623; background: #fff7f3; }
  .header-phone small, .header-phone strong { display: none; }
  .header-phone-icon { display: block; width: 21px; height: 21px; }
}
@media (max-width: 560px) {
  .news-ad-link img { height: 98px; aspect-ratio: auto; object-position: left center; }
  .news-row-link { min-height: 90px; padding: 8px; grid-template-columns: 56px minmax(0, 1fr); gap: 10px; }
  .news-date { min-height: 72px; }
  .news-date strong { font-size: 28px; }
  .news-row h3 { font-size: 14px; line-height: 1.32; }
}
.news-row-category, .news-row .news-read { display: block; line-height: 1.15; }
.news-row-link { padding-top: 5px; padding-bottom: 5px; }
.news-title-line { display: flex; align-items: center; gap: 12px; }
.news-title-line h3 { flex: 1; min-width: 0; }
.news-title-line .news-read { flex: none; white-space: nowrap; }
@media (max-width: 560px) {
  .news-title-line { gap: 7px; }
  .news-title-line .news-read { font-size: 10px; }
}

/* Homepage news links show only the date and article title. */
.news-home-grid .news-card > a { display: flex; align-items: center; gap: 15px; min-height: 105px; padding: 16px; }
.news-card-date { flex: 0 0 76px; display: grid; place-items: center; align-self: stretch; padding: 8px; border-radius: 10px; color: #fff; background: linear-gradient(150deg, #db2525, #ff7135); font-size: 13px; font-weight: 800; text-align: center; }
.news-home-grid .news-card h3 { margin: 0; font-size: 16px; line-height: 1.45; }
.mobile-carousel-controls { display: none; }
@media (max-width: 780px) {
  .hero-copy { padding-top: 75px; text-align: center; }
  .hero-tags { justify-content: center; }
  .hero-copy .actions { align-items: center; }
  .learning-loop, .class-grid { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; touch-action: pan-x; padding: 2px 2px 12px; }
  .learning-loop::-webkit-scrollbar, .class-grid::-webkit-scrollbar { display: none; }
  .learning-loop article, .class-grid .class-card { flex: 0 0 calc(50% - 8px); scroll-snap-align: start; }
  .learning-loop article:last-child { grid-column: auto; min-height: 195px; }
  .mobile-carousel-controls { display: flex; justify-content: center; gap: 18px; margin-top: 5px; }
  .mobile-carousel-controls .arrow { width: 38px; height: 38px; font-size: 28px; }
}
@media (max-width: 520px) {
  .hero-copy { padding-top: 130px; }
  .hero-copy .actions { display: none; }
  .learning-loop article { flex-basis: calc((100% - 16px) * 2 / 3); }
  .class-grid .class-card { flex-basis: calc(100% - 30px); }
  .news-home-grid .news-card > a { min-height: 86px; padding: 10px; }
  .news-card-date { flex-basis: 73px; }
  .news-home-grid .news-card h3 { font-size: 15px; }
}
.class-grid.scroller { display: grid; overflow: visible; scroll-snap-type: none; }
@media (max-width: 780px) {
  .class-grid.scroller { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
}

/* Consistent course hover, four teachers and three campus cards on desktop. */
.class-card.featured { border: 1px solid #ffdecb; background: #fff9f5; }
.class-card:hover, .class-card:focus-within { border-color: var(--orange); box-shadow: 0 0 0 2px var(--orange), 0 14px 30px #a947221a; }
#teachers .teacher-card { flex-basis: calc((100% - 48px) / 4); }
.teacher-card .portrait { height: auto; aspect-ratio: 4 / 5; background-size: 400% auto; }
.campus-track article { flex-basis: calc((100% - 32px) / 3); }
@media (max-width: 780px) {
  #teachers .teacher-card, .campus-track article { flex-basis: calc((100% - 16px) / 2); }
}
@media (max-width: 520px) {
  #teachers .teacher-card, .campus-track article { flex-basis: 77%; }
}
.news-card-date { flex-basis: 96px; white-space: nowrap; font-size: 12px; }
@media (max-width: 520px) { .news-card-date { flex-basis: 90px; font-size: 11px; } }
.news-empty { margin: 0; padding: 34px 28px; border: 1px solid #f1dfd8; border-radius: 14px; background: #fffaf7; color: #475569; text-align: center; }
.news-stream:has(.news-row) .news-empty { display: none; }
.news-stream:not(:has(.news-row)) .news-pages, .news-aside-box:not(:has(li)) { display: none; }
