/* ==========================================================================
   丽景小学 · 第 5 套界面「橙暖门户」（/orange）
   浅米黄云朵底 + 橙色圆角导航 + 密集门户式信息排布，
   与经典版 / 丽景新版 / 极简编辑版 / 红韵校园版均不同。
   本文件自包含，不依赖 site.css / lijing.css / editorial.css / red.css。
   ========================================================================== */

:root {
  --o-orange: #F0891F;
  --o-orange-dark: #D96C08;
  --o-orange-deep: #B25205;
  --o-gold: #F7B733;
  --o-green: #4FA36A;
  --o-blue: #3E8FC4;
  --o-cream: #FFF8EA;
  --o-cream-2: #FDF0D8;
  --o-cream-3: #FBE7C4;
  --o-ink: #4A3524;
  --o-ink-2: #79624D;
  --o-ink-3: #A08D78;
  --o-line: #EFE1C8;
  --o-white: #FFFFFF;
  --o-w: 1200px;
  --o-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  --o-kai: "STKaiti", "KaiTi", "Kaiti SC", "Noto Serif SC", "Songti SC", serif;
  --o-shadow: 0 6px 20px rgba(176, 112, 32, .08);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.o-body {
  margin: 0;
  font-family: var(--o-sans);
  color: var(--o-ink);
  background:
    radial-gradient(700px 300px at 8% 6%, #FFFFFF 0%, rgba(255, 255, 255, 0) 70%),
    radial-gradient(900px 380px at 92% 28%, #FFFDF6 0%, rgba(255, 255, 255, 0) 70%),
    var(--o-cream);
  font-size: 14.5px;
  line-height: 1.7;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button, input, select { font-family: inherit; }

.o-wrap { max-width: var(--o-w); margin: 0 auto; padding: 0 24px; }

/* ---------------- 顶部小条 ---------------- */
.o-topbar { font-size: 12.5px; color: var(--o-ink-2); }
.o-topbar .o-wrap {
  display: flex; align-items: center; justify-content: space-between;
  height: 34px;
}
.o-tb-date { color: var(--o-ink-3); letter-spacing: .04em; }
.o-tb-links { display: flex; gap: 18px; }
.o-tb-links a:hover { color: var(--o-orange-dark); }

/* ---------------- 报头（云朵 + 彩虹） ---------------- */
.o-hero {
  position: relative;
  background:
    linear-gradient(180deg, rgba(255, 253, 246, 0) 0%, rgba(255, 243, 219, .92) 78%, rgba(255, 243, 219, 0) 100%),
    linear-gradient(100deg, #FFF6E3 0%, #FFF1D6 46%, #FDE7C8 100%);
  padding: 16px 0 24px;
  overflow: hidden;
}
.o-hero::before {
  content: "";
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(150px 74px at 9% 18%, rgba(255, 255, 255, .95), rgba(255, 255, 255, 0) 72%),
    radial-gradient(210px 96px at 76% 8%, rgba(255, 255, 255, .9), rgba(255, 255, 255, 0) 72%),
    radial-gradient(120px 60px at 34% 34%, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0) 70%),
    radial-gradient(240px 110px at 96% 60%, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 72%),
    conic-gradient(from 200deg at 88% 4%, rgba(247, 183, 51, .22), rgba(240, 137, 31, .1) 32%, rgba(255, 255, 255, 0) 55%);
}
.o-hero-inner {
  position: relative;
  display: flex; align-items: center; justify-content: space-between;
  gap: 28px;
  padding: 10px 0 20px;
}
.o-brand { display: flex; align-items: center; gap: 16px; min-width: 0; }
.o-logo {
  width: 76px; height: 76px; flex: 0 0 76px; object-fit: contain;
  filter: drop-shadow(0 8px 16px rgba(178, 82, 5, .18));
}
.o-brand-tt { min-width: 0; }
.o-brand-name {
  font-family: var(--o-kai);
  font-size: 38px; font-weight: 700; line-height: 1.2; letter-spacing: .08em;
  color: #B85A08;
  text-shadow: 0 2px 0 #fff, 0 6px 16px rgba(184, 90, 8, .14);
}
.o-brand-en {
  font-size: 12.5px; letter-spacing: .22em; color: var(--o-ink-3);
  margin-top: 3px; text-transform: uppercase;
}
.o-motto { text-align: right; flex: 0 0 auto; }
.o-motto-line {
  font-family: var(--o-kai);
  font-size: 25px; font-weight: 700; letter-spacing: .14em; line-height: 1.5;
  color: #C9640B;
  text-shadow: 0 2px 0 #fff;
}
.o-motto-line + .o-motto-line { color: #A9540A; }
.o-motto-sub {
  font-size: 11.5px; letter-spacing: .3em; color: var(--o-ink-3); margin-top: 4px;
}

/* ---------------- 橙色圆角导航 ---------------- */
.o-nav-inner {
  position: relative;
  display: flex; align-items: center;
  gap: 2px;
  background: linear-gradient(180deg, #F9A23A 0%, #F0891F 48%, #E1780F 100%);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(215, 116, 16, .28), inset 0 1px 0 rgba(255, 255, 255, .35);
  padding: 0 10px;
  overflow-x: auto;
  scrollbar-width: none;
}
.o-nav-inner::-webkit-scrollbar { display: none; }
.o-nav-inner a {
  position: relative;
  display: block; padding: 12px 18px;
  color: #FFF6E6; font-size: 15px; font-weight: 600; white-space: nowrap;
  letter-spacing: .04em;
  border-right: 1px solid rgba(255, 255, 255, .16);
}
.o-nav-inner a:last-child { border-right: none; }
.o-nav-inner a:hover { background: rgba(255, 255, 255, .14); }
.o-nav-inner a.is-active { background: rgba(255, 255, 255, .2); color: #fff; }
.o-nav-inner a.is-active::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 5px;
  height: 2px; background: #FFF0C9;
}

/* ---------------- 首页主体 ---------------- */
.o-main { padding: 20px 0 8px; }
.o-top-grid {
  display: grid;
  /* 右列宽度与下方「校园动态 / 通知公告」单个卡片等宽 */
  grid-template-columns: 1fr calc((100% - 244px - 18px - 14px) / 2);
  gap: 18px;
  align-items: stretch;
}

/* 大图 */
.o-slider {
  position: relative; background: #fff; border: 1px solid var(--o-line);
  border-radius: 8px; overflow: hidden; box-shadow: var(--o-shadow);
  min-height: 360px;
}
.o-slider-img { position: relative; display: block; height: 360px; min-height: 0; }
.o-slider-img img { width: 100%; height: 360px; object-fit: cover; min-height: 0; }
.o-slide-cap {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 30px 18px 14px;
  background: linear-gradient(180deg, rgba(48, 25, 4, 0) 0%, rgba(48, 25, 4, .72) 70%, rgba(48, 25, 4, .85) 100%);
  color: #fff; font-size: 15px; font-weight: 600; letter-spacing: .02em;
}
.o-slide-cap span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.o-dots {
  position: absolute; right: 16px; bottom: 16px; display: flex; gap: 6px;
}
.o-dots i {
  width: 9px; height: 9px; border-radius: 50%;
  background: rgba(255, 255, 255, .55);
}
.o-dots i:first-child { background: var(--o-gold); box-shadow: 0 0 0 2px rgba(255, 255, 255, .38); }

/* 最新内容 */
.o-media {
  background: #fff; border: 1px solid var(--o-line); border-radius: 8px;
  box-shadow: var(--o-shadow); overflow: hidden;
  display: flex; flex-direction: column;
}
.o-media-h {
  display: flex; align-items: center; justify-content: space-between;
  padding: 9px 12px;
  background: linear-gradient(180deg, #FFF3DC, #FDE9C8);
  border-bottom: 1px solid var(--o-line);
}
.o-media-h b {
  display: flex; align-items: center; gap: 8px;
  font-size: 15px; color: var(--o-orange-deep); letter-spacing: .06em;
}
.o-media-h b::before {
  content: ""; width: 6px; height: 16px; border-radius: 3px;
  background: linear-gradient(180deg, var(--o-gold), var(--o-orange));
}
.o-media-more { font-size: 12px; color: var(--o-ink-3); }
.o-media-more:hover { color: var(--o-orange-dark); }
.o-media-lead { display: block; padding: 10px 12px 8px; }
.o-media-lead img {
  width: 100%; height: 96px; object-fit: cover; border-radius: 5px;
}
.o-media-lead b {
  display: block; margin-top: 7px; font-size: 13.5px; line-height: 1.5;
  color: var(--o-ink); font-weight: 700;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.o-media-lead:hover b { color: var(--o-orange-dark); }
.o-media-list { padding: 2px 12px 8px; flex: 1; display: flex; flex-direction: column; }
.o-media-list li { border-top: 1px dashed var(--o-line); flex: 1; display: flex; min-height: 0; }
.o-media-list li:first-child { border-top: none; }
.o-media-list a {
  display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0;
  padding: 7px 0; font-size: 13px;
}
.o-media-list a::before {
  content: "›"; color: var(--o-orange); font-weight: 700; flex: 0 0 auto;
}
.o-media-list .o-tt {
  flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.o-media-list a:hover .o-tt { color: var(--o-orange-dark); }
.o-media-list .o-dt { flex: 0 0 auto; color: var(--o-ink-3); font-size: 11.5px; }

/* ---------------- 搜索 + 登录 ---------------- */
.o-tool {
  display: grid; grid-template-columns: 1fr 430px; gap: 14px;
  background: #fff; border: 1px solid var(--o-line); border-radius: 8px;
  box-shadow: var(--o-shadow);
  padding: 10px 12px; margin-top: 16px;
}
.o-search-box { display: flex; align-items: center; gap: 8px; min-width: 0; }
.o-tool-label {
  flex: 0 0 auto; display: inline-flex; align-items: center;
  height: 32px; padding: 0 12px; border-radius: 4px;
  background: linear-gradient(180deg, #F9A23A, #EF871C);
  color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .06em;
}
.o-search-box input {
  flex: 1; min-width: 0; height: 32px; padding: 0 10px;
  border: 1px solid var(--o-line); border-radius: 4px;
  background: #FFFCF6; font-size: 13px; color: var(--o-ink); outline: none;
}
.o-search-box input:focus { border-color: var(--o-gold); background: #fff; }
.o-btn-orange {
  flex: 0 0 auto; height: 32px; padding: 0 18px; border: none; border-radius: 4px;
  background: linear-gradient(180deg, #F7B733, #EE9414);
  color: #fff; font-size: 13px; font-weight: 600; cursor: pointer;
  letter-spacing: .06em;
}
.o-btn-orange:hover { filter: brightness(1.05); }
.o-login-box { display: flex; align-items: center; gap: 8px; min-width: 0; }
.o-login-box input {
  flex: 1; min-width: 0; height: 32px; padding: 0 10px;
  border: 1px solid var(--o-line); border-radius: 4px;
  background: #FFFCF6; font-size: 13px; outline: none;
}
.o-login-box input:focus { border-color: var(--o-gold); background: #fff; }
.o-btn-green {
  flex: 0 0 auto; height: 32px; padding: 0 18px; border: none; border-radius: 4px;
  background: linear-gradient(180deg, #6FBF88, #479B62);
  color: #fff; font-size: 13px; font-weight: 600; cursor: pointer;
  letter-spacing: .06em;
}

/* ---------------- 特色课程 + 新闻块 ---------------- */
.o-body-grid {
  display: grid; grid-template-columns: 244px 1fr; gap: 18px;
  margin-top: 16px; align-items: start;
}
.o-courses { display: flex; flex-direction: column; gap: 10px; }
.o-course {
  position: relative; display: flex; align-items: center; gap: 12px;
  min-height: 74px; padding: 10px 14px;
  border-radius: 8px; color: #fff;
  box-shadow: var(--o-shadow);
  overflow: hidden;
}
.o-course::after {
  content: ""; position: absolute; right: -20px; bottom: -28px;
  width: 92px; height: 92px; border-radius: 50%;
  background: rgba(255, 255, 255, .14);
}
.o-course-tx { min-width: 0; flex: 1; }
.o-course-name {
  font-size: 16px; font-weight: 700; letter-spacing: .06em;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.o-course-en {
  font-size: 10.5px; letter-spacing: .06em; opacity: .86; margin-top: 2px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.o-course-ico {
  position: relative; z-index: 1;
  flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255, 255, 255, .24);
  display: flex; align-items: center; justify-content: center;
}
.o-course-ico svg { width: 22px; height: 22px; stroke: #fff; fill: none; stroke-width: 1.8; }
.o-c1 { background: linear-gradient(135deg, #F2A03A, #E0761B); }
.o-c2 { background: linear-gradient(135deg, #C9A227, #A8811A); }
.o-c3 { background: linear-gradient(135deg, #DB8A3B, #B45E1C); }
.o-c4 { background: linear-gradient(135deg, #7FA65A, #5A8340); }
.o-c5 { background: linear-gradient(135deg, #E0663E, #BE3F26); }

.o-news-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
.o-block {
  background: #fff; border: 1px solid var(--o-line); border-radius: 8px;
  box-shadow: var(--o-shadow); overflow: hidden;
  display: flex; flex-direction: column;
}
.o-block-h {
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 12px;
  color: #fff;
  background: linear-gradient(90deg, #F09327 0%, #F7AC45 100%);
}
.o-block-h b {
  display: flex; align-items: center; gap: 8px;
  font-size: 15px; letter-spacing: .06em; font-weight: 700;
}
.o-block-h b::before {
  content: ""; width: 16px; height: 16px; border-radius: 4px;
  background: rgba(255, 255, 255, .3);
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .7);
}
.o-block.is-b .o-block-h { background: linear-gradient(90deg, #3E8FC4 0%, #63AEDA 100%); }
.o-block.is-c .o-block-h { background: linear-gradient(90deg, #E2702B 0%, #F0995B 100%); }
.o-block.is-d .o-block-h { background: linear-gradient(90deg, #4FA36A 0%, #79BE8F 100%); }
.o-block-more {
  font-size: 12px; color: #fff; opacity: .9;
  background: rgba(255, 255, 255, .22); border-radius: 3px; padding: 2px 8px;
}
.o-block-more:hover { opacity: 1; background: rgba(255, 255, 255, .32); }
.o-block-list { padding: 6px 12px 10px; flex: 1; }
.o-block-list li { border-bottom: 1px dashed var(--o-line); }
.o-block-list li:last-child { border-bottom: none; }
.o-block-list a {
  display: flex; align-items: center; gap: 7px;
  padding: 7px 0; font-size: 13px;
}
.o-block-list a::before { content: "›"; color: var(--o-orange); font-weight: 700; }
.o-block-list .o-tt {
  flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.o-block-list a:hover .o-tt { color: var(--o-orange-dark); }
.o-block-list .o-dt { flex: 0 0 auto; color: var(--o-ink-3); font-size: 11.5px; }
.o-block-empty { padding: 16px 10px; color: var(--o-ink-3); font-size: 13px; }

/* ---------------- 校园风景 ---------------- */
.o-scenery {
  background: #fff; border: 1px solid var(--o-line); border-radius: 8px;
  box-shadow: var(--o-shadow); margin-top: 16px; padding: 10px 12px 12px;
}
.o-scene-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 10px;
}
.o-scene-head b {
  display: flex; align-items: center; gap: 8px;
  font-size: 15px; color: var(--o-orange-deep); letter-spacing: .06em;
}
.o-scene-head b::before {
  content: ""; width: 6px; height: 16px; border-radius: 3px;
  background: linear-gradient(180deg, var(--o-gold), var(--o-orange));
}
.o-scene-strip {
  display: flex; gap: 12px; overflow-x: auto; scrollbar-width: thin;
  padding-bottom: 4px;
}
.o-scene-item {
  flex: 1 0 152px; max-width: 220px; text-align: center;
}
.o-scene-item img {
  width: 100%; height: 98px; object-fit: cover; border-radius: 6px;
  border: 2px solid #fff; box-shadow: 0 4px 12px rgba(176, 112, 32, .16);
}
.o-scene-item span {
  display: block; margin-top: 5px; font-size: 12.5px; color: var(--o-ink-2);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ---------------- 底部工具区 ---------------- */
.o-utility {
  display: grid; grid-template-columns: 236px 1fr 186px; gap: 18px;
  background: #fff; border: 1px solid var(--o-line); border-radius: 8px;
  box-shadow: var(--o-shadow); margin-top: 16px; padding: 16px;
}
.o-utility-left { display: flex; gap: 10px; }
.o-qr { text-align: center; flex: 0 0 106px; }
.o-qr img {
  width: 96px; height: 96px; margin: 0 auto; object-fit: contain;
  border: 1px solid var(--o-line); border-radius: 4px; padding: 4px; background: #fff;
}
.o-qr span { display: block; margin-top: 4px; font-size: 11.5px; color: var(--o-ink-3); }
.o-quick { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.o-quick a {
  display: flex; align-items: center; justify-content: center;
  height: 28px; border-radius: 4px; font-size: 12.5px; color: #fff;
  background: linear-gradient(180deg, #F09A2E, #E07F13);
}
.o-quick a:nth-child(2) { background: linear-gradient(180deg, #E7A83C, #CE8A17); }
.o-quick a:nth-child(3) { background: linear-gradient(180deg, #79B78C, #4F9A66); }
.o-quick a:hover { filter: brightness(1.05); }

.o-links { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 14px; }
.o-link-col h4 {
  font-size: 13px; color: var(--o-orange-deep); padding-bottom: 5px;
  border-bottom: 1px solid var(--o-cream-3); margin-bottom: 5px;
  letter-spacing: .04em;
}
.o-link-col a {
  display: block; font-size: 12.5px; color: var(--o-ink-2);
  line-height: 1.9; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.o-link-col a:hover { color: var(--o-orange-dark); }

.o-friend { display: flex; flex-direction: column; gap: 8px; }
.o-select {
  width: 100%; height: 30px; padding: 0 8px;
  border: 1px solid var(--o-line); border-radius: 4px;
  background: #FFFCF6; color: var(--o-ink-2); font-size: 12.5px;
}

/* ---------------- 页脚 ---------------- */
.o-footer {
  margin-top: 22px; padding: 22px 0 26px;
  background: linear-gradient(180deg, rgba(255, 250, 240, 0), #FBEBCF);
  border-top: 1px solid var(--o-line);
}
.o-foot-grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 30px;
  padding-bottom: 18px; border-bottom: 1px dashed #E8D6B4;
}
.o-foot-name { font-family: var(--o-kai); font-size: 22px; color: var(--o-orange-deep); font-weight: 700; }
.o-foot-en { font-size: 11px; letter-spacing: .16em; color: var(--o-ink-3); margin-top: 3px; }
.o-foot-desc { margin-top: 8px; font-size: 12.5px; color: var(--o-ink-2); line-height: 1.8; }
.o-foot-h { font-size: 13.5px; color: var(--o-orange-deep); font-weight: 700; margin-bottom: 8px; letter-spacing: .04em; }
.o-foot-links li { line-height: 1.95; }
.o-foot-links a { font-size: 12.5px; color: var(--o-ink-2); }
.o-foot-links a:hover { color: var(--o-orange-dark); }
.o-foot-contact { font-size: 12.5px; color: var(--o-ink-2); line-height: 1.95; }
.o-foot-bottom {
  padding-top: 14px; text-align: center; font-size: 12px; color: var(--o-ink-3);
  line-height: 2;
}
.o-foot-bottom b { color: var(--o-ink-2); font-weight: 600; }

/* ---------------- 内页页头 ---------------- */
.o-page-head {
  position: relative;
  background:
    radial-gradient(320px 150px at 88% 10%, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 70%),
    linear-gradient(100deg, #F2921D 0%, #F7A83F 55%, #FBC266 100%);
  color: #fff;
  padding: 28px 0 30px;
}
.o-crumb { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: rgba(255, 255, 255, .86); }
.o-crumb a:hover { color: #fff; text-decoration: underline; }
.o-sep { opacity: .6; }
.o-ph-title { font-size: 30px; font-weight: 800; letter-spacing: .08em; margin-top: 8px; }
.o-ph-sub { margin-top: 4px; font-size: 13px; color: rgba(255, 255, 255, .88); }

/* ---------------- 列表 / 搜索 ---------------- */
.o-list-main { padding: 20px 0 10px; }
.o-list-wrap { display: grid; grid-template-columns: 1fr 300px; gap: 18px; align-items: start; }
.o-item {
  display: flex; gap: 16px; align-items: flex-start;
  background: #fff; border: 1px solid var(--o-line); border-radius: 8px;
  box-shadow: var(--o-shadow); padding: 14px 16px; margin-bottom: 12px;
}
.o-item-date {
  flex: 0 0 62px; text-align: center; border-right: 1px dashed var(--o-line);
  padding-right: 12px;
}
.o-d { font-size: 24px; font-weight: 800; color: var(--o-orange); line-height: 1.2; }
.o-m { font-size: 11px; color: var(--o-ink-3); letter-spacing: .04em; }
.o-item-body { flex: 1; min-width: 0; }
.o-item-tt { font-size: 16px; font-weight: 700; line-height: 1.5; }
.o-item-tt a:hover { color: var(--o-orange-dark); }
.o-item-sum {
  margin-top: 5px; font-size: 13px; color: var(--o-ink-2);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.o-item-meta { margin-top: 6px; font-size: 12px; color: var(--o-ink-3); }
.o-item-thumb { flex: 0 0 132px; }
.o-item-thumb img { width: 132px; height: 88px; object-fit: cover; border-radius: 6px; }
.o-empty {
  background: #fff; border: 1px dashed var(--o-line); border-radius: 8px;
  padding: 36px 20px; text-align: center; color: var(--o-ink-3); font-size: 13.5px;
}
.o-pager { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 18px 0 6px; }
.o-pager a, .o-pager span {
  min-width: 34px; height: 34px; padding: 0 10px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--o-line); border-radius: 4px;
  background: #fff; font-size: 13px; color: var(--o-ink-2);
}
.o-pager a:hover { border-color: var(--o-orange); color: var(--o-orange-dark); }
.o-pager .is-current { background: var(--o-orange); border-color: var(--o-orange); color: #fff; font-weight: 700; }
.o-pager .is-disabled { opacity: .45; }

/* 搜索 */
.o-search-big {
  display: flex; gap: 8px; background: #fff; border: 1px solid var(--o-line);
  border-radius: 8px; box-shadow: var(--o-shadow); padding: 12px; margin-bottom: 14px;
}
.o-search-big input {
  flex: 1; min-width: 0; height: 40px; padding: 0 12px;
  border: 1px solid var(--o-line); border-radius: 4px;
  background: #FFFCF6; font-size: 14px; outline: none;
}
.o-search-big input:focus { border-color: var(--o-gold); background: #fff; }
.o-search-big button {
  flex: 0 0 auto; height: 40px; padding: 0 26px; border: none; border-radius: 4px;
  background: linear-gradient(180deg, #F9A23A, #E87F13);
  color: #fff; font-size: 14px; font-weight: 700; cursor: pointer; letter-spacing: .1em;
}
.o-search-hit { font-size: 13px; color: var(--o-ink-2); margin-bottom: 12px; }
.o-search-hit b { color: var(--o-orange-dark); }

/* 图集 */
.o-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.o-filter a {
  padding: 6px 16px; border-radius: 999px;
  background: #fff; border: 1px solid var(--o-line);
  font-size: 13px; color: var(--o-ink-2);
}
.o-filter a:hover { border-color: var(--o-orange); color: var(--o-orange-dark); }
.o-filter a.is-current {
  background: linear-gradient(180deg, #F9A23A, #E87F13);
  border-color: var(--o-orange); color: #fff; font-weight: 600;
}
.o-gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.o-gcard {
  display: block; background: #fff; border: 1px solid var(--o-line);
  border-radius: 8px; overflow: hidden; box-shadow: var(--o-shadow);
}
.o-gcard-img { display: block; }
.o-gcard-img img { width: 100%; height: 148px; object-fit: cover; transition: transform .35s ease; }
.o-gcard:hover .o-gcard-img img { transform: scale(1.05); }
.o-gcard-cap {
  display: block; padding: 8px 10px; font-size: 13px; color: var(--o-ink-2);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ---------------- 侧栏 ---------------- */
.o-sidecard {
  background: #fff; border: 1px solid var(--o-line); border-radius: 8px;
  box-shadow: var(--o-shadow); padding: 12px 14px 14px; margin-bottom: 14px;
}
.o-side-h {
  display: flex; align-items: center; gap: 8px;
  font-size: 15px; font-weight: 700; color: var(--o-orange-deep);
  padding-bottom: 8px; margin-bottom: 6px; border-bottom: 1px solid var(--o-cream-3);
}
.o-side-h::before {
  content: ""; width: 6px; height: 16px; border-radius: 3px;
  background: linear-gradient(180deg, var(--o-gold), var(--o-orange));
}
.o-side-list li { border-bottom: 1px dashed var(--o-line); }
.o-side-list li:last-child { border-bottom: none; }
.o-side-list a {
  display: flex; gap: 8px; align-items: baseline;
  padding: 7px 0; font-size: 13px; color: var(--o-ink-2);
}
.o-side-list a:hover { color: var(--o-orange-dark); }
.o-side-list .o-n {
  flex: 0 0 18px; height: 18px; border-radius: 3px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--o-cream-2); color: var(--o-orange-dark);
  font-size: 11px; font-weight: 700;
}
.o-side-list li:nth-child(1) .o-n,
.o-side-list li:nth-child(2) .o-n,
.o-side-list li:nth-child(3) .o-n {
  background: linear-gradient(180deg, #F9A23A, #E87F13); color: #fff;
}
.o-side-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.o-side-gallery img { width: 100%; height: 76px; object-fit: cover; border-radius: 4px; }
.o-tip { font-size: 12.5px; color: var(--o-ink-3); }
.o-panel {
  background: linear-gradient(150deg, #F2921D 0%, #E1780F 100%);
  border-radius: 8px; padding: 14px 16px 16px; color: #fff;
  box-shadow: 0 10px 24px rgba(215, 116, 16, .22);
  margin-bottom: 14px;
}
.o-panel-h { font-size: 15px; font-weight: 700; letter-spacing: .06em; }
.o-panel .o-tip { color: rgba(255, 255, 255, .82); }
.o-cta-btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 34px; padding: 0 22px; border-radius: 4px;
  background: #fff; color: var(--o-orange-deep); font-size: 13px; font-weight: 700;
}
.o-cta-btn:hover { background: #FFF3DC; }

/* ---------------- 正文 ---------------- */
.o-article-band {
  position: relative;
  background:
    radial-gradient(300px 140px at 90% 6%, rgba(255, 255, 255, .5), rgba(255, 255, 255, 0) 70%),
    linear-gradient(100deg, #F2921D 0%, #F7A83F 55%, #FBC266 100%);
  color: #fff; padding: 26px 0 70px;
}
.o-article-band .o-wrap { text-align: center; }
.o-art-cat {
  display: inline-block; margin-top: 10px; padding: 2px 10px;
  border-radius: 999px; background: rgba(255, 255, 255, .22);
  font-size: 12px; letter-spacing: .08em;
}
.o-art-tt {
  font-size: 30px; font-weight: 800; line-height: 1.45; margin-top: 8px;
  color: #B3140D; text-shadow: 0 1px 2px rgba(255, 255, 255, .35);
}
.o-art-meta { margin-top: 8px; font-size: 12.5px; color: rgba(255, 255, 255, .86); }
.o-article-wrap { margin-top: -48px; padding-bottom: 8px; }
.o-article-band { z-index: 1; }
.o-article-card {
  position: relative; z-index: 2;
  background: #fff; border: 1px solid var(--o-line); border-radius: 10px;
  box-shadow: 0 12px 32px rgba(176, 112, 32, .12);
  padding: 30px 36px 34px;
}
.o-article-cover { margin: 0 0 22px; }
.o-article-cover img { width: 100%; border-radius: 6px; }
.o-prose { font-size: 15.5px; line-height: 1.95; color: #40301F; }
.o-prose p { margin: 0 0 14px; }
.o-prose h2, .o-prose h3 {
  margin: 24px 0 10px; color: var(--o-orange-deep);
  font-size: 19px; line-height: 1.5;
}
.o-prose h3 { font-size: 17px; }
.o-prose img { border-radius: 6px; margin: 12px 0; }
.o-prose ul, .o-prose ol { margin: 0 0 14px; padding-left: 22px; list-style: disc; }
.o-prose ol { list-style: decimal; }
.o-prose li { margin-bottom: 6px; }
.o-prose a { color: var(--o-orange-dark); text-decoration: underline; }
.o-prose blockquote {
  margin: 16px 0; padding: 12px 16px;
  border-left: 3px solid var(--o-gold); background: var(--o-cream);
  color: var(--o-ink-2);
}
.o-prose table { width: 100%; border-collapse: collapse; margin: 12px 0; }
.o-prose td, .o-prose th { border: 1px solid var(--o-line); padding: 8px 10px; }
.o-art-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin-top: 26px; padding-top: 16px; border-top: 1px solid var(--o-line);
  font-size: 13px; color: var(--o-ink-3);
}
.o-art-foot a { color: var(--o-orange-dark); }
.o-related { padding: 6px 0 10px; }
.o-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.o-related-item {
  background: #fff; border: 1px solid var(--o-line); border-radius: 8px;
  padding: 12px 14px; box-shadow: var(--o-shadow);
}
.o-related-item b { display: block; font-size: 14px; line-height: 1.55; }
.o-related-item span { display: block; margin-top: 5px; font-size: 12px; color: var(--o-ink-3); }

/* ---------------- 内容页（概况 / 联系 / 招生） ---------------- */
.o-content-main { padding: 20px 0 10px; }
.o-content {
  background: #fff; border: 1px solid var(--o-line); border-radius: 10px;
  box-shadow: var(--o-shadow); padding: 28px 34px 32px;
}
.o-lead-quote {
  border-left: 4px solid var(--o-orange);
  background: linear-gradient(90deg, var(--o-cream-2), #FFFDF8);
  padding: 14px 18px; border-radius: 0 6px 6px 0;
  font-size: 14.5px; color: var(--o-ink-2); line-height: 1.9;
}
.o-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 20px 0 6px; }
.o-fact {
  text-align: center; background: var(--o-cream); border: 1px solid var(--o-cream-3);
  border-radius: 8px; padding: 14px 8px;
}
.o-fact b { display: block; font-size: 24px; color: var(--o-orange-dark); line-height: 1.3; }
.o-fact span { font-size: 12.5px; color: var(--o-ink-2); }
.o-h2 {
  position: relative; margin: 26px 0 10px; padding-left: 12px;
  font-size: 19px; color: var(--o-orange-deep); line-height: 1.5;
}
.o-h2::before {
  content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 4px;
  border-radius: 2px; background: linear-gradient(180deg, var(--o-gold), var(--o-orange));
}
.o-content p { margin-bottom: 10px; font-size: 14.5px; color: #4C3B29; line-height: 1.95; }
.o-content a { color: var(--o-orange-dark); }
.o-note {
  margin: 16px 0; padding: 12px 16px; border-radius: 6px;
  background: var(--o-cream); border: 1px dashed var(--o-cream-3);
  font-size: 13.5px; color: var(--o-ink-2);
}
.o-env-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.o-env-grid img { width: 100%; height: 130px; object-fit: cover; border-radius: 6px; }
.o-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 6px; }
.o-contact-item {
  background: var(--o-cream); border: 1px solid var(--o-cream-3);
  border-radius: 8px; padding: 14px 16px;
}
.o-contact-item b { display: block; font-size: 12.5px; color: var(--o-ink-3); letter-spacing: .06em; }
.o-contact-item strong { display: block; margin-top: 4px; font-size: 17px; color: var(--o-orange-deep); }
.o-contact-item p { margin: 3px 0 0; font-size: 12.5px; color: var(--o-ink-2); }
.o-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 8px 0 6px; }
.o-step {
  background: var(--o-cream); border: 1px solid var(--o-cream-3); border-radius: 8px;
  padding: 14px 12px; font-size: 12.5px; color: var(--o-ink-2); line-height: 1.75;
}
.o-step .o-n {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 50%; margin-bottom: 6px;
  background: linear-gradient(180deg, #F9A23A, #E87F13); color: #fff;
  font-size: 13px; font-weight: 700;
}
.o-step b { display: block; font-size: 14px; color: var(--o-ink); margin-bottom: 2px; }

/* ---------------- 留言板 ---------------- */
.o-board-main { padding: 20px 0 10px; }
.o-board { display: grid; grid-template-columns: 1fr 320px; gap: 18px; align-items: start; }
.o-alert {
  background: #FFF2E8; border: 1px solid #F6C9A8; border-radius: 6px;
  padding: 10px 14px; font-size: 13px; color: #A94E10; margin-bottom: 12px;
}
.o-alert-ok { background: #EFF8F1; border-color: #BFE2C8; color: #2F7A49; }
.o-alert-ok b { color: #1F6B3B; letter-spacing: .1em; }
.o-form-card {
  background: #fff; border: 1px solid var(--o-line); border-radius: 10px;
  box-shadow: var(--o-shadow); padding: 20px 22px 22px;
}
.o-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.o-field { margin-bottom: 14px; }
.o-field label {
  display: block; font-size: 13px; color: var(--o-ink-2); margin-bottom: 5px;
  font-weight: 600;
}
.o-field label em { font-style: normal; font-size: 11.5px; color: var(--o-ink-3); margin-left: 6px; }
.o-req { color: #D64524; }
.o-input {
  width: 100%; padding: 9px 12px; font-size: 14px; color: var(--o-ink);
  border: 1px solid var(--o-line); border-radius: 4px; background: #FFFCF6;
  outline: none; line-height: 1.6;
}
.o-input:focus { border-color: var(--o-gold); background: #fff; }
textarea.o-input { min-height: 120px; resize: vertical; }
.o-cap-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.o-cap {
  display: inline-flex; align-items: center; justify-content: center;
  height: 36px; padding: 0 14px; border-radius: 4px;
  background: var(--o-cream-2); border: 1px dashed var(--o-cream-3);
  color: var(--o-orange-deep); font-weight: 700; letter-spacing: .08em;
}
.o-btn {
  display: inline-flex; align-items: center; justify-content: center;
  height: 40px; padding: 0 28px; border: none; border-radius: 4px;
  background: linear-gradient(180deg, #F9A23A, #E87F13);
  color: #fff; font-size: 14px; font-weight: 700; cursor: pointer;
  letter-spacing: .08em;
}
.o-btn:hover { filter: brightness(1.05); }
.o-msg-list { margin-top: 18px; }
.o-msg {
  background: #fff; border: 1px solid var(--o-line); border-radius: 8px;
  box-shadow: var(--o-shadow); padding: 14px 16px; margin-bottom: 12px;
}
.o-msg-h { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.o-msg-h b { font-size: 15px; }
.o-msg-h time { margin-left: auto; font-size: 12px; color: var(--o-ink-3); }
.o-chip {
  padding: 1px 9px; border-radius: 999px; font-size: 11.5px;
  background: #FFF3E0; color: #B46A10; border: 1px solid #F4D5AE;
}
.o-chip.is-done { background: #EFF8F1; color: #2F7A49; border-color: #BFE2C8; }
.o-chip.is-doing { background: #EFF4FB; color: #2F6392; border-color: #C6DAEE; }
.o-msg > p { margin-top: 8px; font-size: 13.5px; color: var(--o-ink-2); line-height: 1.85; }
.o-reply {
  margin-top: 10px; padding: 10px 12px; border-radius: 6px;
  background: var(--o-cream); border-left: 3px solid var(--o-green);
  font-size: 13px; color: var(--o-ink-2); line-height: 1.85;
}
.o-reply b { display: block; color: #35744C; margin-bottom: 2px; }
.o-code-line { margin-top: 8px; font-size: 12px; color: var(--o-ink-3); }
.o-code-line b { color: var(--o-orange-dark); letter-spacing: .12em; }
.o-flow li { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--o-line); }
.o-flow li:last-child { border-bottom: none; }
.o-flow .o-n {
  flex: 0 0 22px; width: 22px; height: 22px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--o-cream-2); color: var(--o-orange-dark);
  font-size: 12px; font-weight: 700;
}
.o-flow b { display: block; font-size: 13.5px; color: var(--o-ink); }
.o-flow span { font-size: 12.5px; color: var(--o-ink-3); line-height: 1.75; }

/* ---------------- 图集灯箱（与 gallery-lightbox.js 配套） ---------------- */
.gb-overlay {
  position: fixed; inset: 0; z-index: 9999; display: none;
  background: rgba(32, 20, 4, .95);
  align-items: center; justify-content: center; padding: 30px;
}
.gb-overlay.is-open { display: flex; }
.gb-figure { margin: 0; max-width: min(92vw, 1100px); max-height: 88vh; display: flex; flex-direction: column; align-items: center; }
.gb-img { max-width: 100%; max-height: calc(88vh - 70px); object-fit: contain; box-shadow: 0 24px 70px rgba(0, 0, 0, .5); }
.gb-cap { width: 100%; margin-top: 14px; display: flex; justify-content: space-between; gap: 18px; color: #FFF3E0; font-size: 13.5px; }
.gb-count { color: #D9B98A; letter-spacing: .12em; white-space: nowrap; }
.gb-btn {
  position: fixed; border: 1px solid rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .08);
  color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.gb-btn:hover { background: rgba(255, 255, 255, .2); }
.gb-close { top: 24px; right: 28px; width: 44px; height: 44px; border-radius: 50%; font-size: 26px; line-height: 1; }
.gb-prev, .gb-next { top: 50%; transform: translateY(-50%); width: 52px; height: 72px; font-size: 22px; }
.gb-prev { left: 26px; }
.gb-next { right: 26px; }
.gb-overlay.is-single .gb-prev, .gb-overlay.is-single .gb-next { display: none; }
body.gb-lock { overflow: hidden; }

/* ---------------- 响应式 ---------------- */
@media (max-width: 1100px) {
  .o-top-grid { grid-template-columns: 1fr calc((100% - 220px - 18px - 14px) / 2); }
  .o-body-grid { grid-template-columns: 220px 1fr; }
  .o-tool { grid-template-columns: 1fr; }
  .o-utility { grid-template-columns: 1fr; }
  .o-scene-item { flex: 0 0 132px; }
  .o-scene-item img { width: 132px; height: 86px; }
}
@media (max-width: 1024px) {
  .o-top-grid { grid-template-columns: 1fr; }
  .o-slider { min-height: 0; }
  .o-slider-img, .o-slider-img img { height: 240px; min-height: 0; }
  .o-body-grid { grid-template-columns: 1fr; }
  .o-courses { flex-direction: row; flex-wrap: wrap; }
  .o-course { flex: 1 1 180px; }
  .o-list-wrap, .o-board { grid-template-columns: 1fr; }
  .o-gallery-grid { grid-template-columns: repeat(3, 1fr); }
  .o-related-grid { grid-template-columns: repeat(2, 1fr); }
  .o-foot-grid { grid-template-columns: 1fr 1fr; gap: 20px; }
  .o-links { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .o-wrap { padding: 0 16px; }
  .o-topbar .o-wrap { height: auto; padding: 7px 0; flex-direction: column; gap: 2px; }
  .o-tb-links { flex-wrap: wrap; justify-content: center; row-gap: 2px; gap: 12px; }
  .o-hero-inner { flex-direction: column; align-items: flex-start; gap: 12px; }
  .o-brand-name { font-size: 28px; }
  .o-logo { width: 62px; height: 62px; flex: 0 0 62px; }
  .o-motto { text-align: left; }
  .o-motto-line { font-size: 19px; letter-spacing: .08em; }
  .o-nav-inner a { padding: 10px 13px; font-size: 14px; }
  .o-news-grid { grid-template-columns: 1fr; }
  .o-body-grid { gap: 12px; }
  .o-tool { gap: 8px; }
  .o-login-box { flex-wrap: wrap; }
  .o-login-box input { flex: 1 1 40%; }
  .o-item { gap: 10px; padding: 12px; }
  .o-item-date { flex: 0 0 52px; padding-right: 8px; }
  .o-item-thumb { display: none; }
  .o-gallery-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .o-gcard-img img { height: 112px; }
  .o-ph-title { font-size: 24px; }
  .o-art-tt { font-size: 22px; }
  .o-article-band { padding-bottom: 56px; }
  .o-article-card { padding: 20px 16px 24px; }
  .o-content { padding: 18px 16px 22px; }
  .o-facts, .o-steps, .o-contact-grid, .o-env-grid { grid-template-columns: 1fr 1fr; }
  .o-form-row { grid-template-columns: 1fr; }
  .o-utility-left { flex-direction: row; }
  .o-related-grid { grid-template-columns: 1fr; }
  .o-foot-grid { grid-template-columns: 1fr; gap: 18px; }
  .o-msg-h time { margin-left: 0; }
  .gb-overlay { padding: 16px; }
  .gb-close { top: 12px; right: 12px; width: 38px; height: 38px; }
  .gb-prev, .gb-next { width: 40px; height: 56px; font-size: 18px; }
  .gb-prev { left: 8px; }
  .gb-next { right: 8px; }
}
