/* 古滑 · 俱乐部总览营销海报
   气质：低调务实 · 冠军背书克制呈现 · 全年招生 + 暑假强调
   配色：暖杏晨光 — 家长友好、清爽可信（避免深色冷峻） */

.ov-poster {
  --ov-ink: #3d3530;
  --ov-slate: #5c524a;
  --ov-accent: #c87848;
  --ov-accent-deep: #a85e34;
  --ov-accent-soft: #f5e0d0;
  --ov-sky: #6a9bb5;
  --ov-sky-soft: #e3eef5;
  --ov-paper: #fffcf9;
  --ov-muted: #8a8078;
  color: var(--ov-ink);
  box-shadow: 0 12px 36px rgba(120, 90, 60, 0.1);
  background:
    radial-gradient(88% 52% at 96% 4%, rgba(240, 190, 150, 0.42), transparent 54%),
    radial-gradient(72% 48% at -4% 92%, rgba(150, 190, 215, 0.28), transparent 52%),
    linear-gradient(175deg, #faf6f0 0%, #fff9f4 44%, #f2f7fa 100%);
  position: relative;
}

/* 抽象碗池弧线：柔和暖色，不做深色场域感 */
.ov-poster::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(rgba(180, 150, 120, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(180, 150, 120, 0.06) 1px, transparent 1px);
  background-size: 32px 32px;
  opacity: 0.5;
  pointer-events: none;
}
.ov-poster::after {
  content: "";
  position: absolute;
  left: -40%;
  right: -40%;
  bottom: -18%;
  height: 42%;
  border-radius: 50%;
  border: 1px solid rgba(200, 140, 90, 0.16);
  box-shadow:
    0 -28px 0 -26px rgba(240, 200, 160, 0.2),
    0 -56px 0 -52px rgba(255, 255, 255, 0.5);
  pointer-events: none;
}

.ov-poster .poster-inner {
  position: relative;
  z-index: 1;
}

.ov-poster .brand {
  color: var(--ov-ink);
  opacity: 1;
}
.ov-poster .brand-logo {
  background: #fff;
  box-shadow: 0 2px 8px rgba(120, 90, 60, 0.1);
}
.ov-poster .kicker {
  color: var(--ov-accent-deep);
  letter-spacing: 0.16em;
  opacity: 0.88;
}
.ov-poster .badge {
  border-color: rgba(200, 120, 72, 0.32);
  background: rgba(255, 255, 255, 0.72);
  color: #8a5030;
}
.ov-poster .title {
  font-size: 26px;
  letter-spacing: 0.01em;
  font-weight: 800;
  line-height: 1.15;
  color: var(--ov-ink);
}
.ov-poster .hook {
  font-size: 13px;
  font-weight: 600;
  color: var(--ov-slate);
  opacity: 1;
  line-height: 1.45;
  margin-top: 8px;
}
.ov-poster .subtitle {
  font-size: 12px;
  color: var(--ov-muted);
  opacity: 1;
  margin-top: 5px;
}
.ov-poster .card {
  background: var(--ov-paper);
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(120, 90, 60, 0.08);
  border: 1px solid rgba(220, 200, 180, 0.45);
}
.ov-poster .card h2 {
  color: #4a4038;
  font-size: 11px;
  letter-spacing: 0.06em;
}

/* —— 全年招生条 —— */
.ov-year-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 12px;
  padding: 8px 11px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(200, 150, 110, 0.22);
  box-shadow: 0 2px 10px rgba(140, 100, 70, 0.06);
}
.ov-year-bar .left {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--ov-ink);
}
.ov-year-bar .left em {
  font-style: normal;
  color: var(--ov-accent-deep);
}
.ov-year-bar .right {
  font-size: 10px;
  font-weight: 700;
  color: var(--ov-muted);
  white-space: nowrap;
}

