/**
 * Content dividers — one contract, site-colored skins.
 *
 * HTML:
 *   <hr class="content-divider" aria-hidden="true">
 *   <hr class="content-divider content-divider--accent" aria-hidden="true">
 *
 * Color follows body[data-site]; excellence (+ alumni) keep the blue rule.
 * Do not paint section / article-title separators with border — insert this node instead.
 */

body[data-site="main"] {
  --content-divider-color: rgba(53, 63, 76, 0.16);
  --content-divider-accent: #353f4c;
  --content-list-dot: var(--content-divider-accent);
}

body[data-site="primary"] {
  /* Match primary article title underline (#9dc1ea on pcl headers). */
  --content-divider-color: #9dc1ea;
  --content-divider-accent: var(--color-primary-blue, #3268b0);
  --content-list-dot: var(--content-divider-accent);
}

body[data-site="secondary"] {
  /* 标题下划线要看得见；#d5cfe6 贴白底几乎消失 */
  --content-divider-color: color-mix(in srgb, var(--life-purple, #602f9d) 40%, #fff);
  --content-divider-accent: var(--life-purple, var(--color-secondary-purple, #602f9d));
  --content-list-dot: var(--content-divider-accent);
}

body[data-page="s-curriculum"],
body[data-page="s-life-planning"],
body[data-page="s-sd-highlights"],
body[data-page="ole-highlights"] {
  --content-divider-color: color-mix(in srgb, var(--life-purple, #602f9d) 40%, #fff);
  --content-divider-accent: var(--life-purple, var(--color-secondary-purple, #602f9d));
  --content-list-dot: var(--content-divider-accent);
}

/* Excellence + alumni keep existing blue rule (do not fold into main gray). */
body[data-page^="excellence"],
body[data-page="community-alumni"] {
  --content-divider-color: rgba(30, 62, 138, 0.12);
  --content-divider-accent: #1e3e8a;
  --content-list-dot: var(--content-divider-accent);
}

/* Primary curriculum / SD highlights (data-site=main but primary visual). */
body[data-page="curriculum"],
body[data-page="sd-highlights"],
body[data-page^="primary-curriculum"],
.curriculum-shell,
.SD-Highlights-shell {
  --content-divider-color: #9dc1ea;
}

body[data-page^="secondary-curriculum"],
.s-curriculum-shell {
  --content-divider-color: color-mix(in srgb, var(--life-purple, #602f9d) 40%, #fff);
  --content-divider-accent: var(--life-purple, var(--color-secondary-purple, #602f9d));
}

/* Jobs & tenders title rule. */
body[data-page^="jobs-tenders"] {
  --content-divider-color: rgba(2, 40, 76, 0.16);
}

.content-divider {
  display: block;
  width: 100%;
  height: 1px;
  margin: clamp(48px, 4.167vw, 80px) 0;
  padding: 0;
  border: 0;
  background: var(--content-divider-color, rgba(53, 63, 76, 0.16));
}

.content-divider--accent {
  width: clamp(48px, 4.167vw, 80px);
  height: 2px;
  margin: clamp(16px, 1.25vw, 24px) 0;
  background: var(--content-divider-accent, rgba(53, 63, 76, 0.45));
  opacity: 0.45;
}

/* 旧 Our Teams / VM 模板残留；间隔线只认 .content-divider */
hr.vm-divider {
  display: none;
}

/* Article / page-title underline rhythm (was border-bottom on *article__header). */
:is(.content-article__header) + .content-divider,
:is(.content-article__header) + :where(*) > .content-divider:first-child {
  margin: 0 0 clamp(28px, 2.083vw, 40px);
}

/* Section title underlines migrated from border-bottom. */
.content-title + .content-divider,
.poa-subsection__title + .content-divider {
  margin: 0 0 clamp(16px, 1.25vw, 24px);
}

/* Tighter rhythm for plans-reports list separators (was plans-divider). */
body[data-page="plans-reports"] .content-divider:not(.content-divider--accent) {
  margin: clamp(36px, 3.125vw, 60px) 0;
}

/* Our Teams professional copy used --teams-content-gap. */
body[data-page="about-our-teams"] .content-divider:not(.content-divider--accent) {
  margin: var(--teams-content-gap, clamp(48px, 4.167vw, 80px)) 0;
}

/* Vision & Mission used --vm-content-gap. */
body[data-page="about-vision-mission"] .content-divider:not(.content-divider--accent) {
  margin: var(--vm-content-gap, clamp(48px, 4.167vw, 80px)) 0;
}

/* Compact separators inside admissions callout boxes. */
body[data-page="admissions-grade-4-11-non-local"] .adgnl-closing-box .content-divider,
body[data-page="admissions-g1"] .adg1-briefing__body .content-divider {
  margin: clamp(20px, 1.667vw, 32px) 0;
}