/* —— 赛场背书（克制、不具名） —— */
.ov-cred {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
}
.ov-cred li {
  list-style: none;
  text-align: center;
  padding: 8px 4px 7px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(210, 175, 140, 0.28);
  box-shadow: 0 2px 8px rgba(140, 100, 70, 0.05);
}
.ov-cred b {
  display: block;
  font-size: 12px;
  font-weight: 800;
  color: var(--ov-accent-deep);
  line-height: 1.15;
  letter-spacing: 0.02em;
}
.ov-cred span {
  display: block;
  margin-top: 3px;
  font-size: 8px;
  font-weight: 600;
  color: var(--ov-muted);
  line-height: 1.25;
}

/* —— 产品路线 —— */
.ov-routes {
  display: grid;
  gap: 7px;
}
.ov-route {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 10px;
  align-items: center;
  padding: 11px 12px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #ebe4dc;
}
.ov-route.is-summer {
  background: linear-gradient(135deg, #fff6ec 0%, #fff 62%);
  border-color: #f0d9c0;
  box-shadow: 0 3px 12px rgba(200, 140, 80, 0.08);
}
.ov-route.is-elite {
  background: linear-gradient(135deg, #f2f8fc 0%, #fff 65%);
  border-color: #cddfe8;
}
.ov-route .tag {
  display: inline-block;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 2px 7px;
  border-radius: 999px;
  margin-bottom: 4px;
  vertical-align: middle;
}
.ov-route.is-summer .tag {
  color: #9a5c28;
  background: #fce8cc;
}
.ov-route.is-elite .tag {
  color: #3d6d8a;
  background: var(--ov-sky-soft);
}
.ov-route .name {
  font-size: 14px;
  font-weight: 800;
  color: #3d3530;
  line-height: 1.2;
}
.ov-route .meta {
  margin-top: 2px;
  font-size: 10px;
  color: var(--ov-muted);
  line-height: 1.35;
}
.ov-route .price {
  font-size: 20px;
  font-weight: 800;
  color: var(--ov-accent-deep);
  line-height: 1;
  text-align: right;
  white-space: nowrap;
}
.ov-route.is-elite .price { color: #4a7d9a; font-size: 17px; }
.ov-route.is-sub .price { color: #7a6e64; font-size: 15px; }
.ov-route .price small {
  font-size: 0.48em;
  font-weight: 600;
  color: #a89888;
  margin-left: 1px;
}

.ov-subpair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}
.ov-subpair .ov-route {
  grid-template-columns: 1fr;
  padding: 10px 11px;
  align-items: start;
}
.ov-subpair .ov-route .price {
  text-align: left;
  margin-top: 6px;
  font-size: 15px;
}

/* 弱化附属产品：单行脚注，不抢主路 */
.ov-aside {
  margin-top: 2px;
  font-size: 9px;
  color: #a89888;
  text-align: center;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.ov-aside strong {
  font-weight: 700;
  color: #8a7a70;
}

.ov-facility {
  margin-top: 9px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px;
}
.ov-facility span {
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  padding: 7px 4px;
  border-radius: 9px;
  background: #f6f2ec;
  color: #5c524a;
  border: 1px solid #ebe4dc;
}

.ov-note {
  margin-top: 9px;
  font-size: 10px;
  color: var(--ov-muted);
  line-height: 1.45;
  padding: 8px 10px;
  background: #f8f4ef;
  border-radius: 9px;
  border: 1px solid #ebe4dc;
}

.ov-cta-loc {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
  flex: 1;
}
.ov-cta-loc svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  margin-top: 3px;
  color: var(--ov-accent);
}
.ov-cta-text {
  min-width: 0;
}
.ov-cta-text .cta-main {
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.01em;
  color: var(--ov-slate);
}
.ov-cta-text .cta-ask {
  margin-top: 5px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.25;
  color: var(--ov-ink);
}
.ov-cta-text .cta-sub {
  margin-top: 2px;
  font-size: 10px;
  color: var(--ov-muted);
  line-height: 1.3;
}

.ov-poster .cta {
  border-top-color: #ebe4dc;
}

.ov-poster .foot {
  color: #a89888;
}

@media (max-width: 360px) {
  .ov-poster .title { font-size: 23px; }
  .ov-cred { gap: 4px; }
  .ov-cred b { font-size: 11px; }
}

@media print {
  .ov-year-bar { margin-top: 28px; padding: 20px 26px; border-radius: 20px; }
  .ov-year-bar .left { font-size: 30px; }
  .ov-year-bar .right { font-size: 26px; }
  .ov-cred { gap: 14px; margin-top: 24px; }
  .ov-cred li { padding: 22px 10px; border-radius: 20px; }
  .ov-cred b { font-size: 32px; }
  .ov-cred span { font-size: 20px; margin-top: 8px; }
  .ov-routes { gap: 16px; }
  .ov-route { padding: 26px 28px; border-radius: 22px; }
  .ov-route .tag { font-size: 20px; padding: 5px 14px; margin-bottom: 10px; }
  .ov-route .name { font-size: 38px; }
  .ov-route .meta { font-size: 26px; margin-top: 6px; }
  .ov-route .price { font-size: 54px; }
  .ov-route.is-elite .price { font-size: 46px; }
  .ov-subpair { gap: 16px; }
  .ov-subpair .ov-route { padding: 24px; }
  .ov-subpair .ov-route .price { font-size: 40px; margin-top: 14px; }
  .ov-aside { font-size: 22px; margin-top: 8px; }
  .ov-facility { gap: 14px; margin-top: 22px; }
  .ov-facility span { font-size: 26px; padding: 18px 8px; border-radius: 18px; }
  .ov-note { margin-top: 22px; font-size: 26px; padding: 18px 22px; border-radius: 16px; }
  .ov-cta-loc svg { width: 36px; height: 36px; margin-top: 8px; }
  .ov-cta-text .cta-main { font-size: 28px; }
  .ov-cta-text .cta-ask { font-size: 34px; margin-top: 12px; }
  .ov-cta-text .cta-sub { font-size: 24px; margin-top: 6px; }
}

html.export-mode .ov-year-bar { margin-top: 28px; padding: 20px 26px; border-radius: 20px; }
html.export-mode .ov-year-bar .left { font-size: 30px; }
html.export-mode .ov-year-bar .right { font-size: 26px; }
html.export-mode .ov-cred { gap: 14px; margin-top: 24px; }
html.export-mode .ov-cred li { padding: 22px 10px; border-radius: 20px; }
html.export-mode .ov-cred b { font-size: 32px; }
html.export-mode .ov-cred span { font-size: 20px; margin-top: 8px; }
html.export-mode .ov-routes { gap: 16px; }
html.export-mode .ov-route { padding: 26px 28px; border-radius: 22px; }
html.export-mode .ov-route .tag { font-size: 20px; padding: 5px 14px; margin-bottom: 10px; }
html.export-mode .ov-route .name { font-size: 38px; }
html.export-mode .ov-route .meta { font-size: 26px; margin-top: 6px; }
html.export-mode .ov-route .price { font-size: 54px; }
html.export-mode .ov-route.is-elite .price { font-size: 46px; }
html.export-mode .ov-subpair { gap: 16px; }
html.export-mode .ov-subpair .ov-route { padding: 24px; }
html.export-mode .ov-subpair .ov-route .price { font-size: 40px; margin-top: 14px; }
html.export-mode .ov-aside { font-size: 22px; margin-top: 8px; }
html.export-mode .ov-facility { gap: 14px; margin-top: 22px; }
html.export-mode .ov-facility span { font-size: 26px; padding: 18px 8px; border-radius: 18px; }
html.export-mode .ov-note { margin-top: 22px; font-size: 26px; padding: 18px 22px; border-radius: 16px; }
html.export-mode .ov-cta-loc svg { width: 36px; height: 36px; margin-top: 8px; }
html.export-mode .ov-cta-text .cta-main { font-size: 28px; }
html.export-mode .ov-cta-text .cta-ask { font-size: 34px; margin-top: 12px; }
html.export-mode .ov-cta-text .cta-sub { font-size: 24px; margin-top: 6px; }
html.export-mode .ov-poster .title { font-size: 72px; }
html.export-mode .ov-poster .hook { font-size: 34px; }
html.export-mode .ov-poster .subtitle { font-size: 28px; }
html.export-mode .ov-poster .card h2 { font-size: 30px; }

/* —— 深色版（微信二维码 · 全幅暗色体系） —— */
.ov-poster.ov-theme-dark {
  /* 顶区：深底上的浅色字 */
  --ov-ink: #f5f0ea;
  --ov-slate: rgba(245, 240, 234, 0.88);
  --ov-accent: #e8c078;
  --ov-accent-deep: #f0d090;
  --ov-muted: rgba(245, 240, 234, 0.58);
  /* 卡片区：独立暗色令牌，避免与顶区混用 */
  --ov-card-bg: #121c2a;
  --ov-card-surface: #1a2636;
  --ov-card-border: rgba(232, 192, 120, 0.2);
  --ov-card-ink: #f0ebe4;
  --ov-card-sub: rgba(240, 235, 228, 0.72);
  --ov-card-muted: rgba(240, 235, 228, 0.52);
  --ov-card-heading: #e8c078;
  --ov-summer-glow: rgba(232, 160, 80, 0.16);
  --ov-elite-glow: rgba(100, 160, 200, 0.14);

  color: var(--ov-ink);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.32);
  background:
    radial-gradient(90% 55% at 100% -5%, rgba(232, 192, 120, 0.14), transparent 52%),
    radial-gradient(70% 45% at -10% 85%, rgba(60, 100, 130, 0.18), transparent 55%),
    linear-gradient(172deg, #080d14 0%, #0e1622 42%, #152232 100%);
}
.ov-poster.ov-theme-dark::before {
  background:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  opacity: 0.32;
}
.ov-poster.ov-theme-dark::after {
  border-color: rgba(232, 192, 120, 0.12);
  box-shadow:
    0 -28px 0 -26px rgba(232, 192, 120, 0.06),
    0 -56px 0 -52px rgba(255, 255, 255, 0.03);
}

/* —— 顶区 —— */
.ov-poster.ov-theme-dark .brand { color: #fff; }
.ov-poster.ov-theme-dark .brand-logo {
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
}
.ov-poster.ov-theme-dark .kicker {
  color: var(--ov-accent);
  opacity: 0.92;
}
.ov-poster.ov-theme-dark .badge {
  border-color: rgba(232, 192, 120, 0.38);
  background: rgba(255, 255, 255, 0.07);
  color: var(--ov-accent);
}
.ov-poster.ov-theme-dark .title { color: #fff; }
.ov-poster.ov-theme-dark .hook { color: var(--ov-slate); }
.ov-poster.ov-theme-dark .subtitle { color: var(--ov-muted); }

.ov-poster.ov-theme-dark .ov-year-bar {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.ov-poster.ov-theme-dark .ov-year-bar .left { color: #fff; }
.ov-poster.ov-theme-dark .ov-year-bar .left em { color: var(--ov-accent); }
.ov-poster.ov-theme-dark .ov-year-bar .right { color: var(--ov-muted); }

.ov-poster.ov-theme-dark .ov-cred li {
  background: rgba(0, 0, 0, 0.22);
  border-color: rgba(232, 192, 120, 0.2);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.ov-poster.ov-theme-dark .ov-cred b { color: var(--ov-accent); }
.ov-poster.ov-theme-dark .ov-cred span { color: rgba(255, 255, 255, 0.52); }

/* —— 主信息卡（深色一体） —— */
.ov-poster.ov-theme-dark .card {
  margin-top: 14px;
  color: var(--ov-card-ink);
  background:
    linear-gradient(180deg, rgba(232, 192, 120, 0.07) 0%, transparent 18%),
    var(--ov-card-bg);
  border: 1px solid var(--ov-card-border);
  box-shadow:
    0 12px 36px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.ov-poster.ov-theme-dark .card h2 {
  color: var(--ov-card-heading);
  letter-spacing: 0.08em;
}

/* —— 路线块 —— */
.ov-poster.ov-theme-dark .ov-route {
  background: var(--ov-card-surface);
  border-color: rgba(255, 255, 255, 0.09);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.ov-poster.ov-theme-dark .ov-route.is-summer {
  background: linear-gradient(135deg, var(--ov-summer-glow) 0%, var(--ov-card-surface) 68%);
  border-color: rgba(232, 160, 80, 0.28);
  box-shadow:
    0 2px 12px rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(255, 220, 180, 0.08);
}
.ov-poster.ov-theme-dark .ov-route.is-elite {
  background: linear-gradient(135deg, var(--ov-elite-glow) 0%, var(--ov-card-surface) 68%);
  border-color: rgba(120, 170, 210, 0.24);
  box-shadow:
    0 2px 12px rgba(0, 0, 0, 0.18),
    inset 0 1px 0 rgba(180, 210, 240, 0.06);
}
.ov-poster.ov-theme-dark .ov-route.is-summer .tag {
  color: #f5d9a8;
  background: rgba(232, 160, 80, 0.22);
  border: 1px solid rgba(232, 160, 80, 0.28);
}
.ov-poster.ov-theme-dark .ov-route.is-elite .tag {
  color: #b8d8f0;
  background: rgba(100, 160, 200, 0.2);
  border: 1px solid rgba(120, 170, 210, 0.26);
}
.ov-poster.ov-theme-dark .ov-route .name {
  color: #fff;
}
.ov-poster.ov-theme-dark .ov-route .meta {
  color: var(--ov-card-sub);
}
.ov-poster.ov-theme-dark .ov-route .price {
  color: var(--ov-accent-deep);
}
.ov-poster.ov-theme-dark .ov-route.is-elite .price {
  color: #8ec0e8;
}
.ov-poster.ov-theme-dark .ov-route .price small {
  color: var(--ov-card-muted);
}

.ov-poster.ov-theme-dark .ov-aside {
  color: var(--ov-card-muted);
}
.ov-poster.ov-theme-dark .ov-aside strong {
  color: var(--ov-card-sub);
}

.ov-poster.ov-theme-dark .ov-facility span {
  background: rgba(255, 255, 255, 0.05);
  color: var(--ov-card-sub);
  border-color: rgba(255, 255, 255, 0.08);
}

.ov-poster.ov-theme-dark .ov-note {
  color: var(--ov-card-muted);
  background: rgba(0, 0, 0, 0.22);
  border-color: rgba(255, 255, 255, 0.07);
}

/* —— CTA / 二维码 —— */
.ov-poster.ov-theme-dark .cta {
  border-top-color: rgba(255, 255, 255, 0.1);
}
.ov-poster.ov-theme-dark .ov-cta-loc svg {
  color: var(--ov-accent);
}
.ov-poster.ov-theme-dark .ov-cta-text .cta-main {
  color: var(--ov-card-sub);
}
.ov-poster.ov-theme-dark .ov-cta-text .cta-ask {
  color: #fff;
}
.ov-poster.ov-theme-dark .ov-cta-text .cta-sub {
  color: var(--ov-card-muted);
}
.ov-poster.ov-theme-dark .foot {
  color: var(--ov-card-muted);
}

.ov-poster.ov-theme-dark .qr-slot {
  background: #fff;
  border: 1px solid rgba(232, 192, 120, 0.35);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}
.ov-poster.ov-theme-dark .qr-slot span {
  color: #5a6a78;
}
