/* ============================================================
   PREMIUM TYPE SYSTEM (Switzer self-hosted Latin sans site-wide +
   Google dynamic-subsetted Noto SC for Chinese glyphs as fallback).
   English/Latin glyphs come from the named Latin face; Chinese
   glyphs fall through to the Noto face listed next in each stack.
   Spivey-grade pairing:
     Juris Ivy   DISPLAY  = Zodiak  (high-contrast serif) + Noto Serif SC
                 BODY     = Switzer (premium grotesque)    + Noto Serif SC
     Santa Maria DISPLAY  = Zodiak (editorial serif)       + Huiwen-Mincho
                 BODY     = Switzer                         + ZhuqueFangsong
                 LABEL    = Switzer                         + ZhuqueFangsong
   Variables below point to these families; the legacy @font-face
   rules are retained only as graceful fallbacks.
   ============================================================ */
@font-face {
  font-family: "Switzer";
  src: url(/assets/fonts/switzer.woff2) format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Zodiak";
  src: url(/assets/fonts/zodiak.woff2) format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Satoshi";
  src: url(/assets/fonts/satoshi.woff2) format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "General Sans";
  src: url(/assets/fonts/general-sans.woff2) format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url(/assets/fonts/jetbrains-mono.woff2) format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
/* Juris Ivy Chinese display/body: Huiwen-Mincho (汇文明朝体) — elegant mincho,
   open for commercial use. CDN OTF for now; subset to woff2 before production. */
@font-face {
  font-family: "Huiwen-Mincho";
  src: url(/assets/fonts/huiwen-mincho.subset.woff2) format("woff2"), url(https://cdn.jsdelivr.net/npm/@fontpkg/huiwen-mincho@1.0.0/Huiwen-mincho.otf) format("opentype");
  font-display: swap;
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
/* Santa Maria Chinese display/body: KingHwa-OldSong (京华老宋体) — classical old-song
   serif, open for commercial use. CDN TTF for now; subset to woff2 before production. */
@font-face {
  font-family: "KingHwa-OldSong";
  src: url(https://cdn.jsdelivr.net/npm/@fontpkg/king-hwa-old-song@2.2.0/%E4%BA%AC%E8%8F%AF%E8%80%81%E5%AE%8B%E4%BD%93v2.002.ttf) format("truetype");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
/* === Chosen Chinese set (2026-06-13): 朱雀仿宋 body (both), 汇文正楷 (SM), 竹石体 (JI hero accent). CDN now; subset to woff2 before production. === */
@font-face {
  font-family: "ZhuqueFangsong";
  src: url(/assets/fonts/zhuque-fangsong.subset.woff2) format("woff2"), url(https://cdn.jsdelivr.net/npm/@fontpkg/zhuque-fangsong-technical-preview@0.212.0/ZhuqueFangsong-Regular.ttf) format("truetype");
  /* Covers every block present in the local subset while excluding emoji and
     miscellaneous symbols it cannot render; this prevents a failed 574 KB
     fallback download for glyphs such as ★. */
  unicode-range: U+0020-007E, U+00A0-00FF, U+2000-2265, U+25B2, U+3000-301F, U+4E00-9FFF, U+FF00-FF5E;
  font-display: swap;
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "HuiwenZhengkai";
  /* Self-hosted woff2 subset (SM characters only, ~97 KB). Subsetted 2026-06-22 from
     @fontpkg/huiwen-zheng-kai@1.0.0 using pyftsubset. Open for commercial use. */
  src: url(/assets/fonts/huiwen-zhengkai.woff2) format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "YRDZST";
  src: url(https://cdn.jsdelivr.net/npm/@fontpkg/yrdzst@1.23.0/%E6%9D%A8%E4%BB%BB%E4%B8%9C%E7%AB%B9%E7%9F%B3%E4%BD%93-Regular.ttf) format("truetype");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}

/* ---- Legacy families (retained as fallbacks only) ---- */
@font-face {
  font-family: "Fraunces";
  src: url(/assets/fonts/fraunces.woff2) format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Newsreader";
  src: url(/assets/fonts/newsreader.woff2) format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Space Grotesk";
  src: url(/assets/fonts/space-grotesk.woff2) format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url(/assets/fonts/inter.woff2) format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

/* CJK polish: when content is marked Chinese, drop heading tracking
   (letter-spacing harms CJK) while leaving the Latin default untouched.
   Latin tracking elsewhere stays as-is since CJK is only a fallback. */
:lang(zh) :is(h1, h2, h3),
:lang(zh):is(h1, h2, h3) {
  letter-spacing: normal;
}

:root {
  --ivory: #f7f3ea;
  --paper: #fffdf8;
  --ink: #13110d;
  --muted: #655f55;
  --line: #ddd5c8;
  --rust: #7b1f18;
  --navy: #081f3d;
  --green: #0f513f;
  --amber: #9a640e;
  --stone: #ede6dc;
  --shadow: 0 18px 48px rgba(43, 35, 24, 0.1);
  color-scheme: light;
  font-family: "Switzer", "HuiwenZhengkai", "Noto Sans SC", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

* {
  box-sizing: border-box;
}

html {
  width: 100%;
  overflow-x: hidden;
}

body {
  margin: 0;
  background: var(--ivory);
  color: var(--ink);
  overflow-x: hidden;
}

a {
  color: inherit;
}

/* Kill the 300ms tap delay + default tap flash on every interactive
   element, site-wide (both brands). */
button,
a,
[role="button"] {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Sticky-header offset for in-page anchor targets */
:where(h1, h2, h3)[id] {
  scroll-margin-top: 5rem;
}

h1,
h2,
h3,
p,
a,
button,
li,
span,
strong,
small {
  min-width: 0;
  overflow-wrap: anywhere;
}

.site-top {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem max(clamp(1rem, 4vw, 3rem), calc((100% - 1320px) / 2));
  max-width: 100%;
  border-bottom: 1px solid var(--line);
  background: rgba(247, 243, 234, 0.92);
  backdrop-filter: blur(16px);
}

.wordmark {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
  color: var(--ink);
  text-decoration: none;
}

.wordmark strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.5rem, 3vw, 2.15rem);
  font-weight: 500;
  line-height: 1;
}

.wordmark small {
  color: var(--rust);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.wordmark span {
  color: var(--rust);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.site-top nav {
  display: flex;
  align-items: center;
  gap: clamp(0.75rem, 2vw, 1.55rem);
  min-width: 0;
  max-width: 100%;
  color: #241f18;
  font-size: 1.1rem;
  font-weight: 680;
}

.site-top nav a {
  text-decoration: none;
  white-space: nowrap;
}

.site-top nav a[aria-current="page"]:not(.button) {
  color: var(--rust);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.38rem;
}

.site-top nav a.button[aria-current="page"] {
  box-shadow: inset 0 0 0 1px rgba(255, 253, 248, 0.34);
}

/* "Book a Meeting" is the primary call-to-action: a raised, shadowed button,
   visually distinct from the underline that marks the current page. */
[data-brand="juris-ivy"] .site-top nav a.button {
  box-shadow: 0 4px 14px rgba(110, 29, 36, 0.30);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
[data-brand="juris-ivy"] .site-top nav a.button:hover,
[data-brand="juris-ivy"] .site-top nav a.button:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 7px 20px rgba(110, 29, 36, 0.40);
}

.nav-divider {
  display: block;
  width: 1px;
  height: 2.2rem;
  background: var(--line);
}

.wordmark-row {
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0.75rem;
}

.wordmark-row > span:last-child {
  display: grid;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: 0;
  text-transform: none;
}

.brand-crest {
  display: grid;
  width: 2.7rem;
  height: 2.7rem;
  place-items: center;
  border: 1px solid rgba(123, 31, 24, 0.35);
  border-radius: 7px;
  background: linear-gradient(145deg, #9b321f, #6e1d16);
  color: #fffdf8;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 0.86rem;
  letter-spacing: 0;
  box-shadow: 0 10px 24px rgba(123, 31, 24, 0.18);
}

.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding: 2px;
  border: 1px solid rgba(0, 0, 0, 0.14);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.03);
  color: var(--muted);
  line-height: 1;
}

.lang-switch button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0.2rem 0.6rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.18s ease, color 0.18s ease;
}

.lang-switch button.is-active {
  background: var(--rust);
  color: #fff;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.85rem;
  padding: 0 1.1rem;
  border: 1px solid var(--rust);
  border-radius: 8px;
  background: var(--rust);
  color: white;
  font-weight: 760;
  text-align: center;
  text-decoration: none;
  transition:
    background-color 0.18s ease,
    color 0.18s ease,
    border-color 0.18s ease;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.button.secondary {
  background: transparent;
  color: var(--rust);
}

.section,
.hero {
  width: min(1220px, calc(100% - clamp(3rem, 12vw, 9rem)));
  margin: 0 auto;
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(20rem, 0.95fr);
  gap: clamp(2rem, 5vw, 5rem);
  padding: clamp(3rem, 8vw, 6.5rem) 0 2rem;
}

.hero h1 {
  max-width: 760px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.2rem, 7.2vw, 6.25rem);
  font-weight: 500;
  line-height: 0.96;
  letter-spacing: normal;
  text-wrap: balance;
}

.hero p,
.section-lead,
.card p,
.list-row p {
  color: var(--muted);
  line-height: 1.6;
  text-wrap: pretty;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1.6rem;
}

.hero-panel,
.panel,
.card,
.wide-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 253, 248, 0.88);
  box-shadow: var(--shadow);
}

.hero-panel {
  padding: 1.25rem;
}

.panel-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--line);
}

.panel-title h2,
.section h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  font-weight: 500;
}

.service-grid,
.metrics,
.article-grid,
.social-grid,
.address-grid {
  display: grid;
  gap: 1rem;
}

.service-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1.5rem;
}

.card {
  padding: 1.2rem;
}

.card h3 {
  margin: 0 0 0.5rem;
  font-size: 1.05rem;
}

.tagline {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 0.8rem;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  background: var(--stone);
  color: var(--rust);
  font-size: 0.72rem;
  font-weight: 820;
  text-transform: uppercase;
}

.section {
  padding: clamp(3.5rem, 6vw, 5rem) 0 0;
}

.metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding: 1.25rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.metric {
  padding: 0.4rem 1rem;
  border-right: 1px solid var(--line);
}

.metric:last-child {
  border-right: 0;
}

.metric strong {
  display: block;
  color: var(--rust);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.list {
  display: grid;
  margin-top: 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  background: var(--paper);
}

.list-row {
  display: grid;
  grid-template-columns: minmax(8rem, 0.55fr) minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  padding: 1rem;
  border-bottom: 1px solid var(--line);
}

.list-row:last-child {
  border-bottom: 0;
}

.price {
  color: var(--rust);
  font-weight: 820;
  font-variant-numeric: tabular-nums;
}

.article-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.social-grid,
.address-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.qr-box,
.scheduler-box {
  display: grid;
  min-height: 11rem;
  place-items: center;
  border: 1px dashed rgba(123, 31, 24, 0.45);
  border-radius: 8px;
  background: rgba(123, 31, 24, 0.04);
  color: var(--rust);
  font-weight: 820;
  text-align: center;
}

.scheduler-box {
  min-height: 14rem;
  color: var(--green);
  border-color: rgba(15, 81, 63, 0.45);
  background: rgba(15, 81, 63, 0.05);
}

.footer {
  margin-top: 4rem;
  padding: 2rem clamp(1rem, 4vw, 3rem);
  border-top: 1px solid var(--line);
  color: var(--muted);
}

.santa {
  --rust: #9b321f;
  --ink: #071d35;
  --green: #0e6a52;
}

.solution-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
}

.option-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  margin-top: 1rem;
}

.mini-option {
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  font-weight: 760;
}

.gateway-page .site-top,
.landing-page .site-top,
.subpage .site-top {
  background: rgba(255, 253, 248, 0.94);
}

.gateway-hero,
.landing-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(24rem, 1.05fr);
  align-items: center;
  min-height: min(690px, calc(100vh - 5rem));
  border-bottom: 1px solid var(--line);
}

.gateway-copy,
.landing-copy {
  padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 5vw, 5rem);
}

.gateway-copy h1,
.landing-copy h1 {
  max-width: 760px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3rem, 5.2vw, 5.6rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: 0;
}

.gateway-copy p,
.landing-copy p {
  max-width: 40rem;
  color: var(--muted);
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.65;
}

.architecture-frame {
  height: 100%;
  min-height: 34rem;
  margin: 0;
  overflow: hidden;
  border-left: 1px solid var(--line);
}

.architecture-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gateway-paths,
.landing-paths,
.trust-row,
.subpage-shell,
.detail-hero {
  width: min(1280px, calc(100% - clamp(3rem, 12vw, 9rem)));
  margin: 0 auto;
}

.gateway-paths,
.landing-paths {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: -4.25rem;
  position: relative;
  z-index: 2;
}

.entry-card {
  min-width: 0;
  min-height: 14rem;
  padding: 1.5rem;
  border: 1px solid var(--line);
  border-radius: 0;
  background: rgba(255, 253, 248, 0.94);
  color: inherit;
  text-decoration: none;
  box-shadow: 0 18px 48px rgba(43, 35, 24, 0.08);
}

.entry-card h2 {
  margin: 0.8rem 0 0.75rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  font-weight: 500;
}

.entry-card p {
  color: var(--muted);
  line-height: 1.65;
}

.entry-card strong {
  display: inline-block;
  margin-top: 0.9rem;
  color: var(--rust);
}

.entry-card:hover,
.entry-card:focus-visible,
.choice-card:hover,
.choice-card:focus-visible {
  border-color: rgba(123, 31, 24, 0.38);
  background: rgba(255, 253, 248, 0.98);
  outline: 0;
  transform: translateY(-2px);
  transition:
    border-color 160ms ease,
    background 160ms ease,
    transform 160ms ease;
}

.entry-icon {
  color: var(--rust);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
}

.trust-row {
  display: grid;
  grid-template-columns: minmax(16rem, 0.85fr) minmax(0, 1.15fr);
  gap: 2rem;
  align-items: center;
  padding: 2rem 0;
  border-bottom: 1px solid var(--line);
}

.trust-row h2 {
  margin: 0 0 0.5rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 500;
}

.trust-row p {
  color: var(--muted);
  line-height: 1.65;
}

.trust-row ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.trust-row li {
  display: grid;
  gap: 0.35rem;
  padding-left: 1rem;
  border-left: 1px solid var(--line);
}

.trust-row strong {
  color: var(--rust);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  font-weight: 500;
}

.landing-page .landing-hero {
  grid-template-columns: minmax(0, 1fr) minmax(21rem, 0.78fr);
  min-height: auto;
  position: relative;
}

body.landing-page:not(.santa) .landing-hero {
  background:
    linear-gradient(90deg, rgba(247, 243, 234, 0) 0%, rgba(247, 243, 234, 0.9) 58%, rgba(247, 243, 234, 0.72) 100%),
    url("/assets/archway.svg") right center / min(44vw, 38rem) auto no-repeat;
}

.admissions-board {
  min-width: 0;
  margin: clamp(2.5rem, 7vw, 6rem) clamp(1rem, 5vw, 5rem) clamp(2.5rem, 7vw, 6rem) 0;
  padding: clamp(1.25rem, 2.5vw, 1.8rem);
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 253, 248, 0.92);
  box-shadow: 0 22px 60px rgba(43, 35, 24, 0.11);
  backdrop-filter: blur(8px);
}

.santa .landing-panel {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 33rem;
  height: 100%;
  overflow: hidden;
  border-left: 1px solid var(--line);
}

.santa .landing-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(247, 243, 234, 0.06), rgba(247, 243, 234, 0.72));
  pointer-events: none;
}

.santa .landing-visual {
  position: absolute;
  inset: 0;
  margin: 0;
}

.santa .landing-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.santa .landing-panel .hero-panel {
  position: relative;
  z-index: 1;
  align-self: end;
  width: min(31rem, calc(100% - 3rem));
  margin: 0 1.5rem 1.5rem auto;
  background: rgba(255, 253, 248, 0.92);
  backdrop-filter: blur(8px);
}

.subnav-rail {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 1.5rem;
}

.subnav-rail a {
  padding: 0.72rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 253, 248, 0.82);
  color: var(--rust);
  font-weight: 760;
  text-decoration: none;
}

.mobile-action-board {
  display: none;
}

.mobile-action-board a {
  min-width: 0;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 253, 248, 0.92);
  color: inherit;
  text-decoration: none;
}

.mobile-action-board strong {
  display: block;
  color: var(--ink);
}

.mobile-action-board span {
  display: block;
  margin-top: 0.2rem;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.4;
}

.landing-page .landing-copy h1 {
  font-size: clamp(2.75rem, 4.8vw, 5rem);
}

.detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(18rem, 0.55fr);
  gap: 2rem;
  padding: clamp(3rem, 7vw, 5rem) 0 2rem;
  border-bottom: 1px solid var(--line);
  min-width: 0;
}

.detail-hero h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.5rem, 4.8vw, 4.7rem);
  font-weight: 500;
  line-height: 1.05;
}

.detail-hero p {
  color: var(--muted);
  font-size: 1.08rem;
  line-height: 1.65;
}

.subpage-shell {
  display: grid;
  gap: 2rem;
  padding-top: 2rem;
}

.board-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.board-card {
  min-width: 0;
  padding: 1.3rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
}

.board-card h2,
.board-card h3 {
  margin: 0 0 0.65rem;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
}

.board-card p {
  color: var(--muted);
  line-height: 1.65;
}

.content-article {
  display: grid;
  gap: 1rem;
}

.content-article h1,
.content-article h2,
.content-article h3 {
  line-height: 1.12;
}

/* A 项修复:guide 正文末尾 CTA(markdown [Book a consultation](/juris-ivy/meeting/))
   现在渲染成 .button,内联在段落文字里时补一点上下留白,避免紧贴前后文字。 */
.content-article .cta-inline {
  margin: 0.3rem 0.4rem 0.3rem 0;
  vertical-align: middle;
}

.content-article hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 0.4rem 0;
}

.compact-list {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
}

.compact-list a,
.compact-list div {
  display: grid;
  gap: 0.25rem;
  padding: 0.95rem 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 253, 248, 0.78);
  color: inherit;
  text-decoration: none;
}

.hero-route-card:hover,
.hero-route-card:focus-visible {
  border-color: rgba(123, 31, 24, 0.38);
  background: rgba(255, 253, 248, 0.96);
}

.compact-list strong {
  color: var(--ink);
}

.compact-list span {
  color: var(--muted);
}

.next-step-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 1.15rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: linear-gradient(90deg, rgba(255, 253, 248, 0.96), rgba(237, 230, 220, 0.58));
}

.next-step-strip h2 {
  margin: 0 0 0.35rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  font-weight: 500;
}

.next-step-strip p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.choice-shell {
  width: min(1180px, calc(100% - clamp(3rem, 12vw, 9rem)));
  margin: 0 auto;
}

.choice-hero {
  display: grid;
  gap: clamp(2rem, 5vw, 4rem);
  min-height: calc(100vh - 5.5rem);
  align-content: center;
  padding: clamp(3rem, 8vw, 7rem) 0;
}

.choice-hero h1 {
  max-width: 46rem;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.2rem, 7vw, 6.2rem);
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: 0;
}

.choice-hero p {
  max-width: 46rem;
  color: var(--muted);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.65;
}

.choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.choice-card {
  display: grid;
  min-height: 18rem;
  align-content: space-between;
  gap: 1.25rem;
  padding: clamp(1.35rem, 3vw, 2rem);
  border: 1px solid var(--line);
  border-radius: 8px;
  background:
    linear-gradient(145deg, rgba(255, 253, 248, 0.96), rgba(237, 230, 220, 0.62)),
    var(--paper);
  color: inherit;
  text-decoration: none;
  box-shadow: var(--shadow);
}

.choice-card span,
.choice-card strong {
  color: var(--rust);
  font-weight: 820;
}

.choice-card h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 3vw, 3rem);
  font-weight: 500;
}

.choice-card p {
  color: var(--muted);
  line-height: 1.65;
}

.payment-page {
  background:
    linear-gradient(90deg, rgba(123, 31, 24, 0.035), transparent 34rem),
    var(--ivory);
}

.payment-page .app-shell {
  display: grid;
  grid-template-columns: minmax(18rem, 25rem) minmax(0, 1fr);
  gap: 1.25rem;
  width: min(1280px, calc(100% - clamp(3rem, 12vw, 9rem)));
  margin: 2rem auto 0;
}

.payment-form,
.payment-routes,
.sync-strip {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 253, 248, 0.94);
  box-shadow: 0 18px 48px rgba(43, 35, 24, 0.08);
}

.payment-form {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  align-self: start;
  padding: 1.35rem;
}

.payment-form h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.1rem, 3.5vw, 3.45rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: 0;
  text-wrap: balance;
}

.payment-form p,
.routes-header p,
.sync-strip p,
.route-body p {
  margin: 0;
  color: var(--muted);
  line-height: 1.58;
}

.field {
  display: grid;
  gap: 0.45rem;
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 760;
}

.field input,
.money-input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  color: var(--ink);
}

.field input {
  min-height: 3rem;
  padding: 0 0.9rem;
}

.money-input {
  display: flex;
  align-items: center;
  overflow: hidden;
}

/* Focus ring on the wrapper (the bare input drops its own outline so the
   fused $ + number stays visually intact). Brass for JI; SM overrides
   the colour in its scoped block. */
.money-input:focus-within {
  outline: 2px solid var(--amber);
  outline-offset: 2px;
  border-radius: 8px;
}

.money-input span {
  padding-left: 0.9rem;
  color: var(--muted);
  font-weight: 820;
}

.money-input input {
  border: 0;
  font-size: 1.55rem;
  font-weight: 820;
  font-variant-numeric: tabular-nums;
  outline: 0;
}

.region-control {
  display: grid;
  gap: 0.55rem;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.region-control legend {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 760;
}

.region-control div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.35rem;
  padding: 0.35rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--stone);
}

.region-control button {
  min-height: 2.75rem;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 760;
  touch-action: manipulation;
}

.region-control button.is-selected {
  background: var(--paper);
  color: var(--rust);
  box-shadow: 0 8px 18px rgba(43, 35, 24, 0.08);
}

.guidance-panel {
  display: grid;
  gap: 0.5rem;
  padding: 1rem;
  border: 1px solid rgba(15, 81, 63, 0.16);
  border-radius: 8px;
  background: rgba(15, 81, 63, 0.055);
  color: var(--green);
  font-size: 0.88rem;
  font-weight: 780;
  font-variant-numeric: tabular-nums;
}

.method-summary {
  display: grid;
  gap: 0.45rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.35;
}

.method-summary strong {
  margin-top: 0.25rem;
  color: var(--ink);
}

.method-summary strong:first-child {
  margin-top: 0;
}

.payment-routes {
  overflow: hidden;
}

.routes-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 20rem);
  gap: 1rem;
  padding: 1.35rem;
  border-bottom: 1px solid var(--line);
}

.routes-header h2 {
  max-width: 42rem;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.55rem, 3vw, 2.35rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: 0;
  text-wrap: balance;
}

#fee-estimate {
  margin-top: 0.55rem;
  color: var(--amber);
  font-weight: 760;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

#compliance-note {
  align-self: start;
  padding: 0.9rem;
  border: 1px solid rgba(154, 100, 14, 0.14);
  border-radius: 8px;
  background: rgba(154, 100, 14, 0.08);
  color: #73510f;
  font-size: 0.9rem;
}

.route-list {
  display: grid;
}

.route-row {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  padding: 1.25rem 1.35rem;
  border-bottom: 1px solid var(--line);
}

.route-row:last-child {
  border-bottom: 0;
}

.route-row--primary,
.route-row--recommended {
  background: linear-gradient(90deg, rgba(15, 81, 63, 0.075), transparent);
}

.route-row--fallback {
  background: linear-gradient(90deg, rgba(154, 100, 14, 0.075), transparent);
}

.route-icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border-radius: 8px;
  background: var(--rust);
  color: white;
}

.route-row--recommended .route-icon,
.route-row--primary .route-icon {
  background: var(--green);
}

.route-row--fallback .route-icon {
  background: var(--amber);
}

.route-icon svg {
  width: 1.35rem;
  height: 1.35rem;
  fill: currentColor;
}

.route-title-line,
.route-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.route-title-line h3 {
  margin: 0;
  font-size: 1.05rem;
}

.route-title-line span {
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  background: var(--stone);
  color: var(--rust);
  font-size: 0.72rem;
  font-weight: 820;
  text-transform: uppercase;
}

.route-body {
  display: grid;
  gap: 0.45rem;
}

.route-meta {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 680;
}

.route-cost {
  color: var(--green) !important;
  font-size: 0.86rem;
  font-weight: 720;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

.route-row button {
  min-width: 8.2rem;
  min-height: 2.75rem;
  border: 1px solid var(--rust);
  border-radius: 8px;
  background: var(--rust);
  color: white;
  cursor: pointer;
  font-size: 0.88rem;
  font-weight: 760;
  touch-action: manipulation;
  transition:
    background 150ms ease,
    border-color 150ms ease;
}

.route-row button:hover {
  background: #641a14;
}

.sync-strip {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr);
  gap: 1.5rem;
  padding: 1.35rem;
}

.sync-strip h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.5rem;
  font-weight: 500;
  text-wrap: balance;
}

.sync-strip ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sync-strip li {
  display: grid;
  gap: 0.4rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  touch-action: manipulation;
}

.sync-strip strong {
  color: var(--rust);
}

.sync-strip span {
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

@media (max-width: 900px) {
  .site-top {
    align-items: flex-start;
    flex-direction: column;
  }

  .site-top nav {
    flex-wrap: wrap;
  }

  .hero,
  .payment-page .app-shell,
  .routes-header,
  .sync-strip,
  .sync-strip ol,
  .gateway-hero,
  .landing-hero,
  .landing-page .landing-hero,
  .gateway-paths,
  .landing-paths,
  .choice-grid,
  .trust-row,
  .trust-row ol,
  .detail-hero,
  .board-grid,
  .service-grid,
  .metrics,
  .article-grid,
  .social-grid,
  .address-grid,
  .solution-grid,
  .option-list,
  .next-step-strip {
    grid-template-columns: 1fr;
  }

  .list-row {
    grid-template-columns: 1fr;
  }

  .route-row {
    grid-template-columns: 2.75rem minmax(0, 1fr);
  }

  .route-row button {
    grid-column: 2;
    width: fit-content;
  }

  .gateway-paths,
  .landing-paths {
    margin-top: 1rem;
  }

  .architecture-frame {
    min-height: 22rem;
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .gateway-copy h1,
  .landing-copy h1 {
    font-size: clamp(2.35rem, 10vw, 3.15rem);
  }

  .landing-copy {
    padding: clamp(2rem, 8vw, 3rem) 1rem 1.5rem;
  }

  body.landing-page:not(.santa) .landing-hero {
    background:
      linear-gradient(rgba(247, 243, 234, 0.82), rgba(247, 243, 234, 0.96)),
      url("/assets/archway.svg") right top / 34rem auto no-repeat;
  }

  .admissions-board {
    margin: 0 1rem 2rem;
  }

  .santa .landing-panel {
    min-height: auto;
    margin: 0 1rem 2rem;
    overflow: visible;
    border: 0;
  }

  .santa .landing-panel::after {
    display: none;
  }

  .santa .landing-visual {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border: 1px solid var(--line);
  }

  .santa .landing-panel .hero-panel {
    width: auto;
    margin: -2.5rem 1rem 0;
  }
}

@media (max-width: 520px) {
  .site-top {
    gap: 0.75rem;
    padding: 0.9rem 1rem;
  }

  .site-top nav {
    width: 100%;
    flex-wrap: nowrap;
    gap: 0.85rem;
    align-items: center;
    overflow-x: auto;
    padding-bottom: 0.25rem;
    font-size: 0.86rem;
    line-height: 1.25;
    scrollbar-width: none;
  }

  /* P1 fix 0709：右缘渐隐提示"这行可以横滑"。只在 site.js 判定真的溢出
     （scrollWidth > clientWidth，见 .is-scrollable）时才加遮罩——直接无条件加在
     .site-top nav 上曾把本来就放得下的最后一项（如"中文"切换）无端遮淡
     （实测发现：内容窄导航项少的页面 scrollWidth===clientWidth，8% 遮罩仍会
     生效，误伤最后一项）。 */
  .site-top nav.is-scrollable {
    -webkit-mask-image: linear-gradient(to right, #000 92%, transparent 100%);
    mask-image: linear-gradient(to right, #000 92%, transparent 100%);
  }

  .site-top nav::-webkit-scrollbar {
    display: none;
  }

  .site-top nav a,
  .site-top nav button,
  .lang-switch {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .site-top nav .button {
    min-height: 2.55rem;
    padding: 0 0.8rem;
  }

  .lang-switch {
    flex-basis: auto;
  }

  .wordmark strong {
    font-size: 1.45rem;
  }

  .wordmark small {
    font-size: 0.62rem;
    letter-spacing: 0.08em;
  }

  .gateway-paths,
  .landing-paths,
  .trust-row,
  .payment-page .app-shell,
  .subpage-shell,
  .detail-hero,
  .choice-shell,
  .section,
  .hero {
    width: min(100% - 1.25rem, 1280px);
  }

  .detail-hero {
    gap: 1rem;
    padding: 2.4rem 0 1.5rem;
  }

  .detail-hero h1 {
    font-size: clamp(2.1rem, 11vw, 3rem);
  }

  .gateway-copy h1,
  .landing-copy h1 {
    font-size: clamp(1.9rem, 8vw, 2.35rem);
    line-height: 1.08;
    overflow-wrap: break-word;
  }

  .hero-actions .button {
    flex: 1 1 9rem;
  }

  .subnav-rail {
    gap: 0.6rem;
  }

  .subnav-rail a {
    flex: 1 1 calc(50% - 0.6rem);
    padding: 0.68rem 0.55rem;
    text-align: center;
  }

  .mobile-action-board {
    display: grid;
    gap: 0.6rem;
    margin-top: 1rem;
  }

  [data-brand="santa-maria"] .mobile-action-board {
    display: none;
  }

  .admissions-board .compact-list span,
  .santa .landing-panel .compact-list span {
    display: none;
  }

  .admissions-board {
    margin: 0 1rem 1rem;
  }

  .santa .landing-panel {
    margin: 0 1rem 1rem;
  }

  .santa .landing-visual {
    display: none;
  }

  .santa .landing-panel .hero-panel {
    margin: 0;
  }

  .detail-hero p {
    font-size: 1rem;
  }

  .board-card,
  .entry-card,
  .card,
  .payment-form,
  .routes-header,
  .route-row,
  .sync-strip {
    padding: 1rem;
  }

  .region-control div,
  .route-row {
    grid-template-columns: 1fr;
  }

  .route-row button {
    grid-column: auto;
    width: 100%;
  }

  .route-icon {
    width: 2.5rem;
    height: 2.5rem;
  }

  .board-card h2,
  .board-card h3,
  .content-article h1,
  .content-article h2,
  .content-article h3 {
    font-size: clamp(1.35rem, 7.5vw, 2rem);
  }

  .button {
    max-width: 100%;
    white-space: normal;
  }
}

/* ============================================================
   SANTA MARIA — scoped theme (data-brand="santa-maria")
   Cross-border immigration & compliance practice / client portal.
   Cool navy/teal palette, sans-serif, grid/dossier feel.
   ============================================================ */
[data-brand="santa-maria"] {
  --bg: #f8f5ef;
  --bg-cool: #f1eee8;
  --navy: #0f2742;
  --navy-deep: #0a1b30;
  --teal: #315c4c;
  --teal-bright: #3d705d;
  --slate: #66635f;
  --line: #ddd8cf;
  --amber: #9a6d3a;

  /* Map legacy tokens (used by shared rules) onto the cool palette */
  --ivory: var(--bg-cool);
  --paper: #ffffff;
  --ink: var(--navy);
  --muted: var(--slate);
  --rust: var(--teal);
  --green: var(--teal);
  --stone: var(--bg-cool);
  --shadow: 0 12px 30px rgba(15, 39, 66, 0.08);

  /* SM type stack: Zodiak gives the English headlines a free Signifier-like
     editorial edge; Huiwen-Mincho and ZhuqueFangsong remain the Chinese pair. */
  --sm-serif: "Zodiak", "Huiwen-Mincho", "Noto Serif SC", Georgia, "Times New Roman", serif;
  --sm-display: var(--sm-serif);
  --sm-cjk-display: "Huiwen-Mincho", "Noto Serif SC", "Songti SC", serif;
  --sm-cjk-body: "ZhuqueFangsong", "Noto Serif SC", "Songti SC", serif;
  --sm-body: "Switzer", "ZhuqueFangsong", "Noto Serif SC", system-ui, -apple-system, "Segoe UI", sans-serif;
  --sm-label: "Switzer", "ZhuqueFangsong", "Noto Serif SC", system-ui, -apple-system, "Segoe UI", sans-serif;
  --sm-mono: "JetBrains Mono", "ZhuqueFangsong", "Noto Serif SC", ui-monospace, "SF Mono", monospace;
  font-family: var(--sm-body);
}

[data-brand="santa-maria"] body {
  background: var(--bg);
  color: var(--navy);
  /* Comfortable leading for CJK-heavy body copy (Noto Sans SC fallback) */
  line-height: 1.7;
}

/* Header / chrome -> cool, structured */
[data-brand="santa-maria"] .site-top {
  background: rgba(248, 245, 239, 0.92);
  border-bottom: 1px solid var(--line);
}

[data-brand="santa-maria"] .wordmark strong,
[data-brand="santa-maria"] .panel-title h2,
[data-brand="santa-maria"] .section h2,
[data-brand="santa-maria"] .entry-card h2,
[data-brand="santa-maria"] .board-card h2,
[data-brand="santa-maria"] .board-card h3,
[data-brand="santa-maria"] .detail-hero h1,
[data-brand="santa-maria"] .landing-copy h1,
[data-brand="santa-maria"] .finder-intro h1,
[data-brand="santa-maria"] .routes-header h2,
[data-brand="santa-maria"] .sync-strip h2,
[data-brand="santa-maria"] .next-step-strip h2,
[data-brand="santa-maria"] .payment-form h1 {
  font-family: var(--sm-display);
  font-weight: 600;
  letter-spacing: normal;
  color: var(--navy);
}

[data-brand="santa-maria"]:lang(zh) :is(
  h1,
  h2,
  h3,
  .finder-intro h1,
  .detail-hero h1,
  .board-card h2,
  .board-card h3,
  .entry-card h2,
  .fee-head h2,
  .routes-header h2,
  .sync-strip h2,
  .next-step-strip h2,
  .payment-form h1,
  .sm-band-head h2,
  .sm-method-copy h2,
  .sm-outcome-card h3,
  .sm-section-header h2,
  .sm-pay-card h3
) {
  font-family: var(--sm-cjk-display);
}

[data-brand="santa-maria"]:lang(zh) :is(
  body,
  p,
  li,
  small,
  figcaption,
  label,
  input,
  select,
  textarea,
  button,
  .button,
  .wordmark small,
  .eyebrow,
  .sm-eyebrow,
  .visa-code,
  .fee-code,
  .fee-price,
  .fee-note,
  .sm-step-label,
  .sm-slot-sub,
  .sm-section-header p,
  .sm-pay-card p,
  .sm-card-cta,
  .footer-blurb,
  .site-footer
) {
  font-family: var(--sm-cjk-body);
}

[data-brand="santa-maria"] .wordmark strong {
  font-size: clamp(1.55rem, 3vw, 2.25rem);
}

[data-brand="santa-maria"] .wordmark small,
[data-brand="santa-maria"] .wordmark span {
  color: var(--teal);
  font-family: var(--sm-label);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

[data-brand="santa-maria"] .site-top nav a[aria-current="page"]:not(.button) {
  color: var(--teal);
  text-decoration-color: var(--teal);
}

[data-brand="santa-maria"] .lang-switch button.is-active {
  background: var(--teal);
  color: #fff;
}

/* Buttons: primary solid teal r8 / secondary navy outline */
[data-brand="santa-maria"] .button {
  border: 1px solid var(--teal);
  border-radius: 8px;
  background: var(--teal);
  color: #ffffff;
  font-weight: 600;
  letter-spacing: 0.01em;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

[data-brand="santa-maria"] .button:hover {
  background: var(--teal-bright);
  border-color: var(--teal-bright);
}

[data-brand="santa-maria"] .button.secondary {
  border-color: var(--navy);
  background: rgba(248, 245, 239, 0.32);
  color: var(--navy);
}

[data-brand="santa-maria"] .button.secondary:hover {
  background: rgba(15, 39, 66, 0.06);
  border-color: var(--navy);
  color: var(--navy);
}

/* Signature .visa-code chip */
[data-brand="santa-maria"] .visa-code {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--bg-cool);
  color: var(--navy);
  font-family: var(--sm-label);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* ---- Solution finder hero ---- */
[data-brand="santa-maria"] .finder {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(20rem, 0.95fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  width: min(1280px, calc(100% - clamp(3rem, 12vw, 9rem)));
  margin: 0 auto;
  padding: clamp(2.4rem, 5vw, 4rem) 0 3.75rem;
  border-bottom: 1px solid var(--line);
}

[data-brand="santa-maria"] .finder-intro .eyebrow {
  margin: 0 0 1rem;
  color: var(--teal);
  font-family: var(--sm-label);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

[data-brand="santa-maria"] .finder-intro h1 {
  max-width: 21ch;
  margin: 0;
  font-size: clamp(3rem, 5.25vw, 4.7rem);
  font-weight: 430;
  line-height: 0.94;
  text-wrap: balance;
}

[data-brand="santa-maria"]:lang(en) :is(
  .finder-intro h1,
  .detail-hero h1,
  .sm-band-head h2,
  .sm-method-copy h2
)::first-letter {
  color: var(--teal);
  font-family: "Fraunces", var(--sm-display);
  font-size: 1.08em;
  font-style: italic;
  font-weight: 520;
}

[data-brand="santa-maria"] .finder-intro .lede {
  max-width: 46ch;
  margin: 0.95rem 0 0;
  color: var(--slate);
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  line-height: 1.52;
  text-wrap: pretty;
}

/* The shared .landing-paths uses a negative top margin to overlap the
   Juris Ivy hero IMAGE. SM's finder hero is a plain bordered section, so
   reset to positive spacing or the 01/02/03 cards collide with the rule. */
[data-brand="santa-maria"] .landing-paths {
  margin-top: clamp(2rem, 4vw, 3rem);
}

[data-brand="santa-maria"] .finder-intro .hero-actions {
  margin-top: 1.35rem;
}

/* ---- Finder path rows (dossier list) ---- */
[data-brand="santa-maria"] .finder-paths {
  display: grid;
  gap: 0.7rem;
  position: relative;
  align-content: center;
  align-self: center;
  min-height: clamp(25rem, 38vw, 32rem);
  overflow: hidden;
  padding: clamp(1rem, 2vw, 1.25rem);
  border: 1px solid var(--line);
  border-radius: 8px;
}

[data-brand="santa-maria"] .sm-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  margin: 0;
  overflow: hidden;
  background: var(--bg-cool);
}

[data-brand="santa-maria"] .sm-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(248, 245, 239, 0.14), rgba(248, 245, 239, 0.54) 58%, rgba(15, 39, 66, 0.08)),
    linear-gradient(180deg, rgba(15, 39, 66, 0.04), rgba(15, 39, 66, 0.18));
  pointer-events: none;
}

[data-brand="santa-maria"] .sm-hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.01);
  transform-origin: center;
  animation: smImageDrift 16s ease-in-out infinite alternate;
}

@keyframes smImageDrift {
  from {
    transform: scale(1.01) translate3d(0, 0, 0);
  }
  to {
    transform: scale(1.035) translate3d(-0.7%, -0.6%, 0);
  }
}

[data-brand="santa-maria"] .path-row {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.6rem 1rem;
  padding: 1rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(248, 245, 239, 0.82);
  color: inherit;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(15, 39, 66, 0.04);
  backdrop-filter: blur(10px);
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  /* Declared on the base selector so hover-OUT animates too */
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

[data-brand="santa-maria"] .path-row .visa-code {
  grid-row: 1 / span 2;
  align-self: start;
}

[data-brand="santa-maria"] .path-row strong {
  align-self: end;
  color: var(--navy);
  font-family: var(--sm-body);
  font-size: 1.05rem;
  font-weight: 600;
  text-wrap: pretty;
}

[data-brand="santa-maria"] .path-row span:not(.visa-code) {
  align-self: start;
  color: var(--slate);
  font-size: 0.92rem;
  line-height: 1.45;
  text-wrap: pretty;
}

[data-brand="santa-maria"] .path-row:hover,
[data-brand="santa-maria"] .path-row:focus-visible {
  border-color: var(--teal);
  box-shadow: 0 14px 32px rgba(15, 39, 66, 0.14);
  outline: 0;
  transform: translateY(-2px);
}

/* ---- Cards / entry tiles -> white dossier cards ---- */
[data-brand="santa-maria"] .entry-card,
[data-brand="santa-maria"] .board-card,
[data-brand="santa-maria"] .card,
[data-brand="santa-maria"] .hero-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.74);
  box-shadow: 0 1px 2px rgba(15, 39, 66, 0.04);
}

[data-brand="santa-maria"] .entry-card {
  border-radius: 8px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  /* Base transition so hover-OUT animates too */
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

[data-brand="santa-maria"] .entry-icon,
[data-brand="santa-maria"] .entry-card strong {
  color: var(--teal);
  font-family: var(--sm-label);
}

[data-brand="santa-maria"] .entry-icon {
  font-variant-numeric: tabular-nums;
}

[data-brand="santa-maria"] .entry-card:hover,
[data-brand="santa-maria"] .entry-card:focus-visible {
  border-color: var(--teal);
  background: #fff;
  box-shadow: 0 12px 30px rgba(15, 39, 66, 0.1);
  outline: 0;
  transform: translateY(-2px);
}

/* Accessible focus rings across the brand */
[data-brand="santa-maria"] a:focus-visible,
[data-brand="santa-maria"] button:focus-visible {
  outline: 2px solid var(--teal-bright);
  outline-offset: 2px;
  border-radius: 4px;
}

[data-brand="santa-maria"] .footer {
  border-top: 1px solid var(--line);
  color: var(--slate);
}

/* ---- Santa Maria shared polish (headings, cards, hovers, numerics) ---- */

/* Balance multi-line headings; pretty-wrap body copy */
[data-brand="santa-maria"] h1,
[data-brand="santa-maria"] h2,
[data-brand="santa-maria"] h3,
[data-brand="santa-maria"] .detail-hero h1,
[data-brand="santa-maria"] .fee-head h2,
[data-brand="santa-maria"] .next-step-strip h2 {
  text-wrap: balance;
}

[data-brand="santa-maria"] p {
  text-wrap: pretty;
}

/* Content cards: subtle hover lift so they read as interactive */
[data-brand="santa-maria"] .board-card {
  transition:
    border-color 150ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

[data-brand="santa-maria"] .board-card:hover {
  border-color: var(--teal);
  box-shadow: 0 10px 28px rgba(15, 39, 66, 0.08);
  transform: translateY(-2px);
}

/* CTA strip: cool SM gradient, not the warm JI ivory default */
[data-brand="santa-maria"] .next-step-strip {
  border-color: var(--line);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.78) 60%, var(--bg-cool));
}

/* Price figures stay column-aligned as amounts vary */
[data-brand="santa-maria"] .fee-price {
  font-variant-numeric: tabular-nums;
}

/* Hero: top-align columns; nudge the right-side module to the cap line */
[data-brand="santa-maria"] .detail-hero {
  align-items: start;
}

[data-brand="santa-maria"] .detail-hero h1 {
  font-weight: 420;
}

[data-brand="santa-maria"] .detail-hero > div:last-child {
  margin-top: 0.5rem;
}

/* board-grid collapses gracefully when only 1-2 cards are present
   (scoped to SM so the JI 2-col editorial board is untouched) */
[data-brand="santa-maria"] .board-grid {
  grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
}

/* Money input + dynamic figures -> teal focus ring / tabular numerics */
[data-brand="santa-maria"] .money-input:focus-within {
  outline-color: var(--teal-bright);
}

[data-brand="santa-maria"] #fee-estimate,
[data-brand="santa-maria"] .route-cost {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

/* Region toggle hover (on-brand, plus teal focus already global) */
[data-brand="santa-maria"] .region-control button:hover {
  background: rgba(255, 255, 255, 0.55);
  color: var(--ink);
}

/* Route button focus ring matches the button's own 8px radius */
[data-brand="santa-maria"] .route-row button:focus-visible {
  border-radius: 8px;
}

/* Route button hover -> teal (override the shared JI oxblood hover) */
[data-brand="santa-maria"] .route-row button:hover {
  background: var(--teal-bright);
  border-color: var(--teal-bright);
}

@media (prefers-reduced-motion: reduce) {
  [data-brand="santa-maria"] .board-card,
  [data-brand="santa-maria"] .board-card:hover,
  [data-brand="santa-maria"] .fee-row:hover,
  [data-brand="santa-maria"] .sm-hero-media img {
    transition: none;
    animation: none;
    transform: none;
  }
}

@media (max-width: 820px) {
  [data-brand="santa-maria"] .finder {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding-bottom: 3rem;
  }

  [data-brand="santa-maria"] .finder-paths {
    min-height: auto;
    padding: 0;
    overflow: visible;
    border: 0;
  }

  [data-brand="santa-maria"] .sm-hero-media {
    position: relative;
    aspect-ratio: 16 / 10;
    border: 1px solid var(--line);
    border-radius: 8px;
  }

  [data-brand="santa-maria"] .finder-intro h1 {
    max-width: 9.8ch;
    font-size: clamp(2.7rem, 12vw, 3.25rem);
    line-height: 0.96;
  }

  [data-brand="santa-maria"] .finder-intro .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    max-width: 18rem;
  }

  [data-brand="santa-maria"] .finder-intro .hero-actions .button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-brand="santa-maria"] *,
  [data-brand="santa-maria"] *::before,
  [data-brand="santa-maria"] *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }

  [data-brand="santa-maria"] .path-row:hover,
  [data-brand="santa-maria"] .path-row:focus-visible,
  [data-brand="santa-maria"] .entry-card:hover,
  [data-brand="santa-maria"] .entry-card:focus-visible {
    transform: none;
  }
}

/* ============================================================
   JURIS IVY — scoped theme (data-brand="juris-ivy")
   Law review / Ivy admissions chambers.
   Warm ivory + oxblood + brass hairlines + ink. Serif, editorial.
   ============================================================ */
[data-brand="juris-ivy"] {
  --paper: #fbf8f1;
  --ink: #1b1714;
  --oxblood: #6e1d24;
  --oxblood-deep: #511319;
  --brass: #a8884e;
  --stone: #6f6863;
  --line: rgba(27, 23, 20, 0.14);

  /* Map legacy tokens onto warm palette */
  --ivory: var(--paper);
  --muted: var(--stone);
  --rust: var(--oxblood);
  --green: var(--oxblood);
  --amber: var(--brass);
  --shadow: 0 16px 40px rgba(27, 23, 20, 0.1);

  /* Stable Claude Code baseline. The build injects a page-sized ZhuqueRoute
     subset from the same source face; the family stack never changes after
     first paint, and runtime-only glyphs can still fall through safely. */
  --ji-display: "Zodiak", "ZhuqueRoute", "ZhuqueFangsong", "Noto Serif SC", Georgia, "Times New Roman", serif;
  --ji-body: "Switzer", "ZhuqueRoute", "ZhuqueFangsong", "Noto Serif SC", system-ui, -apple-system, sans-serif;
  font-family: var(--ji-body);
}

/* School surfaces keep their pre-handoff editorial display pairing. Recent
   global-token replacement made every heading and metric use the same face. */
[data-brand="juris-ivy"] body.sdb-page {
  --ji-display: "Fraunces", "Huiwen-Mincho", "Noto Serif SC", Georgia, "Times New Roman", serif;
  --ji-body: "Switzer", "ZhuqueRoute", "ZhuqueFangsong", "Noto Serif SC", system-ui, -apple-system, sans-serif;
  font-family: var(--ji-body);
}

[data-brand="juris-ivy"] body {
  background: var(--paper);
  color: var(--ink);
  /* Comfortable leading for CJK-heavy body copy (Noto Serif SC fallback) */
  line-height: 1.7;
}

[data-brand="juris-ivy"] .site-top {
  background: rgba(251, 248, 241, 0.92);
  border-bottom: 1px solid var(--line);
}

[data-brand="juris-ivy"] .wordmark strong,
[data-brand="juris-ivy"] h1,
[data-brand="juris-ivy"] h2,
[data-brand="juris-ivy"] .choice-card-name--ji {
  font-family: var(--ji-display);
  font-weight: 480;
  letter-spacing: normal;
}

[data-brand="juris-ivy"] .wordmark small {
  color: var(--oxblood);
  font-family: var(--ji-body);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

[data-brand="juris-ivy"] .lang-switch button.is-active {
  background: var(--oxblood);
  color: #fff;
}

[data-brand="juris-ivy"] .button {
  border: 1px solid var(--oxblood);
  border-radius: 2px;
  background: var(--oxblood);
  color: var(--paper);
  font-weight: 600;
}

[data-brand="juris-ivy"] .button.secondary {
  background: transparent;
  color: var(--oxblood);
}

[data-brand="juris-ivy"] a:focus-visible,
[data-brand="juris-ivy"] button:focus-visible {
  outline: 2px solid var(--brass);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Button hover feedback (guideline: buttons must react on hover) */
[data-brand="juris-ivy"] .button:hover {
  background: var(--oxblood-deep);
  border-color: var(--oxblood-deep);
}

[data-brand="juris-ivy"] .button.secondary:hover {
  background: transparent;
  color: var(--oxblood-deep);
}

/* Editorial text-wrap: balance big serif heads, pretty body copy */
[data-brand="juris-ivy"] h1,
[data-brand="juris-ivy"] h2,
[data-brand="juris-ivy"] .detail-hero h1,
[data-brand="juris-ivy"] .tariff-head h2,
[data-brand="juris-ivy"] .next-step-strip h2,
[data-brand="juris-ivy"] .board-card h2,
[data-brand="juris-ivy"] .cases-hero h1,
[data-brand="juris-ivy"] .case-title,
[data-brand="juris-ivy"] .cases-cta h2 {
  text-wrap: balance;
}

[data-brand="juris-ivy"] .detail-hero p,
[data-brand="juris-ivy"] .tariff-intro,
[data-brand="juris-ivy"] .ji-lead,
[data-brand="juris-ivy"] .board-card p,
[data-brand="juris-ivy"] .next-step-strip p,
[data-brand="juris-ivy"] .cases-hero p,
[data-brand="juris-ivy"] .case-desc,
[data-brand="juris-ivy"] .cases-cta p {
  text-wrap: pretty;
}

/* detail-hero head: slightly more leading at large optical sizes */
[data-brand="juris-ivy"] .detail-hero h1 {
  line-height: 1.08;
}

/* Board-cards: sharper editorial radius, brass provenance rule,
   breathing room, and an approach-cue hover/focus state */
[data-brand="juris-ivy"] .board-card {
  padding: 1.75rem;
  border-radius: 2px;
  transition:
    box-shadow 160ms ease,
    border-color 160ms ease;
}

[data-brand="juris-ivy"] .board-card h2,
[data-brand="juris-ivy"] .board-card h3 {
  font-size: clamp(1.1rem, 1.8vw, 1.35rem);
}

[data-brand="juris-ivy"] .board-card:hover,
[data-brand="juris-ivy"] .board-card:has(.button:hover) {
  border-color: rgba(110, 29, 36, 0.28);
  box-shadow: 0 4px 20px rgba(27, 23, 20, 0.08);
}

[data-brand="juris-ivy"] .board-grid {
  gap: 1.5rem;
}

/* Right-side content module in the insights hero: brass top rule */
[data-brand="juris-ivy"] .detail-hero .board-card {
  border-top: 3px solid var(--brass);
  border-radius: 2px;
}

/* Skip link — available to every JI subpage */
.skip-link {
  position: absolute;
  top: -3rem;
  left: 1rem;
  z-index: 100;
  padding: 0.5rem 1rem;
  border-radius: 2px;
  background: var(--rust);
  color: var(--paper);
  font-family: var(--ji-body);
  font-size: 0.9rem;
  text-decoration: none;
  transition: top 150ms ease;
}

.skip-link:focus-visible {
  top: 1rem;
}

@media (prefers-reduced-motion: reduce) {
  [data-brand="juris-ivy"] *,
  [data-brand="juris-ivy"] *::before,
  [data-brand="juris-ivy"] *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
}

/* ============================================================
   LOBBY — scoped theme (data-brand="lobby")
   Elegant neutral split entrance. Hints both brand identities.
   ============================================================ */
[data-brand="lobby"] {
  --lobby-bg: #f8f6f1;
  --lobby-ink: #1b1714;
  --lobby-muted: #6f6863;
  --lobby-line: rgba(27, 23, 20, 0.12);

  /* Mirror the two brands inside the lobby. */
  --lobby-ji-display: "Zodiak", "ZhuqueFangsong", "Noto Serif SC", Georgia, "Times New Roman", serif;
  --lobby-ji-body: "Switzer", "ZhuqueFangsong", "Noto Serif SC", system-ui, sans-serif;
  --lobby-sm-display: "Zodiak", "Huiwen-Mincho", "Noto Serif SC", Georgia, "Times New Roman", serif;
  --lobby-sm-body: "Switzer", "ZhuqueFangsong", "Noto Serif SC", system-ui, sans-serif;
  --lobby-sm-mono: "JetBrains Mono", "ZhuqueFangsong", "Noto Serif SC", ui-monospace, monospace;

  font-family: "Switzer", "ZhuqueFangsong", "Noto Serif SC", system-ui, -apple-system, sans-serif;
}

[data-brand="lobby"] body {
  background: var(--lobby-bg);
  color: var(--lobby-ink);
  min-height: 100vh;
}

/* Nav top */
[data-brand="lobby"] .lobby-top,
[data-brand="lobby"] [data-variant="lobby"] {
  background: rgba(248, 246, 241, 0.92);
  border-bottom: 1px solid var(--lobby-line);
}

[data-brand="lobby"] .lobby-wordmark strong {
  font-family: var(--lobby-ji-display);
  font-size: clamp(1.15rem, 2.2vw, 1.55rem);
  font-weight: 400;
  letter-spacing: normal;
  color: var(--lobby-ink);
}

[data-brand="lobby"] .lobby-wordmark small {
  color: var(--lobby-muted);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

[data-brand="lobby"] .lang-switch button.is-active {
  background: #6e1d24;
  color: #fff;
}

/* Inactive language option reacts to hover like other controls */
[data-brand="lobby"] .lang-switch button:hover {
  color: #6e1d24;
}

[data-brand="lobby"] .lang-switch button.is-active:hover {
  color: #fff;
}

/* Visible keyboard focus ring for the EN / 中文 buttons */
[data-brand="lobby"] .lang-switch button:focus-visible {
  outline: 2px solid #6e1d24;
  outline-offset: 3px;
  border-radius: 3px;
}

/* Intro block */
[data-brand="lobby"] .choice-hero {
  min-height: calc(100vh - 4.5rem);
  align-content: center;
}

[data-brand="lobby"] .lobby-intro {
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

[data-brand="lobby"] .lobby-eyebrow {
  margin: 0 0 0.85rem;
  color: var(--lobby-muted);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

[data-brand="lobby"] #choice-title {
  max-width: 22ch;
  margin: 0 0 0.75rem;
  font-family: var(--lobby-ji-display);
  font-size: clamp(2.7rem, 5.6vw, 5rem);
  font-weight: 380;
  line-height: 0.98;
  letter-spacing: normal;
  text-wrap: balance;
  color: var(--lobby-ink);
}

[data-brand="lobby"] .lobby-lead {
  max-width: 52ch;
  margin: 0;
  color: var(--lobby-muted);
  font-size: clamp(0.95rem, 1.3vw, 1.1rem);
  line-height: 1.65;
  text-wrap: pretty;
}

/* Choice grid */
[data-brand="lobby"] .choice-grid {
  gap: 1.25rem;
}

/* Base choice-card reset within lobby */
[data-brand="lobby"] .choice-card {
  display: grid;
  min-height: 22rem;
  align-content: space-between;
  gap: 1.5rem;
  padding: clamp(1.5rem, 3.5vw, 2.5rem);
  border-radius: 4px;
  color: inherit;
  text-decoration: none;
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    border-color 180ms ease;
}

[data-brand="lobby"] .choice-card:focus-visible {
  outline: 2px solid #a8884e;
  outline-offset: 3px;
}

/* --- Juris Ivy card (ivory / oxblood / serif) --- */
[data-brand="lobby"] .choice-card--ji {
  border: 1px solid rgba(27, 23, 20, 0.14);
  background:
    linear-gradient(158deg, #fbf8f1 55%, #f0ebe0 100%);
  box-shadow: 0 6px 24px rgba(27, 23, 20, 0.07), inset 0 1px 0 rgba(168, 136, 78, 0.2);
}

[data-brand="lobby"] .choice-card--ji:hover,
[data-brand="lobby"] .choice-card--ji:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(110, 29, 36, 0.3);
  box-shadow: 0 14px 38px rgba(27, 23, 20, 0.12), inset 0 1px 0 rgba(168, 136, 78, 0.3);
}

[data-brand="lobby"] .choice-card--ji .choice-card-header {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(168, 136, 78, 0.28);
}

[data-brand="lobby"] .choice-index--ji {
  font-family: var(--lobby-ji-display);
  font-size: 0.9rem;
  font-weight: 400;
  color: #a8884e;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}

[data-brand="lobby"] .choice-label--ji {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #6e1d24;
  font-family: var(--lobby-ji-body);
}

[data-brand="lobby"] .choice-card-name--ji {
  margin: 0;
  font-family: var(--lobby-ji-display);
  font-size: clamp(1.95rem, 3vw, 2.9rem);
  font-weight: 420;
  line-height: 0.98;
  letter-spacing: normal;
  text-wrap: balance;
  color: #1b1714;
}

[data-brand="lobby"] .choice-card--ji .choice-card-body p {
  margin: 0.7rem 0 0;
  color: #6f6863;
  font-family: var(--lobby-ji-body);
  font-size: clamp(0.92rem, 1.1vw, 1rem);
  line-height: 1.6;
  max-width: 38ch;
  text-wrap: pretty;
}

[data-brand="lobby"] .choice-cta--ji {
  display: inline-block;
  font-family: var(--lobby-ji-body);
  font-size: 0.88rem;
  font-weight: 600;
  color: #6e1d24;
  letter-spacing: 0.03em;
}

[data-brand="lobby"] .choice-card--ji:hover .choice-cta--ji,
[data-brand="lobby"] .choice-card--ji:focus-visible .choice-cta--ji {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* --- Santa Maria card (navy / teal / sans) --- */
[data-brand="lobby"] .choice-card--sm {
  border: 1px solid #e2e8f0;
  background:
    linear-gradient(158deg, #ffffff 40%, #f0f5f9 100%);
  box-shadow: 0 4px 16px rgba(15, 39, 66, 0.07);
}

[data-brand="lobby"] .choice-card--sm:hover,
[data-brand="lobby"] .choice-card--sm:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(11, 110, 91, 0.4);
  box-shadow: 0 12px 32px rgba(15, 39, 66, 0.13);
}

[data-brand="lobby"] .choice-card--sm .choice-card-header {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e2e8f0;
}

[data-brand="lobby"] .choice-index--sm {
  font-family: var(--lobby-sm-mono);
  font-size: 0.8rem;
  font-weight: 600;
  color: #0b6e5b;
  letter-spacing: 0.05em;
  font-variant-numeric: tabular-nums;
}

[data-brand="lobby"] .choice-label--sm {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #0f2742;
  font-family: var(--lobby-sm-display);
}

[data-brand="lobby"] .choice-card-name--sm {
  margin: 0;
  font-family: var(--lobby-sm-display);
  font-size: clamp(1.7rem, 2.8vw, 2.6rem);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: normal;
  text-wrap: balance;
  color: #0f2742;
}

[data-brand="lobby"] .choice-card--sm .choice-card-body p {
  margin: 0.7rem 0 0;
  color: #54616f;
  font-family: var(--lobby-sm-body);
  font-size: clamp(0.9rem, 1.05vw, 0.97rem);
  line-height: 1.6;
  max-width: 38ch;
  text-wrap: pretty;
}

[data-brand="lobby"] .choice-cta--sm {
  display: inline-block;
  font-family: var(--lobby-sm-display);
  font-size: 0.86rem;
  font-weight: 600;
  color: #0b6e5b;
  letter-spacing: 0.01em;
}

[data-brand="lobby"] .choice-card--sm:hover .choice-cta--sm,
[data-brand="lobby"] .choice-card--sm:focus-visible .choice-cta--sm {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Responsive */
@media (max-width: 820px) {
  [data-brand="lobby"] .choice-grid {
    grid-template-columns: 1fr;
  }

  [data-brand="lobby"] .choice-card {
    min-height: 17rem;
  }
}

@media (max-width: 520px) {
  [data-brand="lobby"] #choice-title {
    font-size: clamp(2rem, 9vw, 2.8rem);
  }

  [data-brand="lobby"] .choice-card {
    min-height: 14rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-brand="lobby"] .choice-card {
    transition: none !important;
  }

  [data-brand="lobby"] .choice-card:hover,
  [data-brand="lobby"] .choice-card:focus-visible {
    transform: none;
  }
}

/* ============================================================
   SANTA MARIA — services & pricing page
   Eyebrows + explicit fee table (dossier card). Relies on the
   shared santa-maria .visa-code chip, :focus-visible, and
   reduced-motion rules defined above.
   ============================================================ */
[data-brand="santa-maria"] .detail-hero .eyebrow,
[data-brand="santa-maria"] .fee-head .eyebrow {
  margin: 0 0 0.7rem;
  color: var(--teal);
  font-family: var(--sm-label);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

[data-brand="santa-maria"] .fee-section {
  display: grid;
  gap: 1.5rem;
}

[data-brand="santa-maria"] .fee-head h2 {
  margin: 0 0 0.6rem;
  font-family: var(--sm-display);
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  font-weight: 600;
  letter-spacing: normal;
  line-height: 1.08;
  color: var(--navy);
}

[data-brand="santa-maria"] .fee-intro {
  max-width: 60ch;
  margin: 0;
  color: var(--slate);
  font-size: 1.02rem;
  line-height: 1.6;
}

/* Fee table — dossier card */
[data-brand="santa-maria"] .fee-table {
  display: grid;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
  box-shadow: 0 1px 2px rgba(15, 39, 66, 0.04), 0 12px 32px rgba(15, 39, 66, 0.06);
}

[data-brand="santa-maria"] .fee-head-row,
[data-brand="santa-maria"] .fee-row {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(7rem, auto) minmax(0, 1.25fr);
  gap: 1.25rem;
  align-items: center;
  padding: 1.05rem 1.4rem;
}

[data-brand="santa-maria"] .fee-head-row {
  border-bottom: 1px solid var(--line);
  background: var(--bg-cool);
}

[data-brand="santa-maria"] .fee-col {
  color: var(--slate);
  font-family: var(--sm-display);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

[data-brand="santa-maria"] .fee-col-price {
  text-align: right;
}

[data-brand="santa-maria"] .fee-row {
  border-bottom: 1px solid var(--line);
}

[data-brand="santa-maria"] .fee-row:last-child {
  border-bottom: 0;
}

[data-brand="santa-maria"] .fee-row:hover {
  background: var(--bg-cool);
  transition: background 150ms ease;
}

[data-brand="santa-maria"] .fee-service {
  display: grid;
  gap: 0.5rem;
}

[data-brand="santa-maria"] .fee-name {
  font-family: var(--sm-display);
  font-size: 1.04rem;
  font-weight: 600;
  color: var(--navy);
}

[data-brand="santa-maria"] .fee-codes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

[data-brand="santa-maria"] .fee-price {
  font-family: var(--sm-display);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: normal;
  text-align: right;
  white-space: nowrap;
  color: var(--teal);
}

[data-brand="santa-maria"] .fee-scope {
  color: var(--slate);
  font-size: 0.92rem;
  line-height: 1.5;
}

[data-brand="santa-maria"] .fee-note {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(224, 146, 47, 0.3);
  border-radius: 8px;
  background: rgba(224, 146, 47, 0.07);
  color: #8a5a17;
  font-size: 0.9rem;
  font-weight: 500;
  line-height: 1.45;
}

[data-brand="santa-maria"] .fee-note::before {
  content: "i";
  display: grid;
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  place-items: center;
  border-radius: 50%;
  background: var(--amber);
  color: #ffffff;
  font-family: var(--sm-display);
  font-size: 0.78rem;
  font-weight: 700;
}

/* Responsive: collapse header, stack each fee row <=820px */
@media (max-width: 820px) {
  [data-brand="santa-maria"] .fee-head-row {
    display: none;
  }

  [data-brand="santa-maria"] .fee-row {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.5rem 1rem;
    padding: 1rem 1.1rem;
  }

  [data-brand="santa-maria"] .fee-service {
    grid-column: 1;
    grid-row: 1;
  }

  [data-brand="santa-maria"] .fee-price {
    grid-column: 2;
    grid-row: 1;
  }

  [data-brand="santa-maria"] .fee-scope {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

/* ═══════════════════════════════════════════════════════
   SANTA MARIA — Consultation page components
   ═══════════════════════════════════════════════════════ */

/* Step eyebrow label */
.sm-eyebrow {
  display: block;
  margin-bottom: 0.5rem;
  color: var(--sm-teal, #0b6e5b);
  font-family: var(--sm-display);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* Hero copy column */
.sm-hero-copy {
  display: grid;
  align-content: start;
  gap: 0;
}

/* Process steps row */
.sm-process-steps {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  margin-top: 1.5rem;
}

.sm-step {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 0.9rem;
  border: 1px solid var(--sm-line, #e2e8f0);
  border-radius: 8px;
  background: #ffffff;
}

.sm-step-num {
  font-family: var(--sm-label);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--sm-teal, #0b6e5b);
}

.sm-step-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--sm-navy, #0f2742);
  font-family: var(--sm-body);
}

.sm-step-arrow {
  color: var(--sm-slate, #54616f);
  font-size: 0.9rem;
}

/* Scheduler slot — intentional embed placeholder */
[data-brand="santa-maria"] .scheduler-box.slot {
  display: flex;
  min-height: 15rem;
  align-items: center;
  justify-content: center;
  border: 1.5px dashed #e2e8f0;
  border-radius: 10px;
  background: var(--sm-bg-cool, #f4f7fa);
  color: var(--sm-slate, #54616f);
  font-weight: normal;
}

.sm-slot-inner {
  display: grid;
  gap: 0.6rem;
  padding: 2rem;
  text-align: center;
  place-items: center;
}

.sm-slot-icon {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border: 1px solid var(--sm-line, #e2e8f0);
  border-radius: 10px;
  background: #ffffff;
  color: var(--sm-teal, #0b6e5b);
}

.sm-slot-icon svg {
  width: 1.4rem;
  height: 1.4rem;
}

.sm-slot-label {
  margin: 0;
  color: var(--sm-navy, #0f2742);
  font-family: var(--sm-display);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: normal;
}

.sm-slot-sub {
  margin: 0;
  color: var(--sm-slate, #54616f);
  font-family: var(--sm-body);
  font-size: 0.84rem;
  line-height: 1.55;
  max-width: 26rem;
  text-wrap: pretty;
}

/* Section header */
.sm-section-header {
  padding-bottom: 0.25rem;
}

.sm-section-header h2 {
  margin: 0.25rem 0 0.6rem;
  font-family: var(--sm-display);
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  font-weight: 700;
  color: var(--sm-navy, #0f2742);
  letter-spacing: normal;
  text-wrap: balance;
}

.sm-section-header p {
  margin: 0;
  color: var(--sm-slate, #54616f);
  font-family: var(--sm-body);
  font-size: 1rem;
  line-height: 1.6;
  max-width: 58ch;
}

/* Payment cards — 3-column grid */
[data-brand="santa-maria"] .sm-board-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

[data-brand="santa-maria"] .sm-pay-card {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  border-color: var(--sm-line, #e2e8f0);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 1px 4px rgba(15, 39, 66, 0.06);
  transition: box-shadow 160ms ease, transform 160ms ease;
}

[data-brand="santa-maria"] .sm-pay-card:hover {
  box-shadow: 0 6px 20px rgba(15, 39, 66, 0.1);
  transform: translateY(-2px);
}

[data-brand="santa-maria"] .sm-pay-card--accent {
  border-color: rgba(11, 110, 91, 0.28);
  background: linear-gradient(135deg, rgba(11, 110, 91, 0.04), #ffffff);
}

.sm-pay-card-header {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

[data-brand="santa-maria"] .sm-pay-card h3 {
  margin: 0;
  font-family: var(--sm-display);
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  font-weight: 600;
  color: var(--sm-navy, #0f2742);
  letter-spacing: normal;
  text-wrap: balance;
}

[data-brand="santa-maria"] .sm-pay-card p {
  margin: 0;
  color: var(--sm-slate, #54616f);
  font-family: var(--sm-body);
  font-size: 0.9rem;
  line-height: 1.6;
  flex: 1;
}

/* Method chip list inside card */
.sm-method-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Card CTA — teal primary */
[data-brand="santa-maria"] .sm-card-cta {
  align-self: flex-start;
  min-height: 2.75rem;
  padding: 0 1rem;
  margin-top: auto;
  border-color: var(--sm-teal, #0b6e5b);
  border-radius: 8px;
  background: var(--sm-teal, #0b6e5b);
  color: #ffffff;
  font-family: var(--sm-body);
  font-size: 0.88rem;
  font-weight: 600;
}

[data-brand="santa-maria"] .sm-card-cta:hover {
  background: var(--sm-teal-bright, #0e8c74);
  border-color: var(--sm-teal-bright, #0e8c74);
}

/* CTA strip overrides */
[data-brand="santa-maria"] .sm-cta-strip {
  border-color: var(--sm-line, #e2e8f0);
  background: linear-gradient(90deg, rgba(15, 39, 66, 0.03), #f4f7fa);
}

[data-brand="santa-maria"] .sm-cta-strip h2 {
  font-family: var(--sm-display);
  font-weight: 700;
  color: var(--sm-navy, #0f2742);
  text-wrap: balance;
}

[data-brand="santa-maria"] .sm-cta-strip p {
  color: var(--sm-slate, #54616f);
}

[data-brand="santa-maria"] .sm-cta-strip .button {
  border-color: var(--sm-teal, #0b6e5b);
  background: var(--sm-teal, #0b6e5b);
  color: #ffffff;
  font-family: var(--sm-body);
  border-radius: 8px;
}

[data-brand="santa-maria"] .sm-cta-strip .button:hover {
  background: var(--sm-teal-bright, #0e8c74);
  border-color: var(--sm-teal-bright, #0e8c74);
}

/* Reduced motion — disable card lifts on consultation page */
@media (prefers-reduced-motion: reduce) {
  [data-brand="santa-maria"] .sm-pay-card {
    transition: none;
  }
  [data-brand="santa-maria"] .sm-pay-card:hover {
    transform: none;
  }
}

/* Responsive — stack 3-col to 1-col at 820px */
@media (max-width: 820px) {
  [data-brand="santa-maria"] .sm-board-grid {
    grid-template-columns: 1fr;
  }
  .sm-process-steps {
    gap: 0.4rem;
  }
}

/* ============================================================
   SIGNATURE PRIMITIVES (additive) — required class set per spec.
   Scoped by data-brand; reuse tokens already defined above.
   Juris Ivy : .eyebrow .lede .masthead .masthead-title .docket
               .docket-item .roman .rule .tariff .tariff-lead
               .tariff-price .tariff-list .tariff-note .slot
   Santa Maria: .eyebrow .lede .step .slot
   ============================================================ */

/* ---- JURIS IVY ---- */
/* Eyebrow: clean Satoshi, uppercase + tracked (replaces small-caps) */
[data-brand="juris-ivy"] .eyebrow {
  display: inline-block;
  margin: 0 0 1.15rem;
  color: var(--oxblood);
  font-family: var(--ji-body);
  font-size: 0.74rem;
  font-weight: 660;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

[data-brand="juris-ivy"] .lede {
  max-width: 60ch;
  margin: 0 0 1rem;
  color: var(--ink);
  font-family: var(--ji-body);
  font-size: clamp(1.12rem, 1.6vw, 1.35rem);
  line-height: 1.7;
  text-wrap: balance;
}
[data-brand="juris-ivy"] .lede span { display: block; }

/* Law-review masthead: brass double rules */
[data-brand="juris-ivy"] .masthead {
  width: min(1180px, calc(100% - clamp(3rem, 12vw, 9rem)));
  margin: clamp(2rem, 5vw, 3.5rem) auto 0;
  padding: clamp(1.4rem, 3.5vw, 2.2rem) 0 clamp(1.8rem, 4vw, 2.6rem);
  border-bottom: 1px solid rgba(168, 136, 78, 0.5);
  text-align: center;
}
/* Atmospheric animated hero background — subtle scenery behind the masthead text */
[data-brand="juris-ivy"] .masthead { position: relative; overflow: hidden; }
[data-brand="juris-ivy"] .hero-bg {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-size: cover; background-position: center;
  opacity: 0.16;
  animation: heroDrift 30s ease-in-out infinite alternate;
  /* feather ALL four edges evenly so the band dissolves into the ivory (no hard rectangle) */
  -webkit-mask-image:
    linear-gradient(to right, transparent, #000 14%, #000 86%, transparent),
    linear-gradient(to bottom, transparent, #000 20%, #000 80%, transparent);
  -webkit-mask-composite: source-in;
  mask-image:
    linear-gradient(to right, transparent, #000 14%, #000 86%, transparent),
    linear-gradient(to bottom, transparent, #000 20%, #000 80%, transparent);
  mask-composite: intersect;
}
[data-brand="juris-ivy"] .masthead > *:not(.hero-bg) { position: relative; z-index: 1; }
/* Video variant: aerial loop provides its own motion; a touch more present than the still */
[data-brand="juris-ivy"] video.hero-bg { object-fit: cover; opacity: 0.34; animation: none; transform: none; }
@keyframes heroDrift {
  from { transform: scale(1.05) translate3d(0, 0, 0); }
  to   { transform: scale(1.13) translate3d(-1.5%, -2%, 0); }
}
@media (prefers-reduced-motion: reduce) {
  [data-brand="juris-ivy"] .hero-bg { animation: none; transform: scale(1.05); }
}

[data-brand="juris-ivy"] .masthead-title {
  margin: 0 0 1.4rem;
  font-family: var(--ji-display);
  font-weight: 420;
  font-size: clamp(2.4rem, 6vw, 5rem);
  line-height: 1.05;
  letter-spacing: normal;
  color: var(--ink);
  font-optical-sizing: auto;
}

/* breathing room before the hero buttons */
[data-brand="juris-ivy"] .masthead .hero-actions { margin-top: 1.8rem; }

/* Docket: ordered ledger with roman numerals */
[data-brand="juris-ivy"] .docket {
  display: grid;
  width: min(1180px, calc(100% - clamp(3rem, 12vw, 9rem)));
  margin-inline: auto;
  margin-block: 1.25rem 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

[data-brand="juris-ivy"] .docket-item {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr);
  gap: 0.2rem 1rem;
  align-items: start;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--line);
}

/* Title + description both occupy the wide second column under the
   shared roman numeral. Fixes the broken one-word-per-line layout where
   the <p> overflowed into the narrow first column. */
[data-brand="juris-ivy"] .docket-item h2,
[data-brand="juris-ivy"] .docket-item p {
  grid-column: 2;
}

[data-brand="juris-ivy"] .docket-item h2 {
  margin: 0 0 0.35rem;
  font-family: var(--ji-display);
  font-weight: 480;
  font-size: 1.18rem;
  line-height: 1.2;
  text-wrap: balance;
  color: var(--ink);
}

[data-brand="juris-ivy"] .docket-item p {
  margin: 0;
  max-width: 62ch;
  color: var(--stone);
  line-height: 1.6;
  text-wrap: pretty;
}

[data-brand="juris-ivy"] .roman {
  font-family: var(--ji-display);
  font-weight: 460;
  font-size: 1.1rem;
  color: var(--oxblood);
}

/* Hairline rule: thin double brass + ink */
[data-brand="juris-ivy"] .rule {
  height: 3px;
  margin: 1.4rem 0;
  border: 0;
  background:
    linear-gradient(var(--brass), var(--brass)) top / 100% 1px no-repeat,
    linear-gradient(rgba(27, 23, 20, 0.26), rgba(27, 23, 20, 0.26)) bottom / 100% 1px no-repeat;
}

/* Tariff: editorial price card */
[data-brand="juris-ivy"] .tariff {
  padding: clamp(1.4rem, 3vw, 2rem);
  border: 1px solid var(--line);
  border-top: 3px double var(--brass);
  background: #fff;
}

/* Engagement ledger — each lead is a 3-col row:
   roman numeral rail | title+scope body | right-aligned price.
   (The old .tariff-lead small-caps eyebrow styling was removed so it
   no longer inherits into the new flex/grid container.) */
[data-brand="juris-ivy"] .tariff-leads {
  display: grid;
  gap: 1.4rem;
  margin: 1.6rem 0 0;
  padding-top: 1.4rem;
  border-top: 1px solid var(--line);
}

[data-brand="juris-ivy"] .tariff-lead {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr) auto;
  gap: 0.4rem 1.1rem;
  align-items: baseline;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--line);
}

[data-brand="juris-ivy"] .tariff-numeral {
  grid-row: 1 / span 2;
  font-family: var(--ji-display);
  font-weight: 460;
  font-size: 1.25rem;
  line-height: 1;
  color: var(--oxblood);
}

[data-brand="juris-ivy"] .tariff-lead-body {
  display: block;
}

[data-brand="juris-ivy"] .tariff-lead-name {
  margin: 0 0 0.3rem;
  font-family: var(--ji-display);
  font-weight: 480;
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
  line-height: 1.15;
  letter-spacing: normal;
  text-wrap: balance;
  color: var(--ink);
}

[data-brand="juris-ivy"] .tariff-lead-scope {
  margin: 0;
  max-width: 54ch;
  color: var(--stone);
  font-size: 0.98rem;
  line-height: 1.55;
}

[data-brand="juris-ivy"] .tariff-price {
  grid-column: 3;
  justify-self: end;
  display: block;
  margin: 0.2rem 0 0.8rem;
  font-family: var(--ji-display);
  font-weight: 440;
  font-size: clamp(1.6rem, 2.4vw, 2.2rem);
  line-height: 1;
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: var(--ink);
}

[data-brand="juris-ivy"] .tariff-list {
  display: grid;
  gap: 0.55rem;
  margin: 0.8rem 0 0;
  padding: 0;
  list-style: none;
}

[data-brand="juris-ivy"] .tariff-list li {
  position: relative;
  padding-left: 1.4rem;
  color: var(--ink);
}

[data-brand="juris-ivy"] .tariff-list li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--brass);
}

/* 'Also available' two-part rows: serif name + body-copy scope */
[data-brand="juris-ivy"] .tariff-list-item {
  display: block;
}

[data-brand="juris-ivy"] .tariff-list-name {
  display: block;
  font-family: var(--ji-display);
  font-weight: 480;
  color: var(--ink);
}

[data-brand="juris-ivy"] .tariff-list-scope {
  display: block;
  margin-top: 0.15rem;
  color: var(--stone);
  font-size: 0.95rem;
  line-height: 1.5;
}

[data-brand="juris-ivy"] .tariff-note {
  margin: 1rem 0 0;
  color: var(--stone);
  font-size: 0.92rem;
  font-style: italic;
}

/* Placeholder panel */
[data-brand="juris-ivy"] .slot {
  display: grid;
  place-items: center;
  min-height: 9rem;
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-top: 3px double var(--brass);
  background: rgba(168, 136, 78, 0.06);
  color: var(--oxblood);
  font-family: var(--ji-body);
  font-variant: small-caps;
  font-weight: 560;
  letter-spacing: 0.1em;
  text-align: center;
}

/* ---- SANTA MARIA ---- */
[data-brand="santa-maria"] .eyebrow {
  display: inline-block;
  margin: 0 0 0.6rem;
  color: var(--teal);
  font-family: var(--sm-label);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

[data-brand="santa-maria"] .lede {
  max-width: 60ch;
  margin: 0 0 1rem;
  color: var(--slate);
  font-family: var(--sm-body);
  font-size: clamp(1.02rem, 1.4vw, 1.2rem);
  line-height: 1.6;
}

/* Numbered process step (CSS counter so markup needs no manual numbers) */
[data-brand="santa-maria"] .finder-paths,
[data-brand="santa-maria"] .subpage-shell,
[data-brand="santa-maria"] .fee-section,
[data-brand="santa-maria"] main {
  counter-reset: sm-step;
}

[data-brand="santa-maria"] .step {
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  padding: 1rem 0;
  counter-increment: sm-step;
}

[data-brand="santa-maria"] .step::before {
  content: counter(sm-step);
  display: grid;
  place-items: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 8px;
  background: var(--navy);
  color: #fff;
  font-family: var(--sm-display);
  font-weight: 600;
  font-size: 1rem;
}

[data-brand="santa-maria"] .step h3 {
  margin: 0 0 0.25rem;
  font-family: var(--sm-display);
  font-weight: 600;
  color: var(--navy);
}

[data-brand="santa-maria"] .step p {
  margin: 0;
  color: var(--slate);
  line-height: 1.6;
}

/* Placeholder panel (mono, dossier) */
[data-brand="santa-maria"] .slot {
  display: grid;
  place-items: center;
  min-height: 9rem;
  padding: 1.25rem;
  border: 1px dashed var(--line);
  border-radius: 10px;
  background: var(--bg-cool);
  color: var(--slate);
  font-family: var(--sm-label);
  font-size: 0.92rem;
  text-align: center;
}

/* Reduced motion + mobile already handled by the global blocks above;
   step/docket collapse gracefully (single content column) on small screens. */
@media (max-width: 520px) {
  [data-brand="juris-ivy"] .docket-item {
    grid-template-columns: 1.6rem minmax(0, 1fr);
    gap: 0.2rem 0.75rem;
  }
  [data-brand="santa-maria"] .step {
    grid-template-columns: 2rem minmax(0, 1fr);
    gap: 0.75rem;
  }
  [data-brand="juris-ivy"] .masthead-title {
    font-size: clamp(2rem, 11vw, 3rem);
  }
}

/* ============================================================
   CREDIBILITY PRIMITIVES (additive) — shared class names the
   home agents will add. Styled per brand:
     .stats-strip / .stat / .stat-num / .stat-label
     .proof / .proof-item / .proof-rule
   JI = editorial ledger (Zodiak numerals, brass rules,
        tracked Satoshi labels). SM = portal dossier (General
        Sans numerals, teal accents, mono labels).
   ============================================================ */

/* ---- Shared scaffold (brand-neutral; brands restyle below) ---- */
.stats-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: clamp(1rem, 3vw, 2rem);
  width: min(1220px, calc(100% - clamp(3rem, 12vw, 9rem)));
  margin: clamp(2rem, 5vw, 3.5rem) auto 0;
  padding: clamp(1.5rem, 3vw, 2.25rem) 0;
}

.stat {
  display: grid;
  gap: 0.4rem;
  min-width: 0;
}

.stat-num {
  font-variant-numeric: tabular-nums;
  line-height: 0.95;
  text-wrap: balance;
}

.stat-label {
  font-size: 0.72rem;
  line-height: 1.4;
  text-wrap: pretty;
}

.proof {
  display: grid;
  gap: 0.9rem;
  width: min(1220px, calc(100% - clamp(3rem, 12vw, 9rem)));
  margin: clamp(1.5rem, 4vw, 2.5rem) auto 0;
}

.proof-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  line-height: 1.5;
  text-wrap: pretty;
}

.proof-rule {
  height: 1px;
  margin: 0.2rem 0;
  border: 0;
}

/* ---- JURIS IVY: editorial ledger ---- */
[data-brand="juris-ivy"] .stats-strip {
  border-top: 1px solid rgba(168, 136, 78, 0.55);
  border-bottom: 1px solid rgba(168, 136, 78, 0.55);
}

[data-brand="juris-ivy"] .stat {
  padding-left: 1.25rem;
  border-left: 1px solid var(--line);
}

[data-brand="juris-ivy"] .stat:first-child {
  padding-left: 0;
  border-left: 0;
}

[data-brand="juris-ivy"] .stat-num {
  font-family: var(--ji-display);
  font-weight: 440;
  font-size: clamp(2.4rem, 4.5vw, 3.4rem);
  letter-spacing: normal;
  color: var(--oxblood);
}

[data-brand="juris-ivy"] .stat-label {
  font-family: var(--ji-body);
  font-weight: 640;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--stone);
}

[data-brand="juris-ivy"] .proof-item {
  font-family: var(--ji-body);
  color: var(--ink);
}

[data-brand="juris-ivy"] .proof-item::before {
  content: "—";
  flex: 0 0 auto;
  color: var(--brass);
}

[data-brand="juris-ivy"] .proof-item strong {
  font-family: var(--ji-display);
  font-weight: 480;
}

[data-brand="juris-ivy"] .proof-rule {
  background:
    linear-gradient(var(--brass), var(--brass)) top / 100% 1px no-repeat,
    linear-gradient(rgba(27, 23, 20, 0.2), rgba(27, 23, 20, 0.2)) bottom / 100% 1px no-repeat;
  height: 3px;
}

/* ---- SANTA MARIA: portal dossier ---- */
[data-brand="santa-maria"] .stats-strip {
  padding: clamp(1.25rem, 3vw, 2rem) clamp(1.25rem, 3vw, 1.75rem);
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--bg);
  box-shadow: 0 1px 2px rgba(15, 39, 66, 0.04), 0 12px 32px rgba(15, 39, 66, 0.06);
}

[data-brand="santa-maria"] .stat {
  padding-left: 1.25rem;
  border-left: 2px solid var(--teal);
}

[data-brand="santa-maria"] .stat-num {
  font-family: var(--sm-display);
  font-weight: 700;
  font-size: clamp(2.2rem, 4vw, 3rem);
  letter-spacing: normal;
  color: var(--navy);
}

[data-brand="santa-maria"] .stat-label {
  font-family: var(--sm-label);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--slate);
}

[data-brand="santa-maria"] .proof-item {
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--bg);
  font-family: var(--sm-body);
  color: var(--navy);
  box-shadow: 0 1px 2px rgba(15, 39, 66, 0.04);
}

[data-brand="santa-maria"] .proof-item::before {
  content: "";
  flex: 0 0 auto;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 2px;
  background: var(--teal);
}

[data-brand="santa-maria"] .proof-item strong {
  font-family: var(--sm-display);
  font-weight: 600;
}

[data-brand="santa-maria"] .proof-rule {
  background: var(--line);
}

[data-brand="santa-maria"] .sm-editorial-band,
[data-brand="santa-maria"] .sm-method-strip {
  width: min(1220px, calc(100% - clamp(3rem, 12vw, 9rem)));
  margin: clamp(4rem, 8vw, 6.5rem) auto 0;
}

[data-brand="santa-maria"] .sm-editorial-band {
  display: grid;
  gap: clamp(1.4rem, 3vw, 2rem);
}

[data-brand="santa-maria"] .sm-band-head {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  gap: clamp(1rem, 4vw, 4rem);
  align-items: end;
  padding-bottom: clamp(1.1rem, 2vw, 1.4rem);
  border-bottom: 1px solid var(--line);
}

[data-brand="santa-maria"] .sm-band-head h2,
[data-brand="santa-maria"] .sm-method-copy h2 {
  margin: 0;
  color: var(--navy);
  font-family: var(--sm-display);
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 420;
  line-height: 1.02;
  letter-spacing: normal;
  text-wrap: balance;
}

[data-brand="santa-maria"] .sm-outcome-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--line);
}

[data-brand="santa-maria"] .sm-outcome-card {
  display: grid;
  align-content: start;
  gap: 0.85rem;
  min-height: 18rem;
  padding: clamp(1.2rem, 2.4vw, 1.65rem);
  background: rgba(255, 255, 255, 0.74);
}

[data-brand="santa-maria"] .sm-outcome-card h3 {
  max-width: 13ch;
  margin: 0;
  color: var(--navy);
  font-family: var(--sm-display);
  font-size: clamp(1.45rem, 2.4vw, 2.1rem);
  font-weight: 430;
  line-height: 1.08;
  text-wrap: balance;
}

[data-brand="santa-maria"] .sm-outcome-card p {
  margin: 0;
  color: var(--slate);
  font-size: 0.98rem;
  line-height: 1.62;
}

[data-brand="santa-maria"] .sm-method-strip {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: start;
  padding: clamp(1.5rem, 3vw, 2.2rem) 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

[data-brand="santa-maria"] .sm-method-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: sm-home-method;
}

[data-brand="santa-maria"] .sm-method-list li {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 0.35rem 1.25rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  counter-increment: sm-home-method;
}

[data-brand="santa-maria"] .sm-method-list li:first-child {
  padding-top: 0;
}

[data-brand="santa-maria"] .sm-method-list li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

[data-brand="santa-maria"] .sm-method-list li::before {
  content: counter(sm-home-method, decimal-leading-zero);
  grid-row: 1 / span 2;
  color: var(--teal);
  font-family: var(--sm-label);
  font-size: 0.82rem;
  font-weight: 700;
}

[data-brand="santa-maria"] .sm-method-list strong {
  color: var(--navy);
  font-family: var(--sm-body);
  font-size: 1.05rem;
  font-weight: 700;
}

[data-brand="santa-maria"] .sm-method-list span {
  color: var(--slate);
  line-height: 1.5;
}

/* Stack stats to two-up then single column on small screens */
@media (max-width: 820px) {
  .stats-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  [data-brand="juris-ivy"] .stat:nth-child(odd) {
    padding-left: 0;
    border-left: 0;
  }

  [data-brand="santa-maria"] .sm-band-head,
  [data-brand="santa-maria"] .sm-method-strip,
  [data-brand="santa-maria"] .sm-outcome-grid {
    grid-template-columns: 1fr;
  }

  [data-brand="santa-maria"] .sm-outcome-card {
    min-height: auto;
  }
}

@media (max-width: 480px) {
  .stats-strip {
    grid-template-columns: 1fr;
  }
  [data-brand="juris-ivy"] .stat {
    padding-left: 0;
    border-left: 0;
    padding-bottom: 0.9rem;
    border-bottom: 1px solid var(--line);
  }
  [data-brand="juris-ivy"] .stat:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }
  [data-brand="santa-maria"] .stat {
    padding-left: 0.9rem;
  }

  [data-brand="santa-maria"] .sm-editorial-band,
  [data-brand="santa-maria"] .sm-method-strip {
    width: min(100% - 1.25rem, 1220px);
  }
}

/* JI hero headline: preserve the approved Claude Code editorial pairing. */
[data-brand="juris-ivy"] .masthead-title {
  font-family: "Fraunces", "Huiwen-Mincho", "Noto Serif SC", Georgia, "Times New Roman", serif;
}

/* Always-available floating "Book" entry on content pages (injected by site.js) */
.book-fab {
  position: fixed; right: clamp(1rem, 3vw, 2rem); bottom: clamp(1rem, 3vw, 2rem);
  z-index: 60; display: inline-flex; align-items: center; gap: 0.45rem;
  /* E 项修复(2026-07-10):收成更紧凑的药丸——13+ 处压字反馈里普遍是因为按钮偏大、
     又没给页面留安全间距,先把体积本身也收窄一档。 */
  padding: 0.6rem 1rem; border-radius: 999px; text-decoration: none;
  font-size: 0.88rem; font-weight: 600; color: #fff;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.20);
  transition: transform 0.15s ease, box-shadow 0.15s ease, padding 0.18s ease, width 0.18s ease;
}
.book-fab:hover, .book-fab:focus-visible { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0, 0, 0, 0.26); }
.book-fab .book-fab-icon { flex: none; width: 16px; height: 16px; }
[data-brand="juris-ivy"] .book-fab { background: var(--oxblood, #6E1D24); }
[data-brand="santa-maria"] .book-fab { background: var(--teal, #0B6E5B); }
/* P1-3(2026-07-12 手机端 FAB 遮正文):全宽药丸 FAB 在 390px 浮在正文上,遮住关键数据
   (实测 sydney 遮申请截止「31日(Domestic)」)。手机端收成纯图标小圆点(仅占右下角一小块,
   不再横跨内容),并在静止时半透明、按下/聚焦时实心 —— 既保留预约入口(页面内另有主 CTA),
   又让被压住的数值仍可辨读。body.has-book-fab 已给页面底部留了安全滚动空白。 */
@media (max-width: 560px) {
  .book-fab {
    padding: 0.6rem; gap: 0; width: 2.7rem; height: 2.7rem;
    justify-content: center; opacity: 0.9;
  }
  .book-fab .book-fab-label { display: none; }
  .book-fab .book-fab-icon { width: 18px; height: 18px; }
  .book-fab:hover, .book-fab:focus-visible, .book-fab:active { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .book-fab { transition: none; } }

/* E 项修复:FAB 是 position:fixed 常驻右下角,滚到页面最底时会盖住页脚最后一行/文字
   ("13+ 处压字" 反馈的根因——从没给页面内容留过它的安全区)。site.js 注入成功后给
   body 挂 has-book-fab,这里统一补一段可滚动的底部空白,让最底内容能滚到 FAB 上方。 */
body.has-book-fab {
  padding-bottom: clamp(4rem, 11vw, 5.5rem);
}

/* P0 fix 0709：全站组件级 FAB 避让（site.js 用 IntersectionObserver 驱动，非单页 hack）。
   任意页面视口内只要出现 .sdb-filters 或标了 [data-fab-avoid] 的交互控件区（如筛选行），
   FAB 收缩成纯图标小圆点，避免压住其后的可点击控件；该区域滚出视口即恢复原状。 */
.book-fab.is-compact {
  padding: 0.62rem;
  gap: 0;
  width: 2.7rem;
  height: 2.7rem;
  justify-content: center;
}
.book-fab.is-compact .book-fab-label { display: none; }

/* JI small editorial labels → Times New Roman (body stays Switzer).
   Top labels bold; bottom (footer/credits) regular weight. */
[data-brand="juris-ivy"] .eyebrow,
[data-brand="juris-ivy"] .stat-label,
[data-brand="juris-ivy"] .sg-credits,
[data-brand="juris-ivy"] .footer-col h3,
[data-brand="juris-ivy"] .footer-line .footer-k,
[data-brand="juris-ivy"] .footer-qrs figcaption,
[data-brand="juris-ivy"] .footer-bottom,
[data-brand="juris-ivy"] .footer-social {
  font-family: "Times New Roman", Times, "ZhuqueFangsong", "Noto Serif SC", serif;
}
[data-brand="juris-ivy"] .eyebrow,
[data-brand="juris-ivy"] .stat-label {
  font-weight: 700;
}
[data-brand="juris-ivy"] .sg-credits,
[data-brand="juris-ivy"] .footer-col h3,
[data-brand="juris-ivy"] .footer-line .footer-k,
[data-brand="juris-ivy"] .footer-qrs figcaption,
[data-brand="juris-ivy"] .footer-bottom,
[data-brand="juris-ivy"] .footer-social {
  font-weight: 400;
}

/* Juris Ivy header logo lockup: the Juris Ivy emblem (big), then 清禾留学 beside (divider) */
[data-brand="juris-ivy"] .brand-lockup { display:inline-flex; align-items:center; gap:1rem; line-height:1; }
[data-brand="juris-ivy"] .brand-mark { height:112px; width:auto; display:block; flex:none; }
[data-brand="juris-ivy"] .brand-divider { flex:none; align-self:center; width:1px; height:3.4rem; background:rgba(110,29,36,.32); }
[data-brand="juris-ivy"] .brand-cn {
  align-self:center; line-height:1; white-space:nowrap;
  font-family:"Huiwen-Mincho","Noto Serif SC",serif;
  font-size:2.2rem; font-weight:400; letter-spacing:.1em; color:var(--oxblood,#6E1D24);
}
[data-brand="juris-ivy"] .brand-logo-link { text-decoration:none; }
@media (max-width:1180px) {
  [data-brand="juris-ivy"] .brand-mark { height:78px; }
  [data-brand="juris-ivy"] .brand-cn { font-size:1.7rem; }
  [data-brand="juris-ivy"] .brand-divider { height:2.6rem; }
}
@media (max-width:560px) {
  [data-brand="juris-ivy"] .brand-mark { height:58px; }
  [data-brand="juris-ivy"] .brand-cn { font-size:1.3rem; letter-spacing:.06em; }
  [data-brand="juris-ivy"] .brand-divider { height:2rem; }
}


/* ===== Rich site footer (per-brand) ===== */
.site-footer{ margin-top:4.5rem; padding:3rem clamp(1.2rem,5vw,4rem) 1.8rem; }
.footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1.3fr 1.5fr; gap:2rem 2.5rem; max-width:1180px; margin:0 auto; }
.footer-col h3{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; margin:0 0 1rem; }
.footer-col a, .footer-col p{ font-size:.92rem; line-height:1.7; margin:0 0 .45rem; text-decoration:none; }
.footer-col a{ display:block; }
.footer-col a:hover{ text-decoration:underline; }
.footer-brand{ display:flex; flex-direction:column; align-items:flex-start; gap:.1rem; }
.footer-brand .footer-logo{ display:inline-flex; align-items:center; gap:.55rem; margin-bottom:.2rem; }
/* Juris Ivy footer: four columns — logo | nav | contact | media(QR), brand stacked */
[data-brand="juris-ivy"] .footer-grid{ grid-template-columns:1fr 1fr 1.35fr 1.45fr; }
[data-brand="juris-ivy"] .footer-brand{ flex-direction:column; align-items:center; text-align:center; gap:.7rem; }
[data-brand="juris-ivy"] .footer-brand .footer-logo{ margin-bottom:0; gap:.6rem; }
[data-brand="juris-ivy"] .footer-brand .footer-logo img{ height:104px; width:auto; }
[data-brand="juris-ivy"] .footer-cn{ font-family:var(--ji-display); font-size:1.7rem; letter-spacing:.1em; line-height:1.1; color:var(--oxblood,#6E1D24); }
/* Footer English in editorial Times; Chinese falls through to the approved Mincho. */
[data-brand="juris-ivy"] .site-footer{ font-family:"Times New Roman", Times, "Huiwen-Mincho", "Noto Serif SC", serif; }
/* Fix: landing-paths normally overlaps the section above via a negative margin;
   on the JI home it follows the school grid, so cancel the overlap. */
[data-brand="juris-ivy"] .landing-paths{ margin-top:1.5rem; z-index:auto; }
.footer-line{ display:flex; gap:.45rem; font-size:.92rem; line-height:1.7; margin:0 0 .45rem; flex-wrap:wrap; }
.footer-line .footer-k{ opacity:.62; }
.footer-line a{ display:inline; }
[data-brand="juris-ivy"] .footer-addr-cn{ display:inline-block; font-size:.84rem; opacity:.8; }
.footer-wordmark{ font-size:1.3rem; display:block; margin-bottom:.5rem; }
.footer-tag{ font-size:.82rem; letter-spacing:.06em; opacity:.85; }
.footer-blurb{ max-width:30ch; opacity:.8; }
.footer-office{ margin-bottom:.6rem !important; }
.footer-office strong{ display:block; font-size:.76rem; letter-spacing:.06em; }
.footer-office span{ font-size:.88rem; opacity:.85; }
.footer-qrs{ display:flex; gap:1rem; flex-wrap:wrap; }
.footer-qrs figure{ margin:0; text-align:center; }
.footer-qr{ width:104px; height:104px; background:#fff; padding:5px; border:1px solid; border-radius:4px; display:block; }
.footer-qrs figcaption{ font-size:.7rem; margin-top:.35rem; opacity:.8; max-width:114px; line-height:1.3; }
.footer-social{ display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; margin-top:1rem; font-size:.84rem; }
.footer-social span{ opacity:.7; margin-right:.2rem; }
.footer-social a{ border:1px solid; padding:.24rem .65rem; border-radius:2px; text-decoration:none; }
.footer-bottom{ max-width:1180px; margin:2.2rem auto 0; padding-top:1.4rem; border-top:1px solid; font-size:.82rem; opacity:.78; }
@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr 1fr; } [data-brand="juris-ivy"] .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){
  .footer-grid{ grid-template-columns:1fr; }
  [data-brand="juris-ivy"] .footer-grid{ grid-template-columns:1fr; }
  [data-brand="juris-ivy"] .footer-cn{ border-left:0; padding-left:0; }
}

[data-brand="juris-ivy"] .site-footer{ background:#F3EEE3; border-top:3px double rgba(110,29,36,.32); color:#46403a; }
[data-brand="juris-ivy"] .site-footer h3{ color:#6E1D24; }
[data-brand="juris-ivy"] .site-footer a{ color:#46403a; }
[data-brand="juris-ivy"] .footer-tag, [data-brand="juris-ivy"] .footer-office strong{ color:#1B1714; }
[data-brand="juris-ivy"] .footer-qr, [data-brand="juris-ivy"] .footer-social a{ border-color:rgba(110,29,36,.3); }
[data-brand="juris-ivy"] .footer-bottom{ border-color:rgba(27,23,20,.14); }
/* 2026-07-11: 图片版权署名义务集中到 /credits/,页脚只留一个低调小字链接(不抢 © 版权行注意力) */
[data-brand="juris-ivy"] .footer-credits-link{ color:inherit; text-decoration:underline; text-underline-offset:2px; opacity:.85; }
[data-brand="juris-ivy"] .footer-credits-link:hover{ opacity:1; color:#A8884E; }

[data-brand="santa-maria"] .site-footer{ background:#0F2742; border-top:3px solid #0B6E5B; color:#c3d0dd; }
[data-brand="santa-maria"] .site-footer h3{ color:#5fd3ba; }
[data-brand="santa-maria"] .site-footer a{ color:#dbe6ef; }
[data-brand="santa-maria"] .footer-wordmark, [data-brand="santa-maria"] .footer-office strong{ color:#ffffff; }
[data-brand="santa-maria"] .footer-qr{ border-color:rgba(255,255,255,.22); }
[data-brand="santa-maria"] .footer-social a{ border-color:rgba(255,255,255,.26); }
[data-brand="santa-maria"] .footer-bottom{ border-color:rgba(255,255,255,.15); }

/* header: nav on one line only on desktop; lang switch never wraps */
@media (min-width: 1181px) { .site-top nav { flex-wrap: nowrap; } }
.site-top nav .lang-switch { white-space: nowrap; flex: none; display: inline-flex; align-items: center; gap: 0; }

/* Responsive header: stack logo + nav on medium/small screens so nav never crams */
@media (max-width: 1180px) {
  .site-top { flex-wrap: wrap; justify-content: center; row-gap: .55rem; padding-left: clamp(1rem,4vw,2rem); padding-right: clamp(1rem,4vw,2rem); }
  .site-top .wordmark { justify-items: center; text-align: center; }
  .site-top nav { flex-wrap: wrap; justify-content: center; width: 100%; gap: .5rem 1.2rem; font-size: 1rem; }
}
@media (max-width: 560px) {
  .site-top nav { font-size: .92rem; gap: .4rem .85rem; }
}

/* JI masthead: center lede + action buttons under the centered headline */
[data-brand="juris-ivy"] .masthead { text-align: center; }
[data-brand="juris-ivy"] .masthead .lede { margin-left: auto; margin-right: auto; }
[data-brand="juris-ivy"] .masthead .hero-actions { justify-content: center; }

/* JI home — School Guides grid */
[data-brand="juris-ivy"] .school-guides { padding:3rem max(clamp(1rem,4vw,3rem), calc((100% - 1180px)/2)); text-align:center; border-top:1px solid rgba(27,23,20,.1); }
[data-brand="juris-ivy"] .school-guides .sg-title { font-size:clamp(1.6rem,3.2vw,2.4rem); color:#1B1714; margin:.2rem 0 .5rem; }
[data-brand="juris-ivy"] .school-guides .sg-intro { color:#6F6863; max-width:60ch; margin:0 auto 2rem; }
/* School slider: horizontal scroll-snap carousel — ~3 cards visible + next peeking */
[data-brand="juris-ivy"] .school-carousel { position:relative; max-width:1080px; margin:0 auto; }
[data-brand="juris-ivy"] .school-grid {
  display:flex; gap:1.4rem; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch; padding:.4rem .15rem 1rem; scrollbar-width:none;
}
[data-brand="juris-ivy"] .school-grid::-webkit-scrollbar { display:none; }
[data-brand="juris-ivy"] .sc-arrow {
  position:absolute; top:42%; transform:translateY(-50%); z-index:3;
  width:40px; height:40px; border-radius:50%; border:1px solid rgba(110,29,36,.25);
  background:rgba(251,248,241,.94); color:var(--oxblood,#6E1D24); font-size:1.45rem; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center; box-shadow:0 5px 16px rgba(27,23,20,.14);
  transition:background .15s ease, transform .15s ease;
}
[data-brand="juris-ivy"] .sc-arrow:hover { background:#fff; transform:translateY(-50%) scale(1.06); }
[data-brand="juris-ivy"] .sc-prev { left:-10px; }
[data-brand="juris-ivy"] .sc-next { right:-10px; }
[data-brand="juris-ivy"] .school-card { flex:0 0 clamp(250px, 29%, 300px); scroll-snap-align:start; display:flex; flex-direction:column; border:1px solid rgba(27,23,20,.14); border-radius:3px; overflow:hidden; background:#fff; transition:box-shadow 180ms ease, transform 180ms ease; }
@media (max-width:560px){ [data-brand="juris-ivy"] .sc-arrow{ display:none; } [data-brand="juris-ivy"] .school-card{ flex:0 0 80%; } }
[data-brand="juris-ivy"] .school-card-main { display:block; text-decoration:none; color:inherit; }
[data-brand="juris-ivy"] .school-card img { display:block; width:100%; height:200px; object-fit:cover; }
[data-brand="juris-ivy"] .school-card .school-name { display:block; padding:.85rem 1rem .3rem; font-family:"Zodiak","Noto Serif SC",serif; font-size:1.05rem; color:#1B1714; }
[data-brand="juris-ivy"] .school-guide-link { display:block; margin-top:auto; padding:.15rem 1rem .9rem; font-family:"Times New Roman",Times,serif; font-size:.82rem; letter-spacing:.03em; color:var(--oxblood,#6E1D24); text-decoration:none; }
[data-brand="juris-ivy"] .school-guide-link:hover { text-decoration:underline; }
[data-brand="juris-ivy"] .school-card:hover { box-shadow:0 12px 32px rgba(27,23,20,.12); transform:translateY(-3px); }
[data-brand="juris-ivy"] .sg-credits { color:#8a837c; font-size:.78rem; margin:1.6rem auto 0; max-width:72ch; line-height:1.6; }
@media (max-width:820px){ [data-brand="juris-ivy"] .school-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ [data-brand="juris-ivy"] .school-grid{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce){ [data-brand="juris-ivy"] .school-card{transition:none;} [data-brand="juris-ivy"] .school-card:hover{transform:none;} }

/* ============================================================
   SCHOOLS DATABASE 选校库 (.sdb-*) — juris-ivy scoped
   ============================================================ */
[data-brand="juris-ivy"] .sdb-main{padding:0 0 3rem}
[data-brand="juris-ivy"] .sdb-wrap{max-width:1240px;margin:0 auto;padding:0 clamp(1.2rem,4vw,3rem)}
[data-brand="juris-ivy"] .sdb-page main{font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .sdb-eyebrow{font-family:"Times New Roman","Songti SC",serif;text-transform:uppercase;letter-spacing:.22em;font-size:.76rem;color:var(--brass);font-weight:700}
[data-brand="juris-ivy"] .sdb-eyebrow-light{color:#c2a76b}
[data-brand="juris-ivy"] .sdb-h1{font-family:var(--ji-display);font-weight:600;font-size:clamp(1.9rem,4vw,3rem);line-height:1.22;margin:.45rem 0 .55rem;text-wrap:balance}
[data-brand="juris-ivy"] .sdb-sub{color:var(--stone);font-size:1.05rem;max-width:46em;margin:0}
[data-brand="juris-ivy"] .sdb-provenance{font-family:"Times New Roman","Songti SC",serif;font-size:.8rem;letter-spacing:.06em;color:var(--stone);margin-top:.6rem}
[data-brand="juris-ivy"] .sdb-masthead{padding:2.4rem 0 1.4rem;background:radial-gradient(1100px 320px at 85% -80px,rgba(168,136,78,.13),transparent 60%)}
[data-brand="juris-ivy"] .sdb-directory-hero .hub-hero-inner{padding-top:clamp(3.2rem,7vw,5.2rem);padding-bottom:clamp(2.8rem,6vw,4.2rem)}
[data-brand="juris-ivy"] .sdb-directory-hero .hub-hero-title{font-size:clamp(2rem,5vw,3.45rem);letter-spacing:.1em;text-indent:.1em}
[data-brand="juris-ivy"] .sdb-directory-hero .hub-hero-lede{max-width:62ch}
[data-brand="juris-ivy"] .sdb-map-beacon{position:absolute;z-index:5;left:clamp(1.1rem,5vw,4.3rem);bottom:1.05rem;display:inline-flex;align-items:center;gap:.48rem;padding:.34rem .58rem;border:1px solid rgba(216,189,123,.22);border-radius:999px;background:rgba(8,18,30,.32);backdrop-filter:blur(7px);color:rgba(246,239,224,.94);font-size:.76rem;letter-spacing:.08em;text-decoration:none;box-shadow:0 8px 22px rgba(0,0,0,.14);transition:color .2s ease,border-color .2s ease,background .2s ease}
[data-brand="juris-ivy"] .sdb-map-beacon::before{content:"";position:absolute;inset:-.45rem;border-radius:999px}
[data-brand="juris-ivy"] .sdb-map-beacon small{color:rgba(246,239,224,.67);font-size:.62rem;letter-spacing:.05em}
[data-brand="juris-ivy"] .sdb-map-beacon-signal{position:relative;width:.42rem;height:.42rem;border-radius:50%;background:#d8bd7b;box-shadow:0 0 10px rgba(216,189,123,.62)}
[data-brand="juris-ivy"] .sdb-map-beacon-signal::after{content:"";position:absolute;inset:-.34rem;border:1px solid rgba(216,189,123,.65);border-radius:50%;animation:sdbMapBeacon 3.2s ease-out infinite}
[data-brand="juris-ivy"] .sdb-map-beacon:hover,[data-brand="juris-ivy"] .sdb-map-beacon:focus-visible{border-color:rgba(216,189,123,.56);background:rgba(8,18,30,.54);color:#f6efe0}
@keyframes sdbMapBeacon{0%{opacity:.55;transform:scale(.45)}70%,100%{opacity:0;transform:scale(1.55)}}
@media(max-width:520px){
  [data-brand="juris-ivy"] .sdb-directory-hero .hub-hero-title{font-size:1.65rem;line-height:1.2;letter-spacing:.06em;text-indent:0;white-space:nowrap}
  [data-brand="juris-ivy"] .sdb-map-beacon{left:1rem;bottom:.82rem;font-size:.66rem}
}
[data-brand="juris-ivy"] .sdb-directory-summary{padding:0 0 1.35rem;background:radial-gradient(1100px 250px at 85% -80px,rgba(168,136,78,.1),transparent 60%)}
[data-brand="juris-ivy"] .sdb-directory-summary .sdb-statband{margin-top:1.35rem}
[data-brand="juris-ivy"] .sdb-statband{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:1.5rem}
[data-brand="juris-ivy"] .sdb-statband>div{background:#fffdf8;padding:.95rem 1.15rem}
[data-brand="juris-ivy"] .sdb-statband b{display:block;font-family:var(--ji-display);font-size:1.7rem;color:var(--oxblood);line-height:1.15;font-weight:600}
[data-brand="juris-ivy"] .sdb-statband span{font-size:.85rem;color:var(--stone)}
@media(max-width:820px){[data-brand="juris-ivy"] .sdb-statband{grid-template-columns:repeat(2,1fr)}}
[data-brand="juris-ivy"] .sdb-filters{position:sticky;top:0;z-index:40;background:rgba(251,248,241,.96);backdrop-filter:blur(6px);border-block:1px solid var(--line);padding:.75rem 0;margin-top:1.7rem}
[data-brand="juris-ivy"] .sdb-frow{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
[data-brand="juris-ivy"] .sdb-fgroup{display:flex;align-items:center;gap:.3rem;border:1px solid var(--line);border-radius:6px;padding:.26rem .4rem;background:#fffdf8}
[data-brand="juris-ivy"] .sdb-fgroup>span{font-family:"Times New Roman","Songti SC",serif;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);padding:0 .35rem}
[data-brand="juris-ivy"] .sdb-filter-map{position:relative;display:inline-flex;align-items:center;gap:.48rem;min-height:2.1rem;padding:.3rem .68rem .3rem .5rem;border:1px solid rgba(123,31,36,.24);border-radius:999px;background:linear-gradient(120deg,rgba(255,253,248,.98),rgba(239,230,211,.86));color:var(--oxblood);font-size:.75rem;letter-spacing:.06em;text-decoration:none;box-shadow:0 8px 22px -18px rgba(19,38,58,.65);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
[data-brand="juris-ivy"] .sdb-filter-map:hover,[data-brand="juris-ivy"] .sdb-filter-map:focus-visible{transform:translateY(-1px);border-color:rgba(123,31,36,.48);box-shadow:0 12px 26px -17px rgba(19,38,58,.78)}
[data-brand="juris-ivy"] .sdb-filter-map-orbit{position:relative;width:1.18rem;height:1.18rem;border:1px solid rgba(123,31,36,.38);border-radius:50%;background:radial-gradient(circle at 38% 34%,#fffdf8 0 14%,#b6c9bd 15% 31%,#315d58 32% 61%,#17364b 62%);box-shadow:0 0 0 .22rem rgba(168,136,78,.08)}
[data-brand="juris-ivy"] .sdb-filter-map-orbit::before,[data-brand="juris-ivy"] .sdb-filter-map-orbit::after{content:"";position:absolute;inset:-.34rem;border:1px solid rgba(168,136,78,.46);border-radius:50%;animation:sdbFilterMapPulse 3.2s ease-out infinite}
[data-brand="juris-ivy"] .sdb-filter-map-orbit::after{animation-delay:1.6s}
[data-brand="juris-ivy"] .sdb-filter-map-orbit i{position:absolute;right:-.1rem;top:.05rem;width:.26rem;height:.26rem;border-radius:50%;background:#d2b76f;box-shadow:0 0 8px rgba(210,183,111,.9)}
@keyframes sdbFilterMapPulse{0%{opacity:.65;transform:scale(.64)}72%,100%{opacity:0;transform:scale(1.28)}}
[data-brand="juris-ivy"] .sdb-chip{border:1px solid transparent;background:transparent;border-radius:5px;padding:.22rem .7rem;font-size:.88rem;color:var(--stone);cursor:pointer;font-family:inherit}
/* fix-wave2 0710:hover 规则 :hover:not(:disabled) 的特异性(0,3,0)本来就高于 .on(0,2,0)，
   不管源码顺序谁在后，选中态(.on)只要一被 hover 就会被这条 hover 规则的 color:oxblood
   盖掉——而 .on 的背景正好也是 oxblood，文字与底色同色=纯色块看不见字。目录筛选"国家"行
   复测时鼠标刚好停在最后点的芯片上，这条 hover 规则命中了.on芯片，把白字盖成了深红字，
   于是变成"选中态文字不可见"；学位/地区/梯队几行只是当时鼠标没停在上面，同样的坑，同样会踩。
   加 :not(.on) 让 hover 变色只作用于未选中芯片，选中态的白字永远不会被 hover 吃掉。 */
[data-brand="juris-ivy"] .sdb-chip:hover:not(:disabled):not(.on){color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-chip.on{background:var(--oxblood);color:#f8f0e1;font-weight:600}
[data-brand="juris-ivy"] .sdb-chip:disabled{opacity:.45;cursor:not-allowed}
[data-brand="juris-ivy"] .sdb-chip[hidden]{display:none}
[data-brand="juris-ivy"] .sdb-fgroup-schoolset{max-width:100%;flex-wrap:wrap;row-gap:.3rem}
[data-brand="juris-ivy"] .sdb-filter-scope{flex:1 1 100%;margin:-.08rem .25rem 0;font-size:.69rem;line-height:1.5;color:var(--stone);letter-spacing:.015em}
[data-brand="juris-ivy"] .sdb-sort,[data-brand="juris-ivy"] .sdb-search{border:1px solid var(--line);background:#fffdf8;border-radius:6px;padding:.45rem .8rem;font-size:.9rem;color:var(--ink);font-family:inherit}
[data-brand="juris-ivy"] .sdb-search{flex:1;min-width:170px}
[data-brand="juris-ivy"] .sdb-count{margin-top:.55rem;font-family:"Times New Roman","Songti SC",serif;font-size:.8rem;letter-spacing:.05em;color:var(--stone)}
/* P0 fix 0709: 筛选行在窄屏下曾整体溢出视口（html/body 全站 overflow-x:hidden，
   溢出部分物理不可点——如"欧陆"国家筛选按钮）。根因是单个 .sdb-fgroup（如国家分组，
   芯片数随数据变化）本身不换行，比视口还宽。选用"允许换行"而非"横滑"：客户大头是
   手机/微信内置浏览器的非技术用户，换行=零手势零风险，保证任何筛选项都可点到；
   横滑遮罩留给"必须一行放不下的表格/导航"这类天然横向内容（见下方 .site-top nav 与
   admin 表格）。*/
@media(max-width:820px){
  [data-brand="juris-ivy"] .sdb-frow{row-gap:.5rem}
  [data-brand="juris-ivy"] .sdb-fgroup{flex-wrap:wrap;row-gap:.3rem}
  [data-brand="juris-ivy"] .sdb-filter-map{min-height:40px;padding:.42rem .78rem .42rem .58rem}
  [data-brand="juris-ivy"] .sdb-chip{min-height:40px;padding:.38rem .75rem}
  [data-brand="juris-ivy"] .sdb-fgroup-schoolset{width:100%;padding:.35rem .4rem}
  [data-brand="juris-ivy"] .sdb-fgroup-schoolset>span{flex-basis:100%;padding-bottom:.08rem}
  [data-brand="juris-ivy"] .sdb-filter-scope{font-size:.66rem;margin-top:-.12rem}
  [data-brand="juris-ivy"] .sdb-sort,
  [data-brand="juris-ivy"] .sdb-search{flex:1 1 100%;min-width:0}
}
@media(prefers-reduced-motion:reduce){
  [data-brand="juris-ivy"] .sdb-filter-map-orbit::before,
  [data-brand="juris-ivy"] .sdb-filter-map-orbit::after{animation:none;opacity:.42}
}
[data-brand="juris-ivy"] .sdb-count .sdb-n{color:var(--oxblood);font-weight:700}
[data-brand="juris-ivy"] .sdb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;padding:1.7rem 0 .5rem}
@media(max-width:980px){[data-brand="juris-ivy"] .sdb-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){[data-brand="juris-ivy"] .sdb-grid{grid-template-columns:1fr}}
[data-brand="juris-ivy"] .sdb-card{background:#fffdf8;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 1px 0 rgba(90,70,40,.06);transition:transform .18s ease,box-shadow .18s ease;position:relative;display:flex;flex-direction:column}
[data-brand="juris-ivy"] .sdb-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(80,50,20,.45)}
[data-brand="juris-ivy"] .sdb-card-photo{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,#eee5d5 0%,#e5d8c3 58%,#d9c7aa 100%);isolation:isolate}
[data-brand="juris-ivy"] .sdb-card-photo::before{content:"";position:absolute;z-index:0;inset:14% 10%;border-radius:50%;background:radial-gradient(circle,rgba(255,253,248,.78),rgba(168,136,78,.14) 58%,transparent 72%);filter:blur(18px)}
[data-brand="juris-ivy"] .sdb-ph{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;filter:saturate(.94) sepia(.05);display:block;background:transparent}
[data-brand="juris-ivy"] img[data-viewport-image]:not([src]){color:transparent}
[data-brand="juris-ivy"] .sdb-ph-mono{display:grid;place-items:center;background:linear-gradient(135deg,#efe6d2,#e4d5b8 60%,#d9c8a6),radial-gradient(400px 200px at 20% 0,rgba(110,29,36,.12),transparent)}
[data-brand="juris-ivy"] .sdb-ph-mono span{font-family:var(--ji-display);font-size:2.6rem;color:var(--oxblood);opacity:.75;letter-spacing:.06em}
[data-brand="juris-ivy"] .sdb-rank{position:absolute;z-index:2;top:.65rem;left:.65rem;background:rgba(27,23,20,.82);color:#f0e7d3;font-family:"Times New Roman","Songti SC",serif;font-size:.72rem;letter-spacing:.14em;padding:.2rem .6rem;border-radius:4px;text-transform:uppercase}
[data-brand="juris-ivy"] .sdb-card-bd{padding:.95rem 1.1rem 1rem;display:flex;flex-direction:column;flex:1}
[data-brand="juris-ivy"] .sdb-card-identity{display:grid;grid-template-rows:2.96rem 1.3rem 1.15rem;min-height:5.41rem}
[data-brand="juris-ivy"] .sdb-card h3{font-family:var(--ji-display);font-weight:600;font-size:1.14rem;margin:0;line-height:1.3;min-height:2.96rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
[data-brand="juris-ivy"] .sdb-card h3 a{color:var(--ink);text-decoration:none}
[data-brand="juris-ivy"] .sdb-card h3 a:hover{color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-cn{color:var(--stone);font-size:.9rem;margin:.08rem 0 .12rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-brand="juris-ivy"] .sdb-loc{font-family:"Times New Roman","Songti SC",serif;font-size:.74rem;letter-spacing:.1em;color:var(--stone);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-brand="juris-ivy"] .sdb-program-tracks{--sdb-stat-row-min:5.15rem;margin-top:.75rem;border-block:1px solid var(--line);background:rgba(251,248,241,.45)}
[data-brand="juris-ivy"] .sdb-degree-track{display:grid;grid-template-columns:3.55rem minmax(0,1fr);align-items:stretch;transition:background .18s ease,opacity .18s ease}
[data-brand="juris-ivy"] .sdb-degree-track+.sdb-degree-track{border-top:1px solid rgba(168,136,78,.2)}
[data-brand="juris-ivy"] .sdb-track-label{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:.62rem .46rem;font-family:var(--ji-display);font-size:.74rem;line-height:1;color:var(--oxblood);letter-spacing:.035em;border-right:1px solid rgba(168,136,78,.24)}
[data-brand="juris-ivy"] .sdb-track-label small{margin-top:.28rem;font-family:"Times New Roman","Songti SC",serif;font-size:.56rem;font-weight:400;letter-spacing:.04em;color:var(--stone);white-space:nowrap}
[data-brand="juris-ivy"] .sdb-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(var(--sdb-stat-row-min),auto);align-items:stretch;gap:0}
[data-brand="juris-ivy"] .sdb-degree-track .sdb-stats{padding-left:.52rem}
/* JD / LL.M. 共用同一三列骨架；缺值保留结构但明确标“未收录”，两条轨道的竖线与标签基线始终对齐。 */
[data-brand="juris-ivy"] .sdb-stats>div{display:flex;flex-direction:column;justify-content:flex-start;min-width:0;min-height:var(--sdb-stat-row-min);height:100%;padding:.62rem .38rem;border-left:1px solid rgba(168,136,78,.22)}
[data-brand="juris-ivy"] .sdb-stats>div:first-child{padding-left:0;border-left:0}
[data-brand="juris-ivy"] .sdb-stats>div:last-child{padding-right:0}
[data-brand="juris-ivy"] .sdb-stats b{display:block;min-width:0;font-family:var(--ji-display);font-size:.88rem;line-height:1.28;color:var(--oxblood);font-weight:600;word-break:keep-all;overflow-wrap:normal;font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .sdb-stats b .nw{white-space:nowrap}
[data-brand="juris-ivy"] .sdb-stats .sdb-stat-money b{font-size:clamp(.78rem,1.18vw,.9rem);white-space:nowrap;letter-spacing:0}
[data-brand="juris-ivy"] .sdb-stats .sdb-stat-deadline b{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:.2rem;
  min-width:0;
  font-size:clamp(.75rem,1.08vw,.86rem);
  line-height:1.18;
  /* 长日期与“往季”状态允许在窄统计列内分两行，避免日期被 flex 压缩后与徽标重叠。 */
  white-space:normal;
  word-break:normal;
  overflow-wrap:normal;
}
[data-brand="juris-ivy"] .sdb-date-core{flex:0 0 auto;min-width:0;white-space:nowrap;overflow-wrap:normal}
[data-brand="juris-ivy"] .sdb-date-past{color:var(--stone,#8a8378);font-weight:400}
[data-brand="juris-ivy"] .sdb-date-status{display:inline-flex;flex:0 0 auto;align-items:center;padding:.04rem .2rem;border:1px solid rgba(123,31,24,.2);border-radius:999px;background:rgba(123,31,24,.055);color:var(--oxblood);font-family:"Times New Roman","Songti SC",serif;font-size:.66em;font-weight:500;line-height:1.1;white-space:nowrap;vertical-align:.08em}
[data-brand="juris-ivy"] .sdb-stats b.sdb-langv{font-size:clamp(.74rem,1.08vw,.84rem);line-height:1.3}
[data-brand="juris-ivy"] .sdb-stats b small{font-size:.7rem;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-stats i{font-style:normal;font-family:"Times New Roman","Songti SC",serif;font-size:.58rem;letter-spacing:.06em;color:var(--stone);text-transform:uppercase;margin-top:auto;padding-top:.2rem;white-space:nowrap}
[data-brand="juris-ivy"] .sdb-stat-missing b{color:var(--stone);font-family:var(--ji-sans);font-size:.76rem;font-weight:400;letter-spacing:.04em}
@media(max-width:640px){
  [data-brand="juris-ivy"] .sdb-program-tracks{--sdb-stat-row-min:5.35rem}
  [data-brand="juris-ivy"] .sdb-stats .sdb-stat-deadline b{align-content:flex-start;flex-wrap:wrap;row-gap:.16rem;white-space:normal}
  [data-brand="juris-ivy"] .sdb-date-status{margin-left:0}
}
@media(max-width:390px){
  [data-brand="juris-ivy"] .sdb-card-bd{padding-inline:.95rem}
  [data-brand="juris-ivy"] .sdb-degree-track{grid-template-columns:3.2rem minmax(0,1fr)}
  [data-brand="juris-ivy"] .sdb-track-label{padding-inline:.38rem;font-size:.68rem}
  [data-brand="juris-ivy"] .sdb-stats>div{padding-inline:.28rem}
  [data-brand="juris-ivy"] .sdb-stats i{font-size:.55rem;letter-spacing:.04em}
}
[data-brand="juris-ivy"] .sdb-cmp{position:absolute;top:.55rem;right:.6rem;background:rgba(251,248,241,.92);border:1px solid var(--line);border-radius:5px;font-size:.75rem;padding:.18rem .55rem;color:var(--stone);cursor:pointer;font-family:inherit}
[data-brand="juris-ivy"] .sdb-cmp.on{background:var(--oxblood);color:#f7eedd;border-color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-cmpbar{position:fixed;left:50%;transform:translateX(-50%);bottom:1rem;z-index:55;background:#241d15;color:#efe6d2;border-radius:999px;padding:.55rem .8rem .55rem 1.3rem;display:flex;gap:.9rem;align-items:center;box-shadow:0 10px 30px rgba(30,18,8,.4);font-size:.88rem;max-width:92vw;flex-wrap:wrap}
[data-brand="juris-ivy"] .sdb-cmpbar b{color:#c2a76b}
[data-brand="juris-ivy"] .sdb-cmp-clear{background:transparent;border:0;color:#a3977e;cursor:pointer;font-size:.8rem;font-family:inherit}
[data-brand="juris-ivy"] .sdb-btn-brass{background:#c2a76b;color:#2a2014;border:0;padding:.55rem 1.2rem;border-radius:6px;font-weight:700;font-size:.92rem;cursor:pointer;box-shadow:0 3px 0 rgba(0,0,0,.25);font-family:inherit;text-decoration:none;display:inline-block}
/* M 项修复(2026-07-10):同上——display:flex 是作者样式,盖过 UA 表的 [hidden]{display:none}。
   fit 页 #fit-cta 带 hidden 属性等结果生成后才应现身,之前整块"分布图只是起点"红色引导条+
   留资表单在空白初始态就整块裸露,加 :not([hidden]) 修复。 */
[data-brand="juris-ivy"] .sdb-leadband:not([hidden]){margin:2.2rem 0 1rem;background:linear-gradient(120deg,var(--oxblood) 0%,var(--oxblood-deep) 90%);border-radius:12px;color:#f3e9d6;padding:1.8rem clamp(1.2rem,4vw,2.4rem);display:flex;gap:1.6rem;align-items:center;flex-wrap:wrap}
[data-brand="juris-ivy"] .sdb-leadband h2{font-family:var(--ji-display);font-size:clamp(1.25rem,2.5vw,1.65rem);margin:.2rem 0 .35rem;color:#f7efe0}
[data-brand="juris-ivy"] .sdb-leadband p{margin:0;font-size:.95rem;color:#e5d6bd;max-width:36em}
[data-brand="juris-ivy"] .sdb-leadband .sdb-btn-brass{margin-left:auto;white-space:nowrap}
/* ---- 详情页 ---- */
[data-brand="juris-ivy"] .sdb-crumb{font-family:"Times New Roman","Songti SC",serif;font-size:.78rem;letter-spacing:.1em;color:var(--stone);padding:1rem 0 .6rem;text-transform:uppercase}
[data-brand="juris-ivy"] .sdb-crumb a{color:var(--stone);text-decoration:none}
[data-brand="juris-ivy"] .sdb-hero{position:relative;border-radius:12px;overflow:hidden;min-height:340px;display:flex;align-items:flex-end;background:linear-gradient(135deg,#d9cbb3 0%,#bba47c 45%,#7d6848 100%)}
[data-brand="juris-ivy"] .sdb-hero-picture{position:absolute;inset:0;display:block}
[data-brand="juris-ivy"] .sdb-hero-ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.95) sepia(.04)}
@keyframes sdbHeroImageDrift{0%{transform:scale(1.02) translate3d(0,0,0)}100%{transform:scale(1.075) translate3d(0,-1%,0)}}
@keyframes sdbHeroCopyRise{0%{opacity:0;transform:translateY(18px)}100%{opacity:1;transform:none}}
[data-brand="juris-ivy"] .sdb-hero.is-motion-ready img.sdb-hero-ph{animation:sdbHeroImageDrift 16s ease-out both}
[data-brand="juris-ivy"] .sdb-hero.is-motion-ready .sdb-hero-inner{animation:sdbHeroCopyRise .85s cubic-bezier(.22,.8,.28,1) both}
@media(prefers-reduced-motion:reduce){
  [data-brand="juris-ivy"] img.sdb-hero-ph,
  [data-brand="juris-ivy"] .sdb-hero-inner{animation:none;transform:none}
}
[data-brand="juris-ivy"] .sdb-hero .sdb-ph-mono{position:absolute;inset:0}
[data-brand="juris-ivy"] .sdb-hero-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,22,14,.05) 30%,rgba(28,20,12,.78) 100%)}
[data-brand="juris-ivy"] .sdb-hero-inner{position:relative;padding:1.8rem clamp(1.2rem,3.5vw,2.4rem);color:#f6efe0;width:100%}
[data-brand="juris-ivy"] .sdb-chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.55rem}
[data-brand="juris-ivy"] .sdb-chips span{background:rgba(251,248,241,.16);border:1px solid rgba(240,228,200,.42);border-radius:999px;font-size:.76rem;padding:.18rem .75rem;letter-spacing:.06em;font-family:"Times New Roman","Songti SC",serif;text-transform:uppercase}
[data-brand="juris-ivy"] .sdb-hero h1{font-family:var(--ji-display);font-weight:600;font-size:clamp(1.8rem,4vw,2.9rem);margin:0;line-height:1.15;color:#f6efe0;text-shadow:0 2px 18px rgba(20,12,6,.4)}
[data-brand="juris-ivy"] .sdb-hero-cn{font-size:1.1rem;color:#e8dcc2;margin-top:.2rem;letter-spacing:.14em}
[data-brand="juris-ivy"] .sdb-hero-src{position:absolute;right:1.1rem;bottom:.9rem;font-family:"Times New Roman",serif;font-size:.68rem;letter-spacing:.1em;color:rgba(240,230,208,.75);text-transform:uppercase}
[data-brand="juris-ivy"] .sdb-keyband{margin:1.7rem 0 .5rem}
[data-brand="juris-ivy"] .sdb-sec-h{display:flex;align-items:baseline;gap:.9rem;border-bottom:1px solid var(--line);padding-bottom:.5rem;margin-bottom:1rem;flex-wrap:wrap}
[data-brand="juris-ivy"] .sdb-sec-h h2{font-family:var(--ji-display);font-weight:600;font-size:clamp(1.3rem,2.5vw,1.7rem);margin:0}
[data-brand="juris-ivy"] .sdb-no{font-family:"Times New Roman","Songti SC",serif;color:var(--brass);letter-spacing:.16em;font-size:.76rem;text-transform:uppercase}
/* 指标带按数据量分成语义行：桌面端 10 项为 5/5，9 项为 5/4，
   避免 4/4/2 的第三行把两个指标拉成半页宽；算法由构建器统一生成。 */
[data-brand="juris-ivy"] .sdb-tiles{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
[data-brand="juris-ivy"] .sdb-tile-row{display:grid;gap:1px;min-width:0;background:var(--line)}
[data-brand="juris-ivy"] .sdb-tile-row-n5{grid-template-columns:repeat(5,minmax(0,1fr))}
[data-brand="juris-ivy"] .sdb-tile-row-n4{grid-template-columns:repeat(4,minmax(0,1fr))}
[data-brand="juris-ivy"] .sdb-tile-row-n3{grid-template-columns:repeat(3,minmax(0,1fr))}
[data-brand="juris-ivy"] .sdb-tile-row-n2{grid-template-columns:repeat(2,minmax(0,1fr))}
[data-brand="juris-ivy"] .sdb-tile-row-n1{grid-template-columns:minmax(0,1fr)}
@media(max-width:1000px){
  [data-brand="juris-ivy"] .sdb-tile-row-n5,
  [data-brand="juris-ivy"] .sdb-tile-row-n4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  [data-brand="juris-ivy"] .sdb-tile-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  [data-brand="juris-ivy"] .sdb-tile-row-n1{grid-template-columns:minmax(0,1fr)}
  [data-brand="juris-ivy"] .sdb-tile-row-n3>.sdb-tile:last-child,
  [data-brand="juris-ivy"] .sdb-tile-row-n5>.sdb-tile:last-child{grid-column:1/-1}
}
[data-brand="juris-ivy"] .sdb-tile{background:#fffdf8;padding:1rem 1.05rem}
[data-brand="juris-ivy"] .sdb-tile .k{font-family:"Times New Roman","Songti SC",serif;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone)}
/* keep-all 禁 CJK 词内断行(托福/雅思 不裂);overflow-wrap 兜底超长英文数字;line-height 略放宽,两行也整齐 */
[data-brand="juris-ivy"] .sdb-tile .v{font-family:var(--ji-display);font-size:1.42rem;color:var(--ink);margin-top:.12rem;line-height:1.2;font-weight:600;word-break:keep-all;overflow-wrap:break-word}
[data-brand="juris-ivy"] .sdb-tile .v small{font-size:.82rem;color:var(--stone);font-family:inherit}
[data-brand="juris-ivy"] .sdb-tile .h{font-size:.73rem;color:var(--stone);margin-top:.08rem}
[data-brand="juris-ivy"] .sdb-tile.hl .v{color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-overall-ranks{margin-top:.85rem;padding-top:.85rem;border-top:1px solid rgba(168,136,78,.28)}
[data-brand="juris-ivy"] .sdb-rank-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;margin:0 0 .5rem;flex-wrap:wrap}
[data-brand="juris-ivy"] .sdb-rank-group-head strong{font-family:var(--ji-display);font-size:1rem;font-weight:600;color:var(--ink)}
[data-brand="juris-ivy"] .sdb-rank-group-head span{font-size:.72rem;letter-spacing:.06em;color:var(--stone)}
/* 官网核对小按钮(2026-07-11 铁规②):学费/截止格右上角的小图标钮,深链到该字段的官方来源页。
   用 flex 行把 .k 标签和按钮并排放(而非绝对定位),避免小 tile 里按钮压住数值文字;
   表格行(.sdb-table)没有"角"的概念,按钮改成随值内联、不入 k-row(见下方覆写)。 */
[data-brand="juris-ivy"] .sdb-tile .k-row,
[data-brand="juris-ivy"] .sdb-prog .f .k-row{display:flex;align-items:center;justify-content:space-between;gap:.4rem}
/* 2026-07-11 Jayson:来源钮去掉"官网核对"四字,只留裸箭头 ↗——尺寸从 pill 收成正圆小钮,
   点击热区仍 ≥20px(无障碍),title/aria-label 承载语义。 */
[data-brand="juris-ivy"] .sdb-verify-btn{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;font-size:.72rem;line-height:1;font-family:"Switzer","Noto Sans SC",sans-serif;color:var(--oxblood);background:rgba(123,31,24,.07);border:1px solid rgba(123,31,24,.2);border-radius:999px;text-decoration:none;transition:background .15s;flex-shrink:0}
[data-brand="juris-ivy"] .sdb-verify-btn:hover{background:rgba(123,31,24,.14)}

/* ---- LL.M. 关键信息概览表(2026-07-11 Jayson 验收需求:一眼看全) ----
   复用 JD keyband 的 .sdb-tiles/.sdb-tile 骨架保持体例一致;头部加一条 Overview 小标题带。 */
[data-brand="juris-ivy"] .sdb-llm-ov{margin:.2rem 0 1.1rem}
[data-brand="juris-ivy"] .sdb-ov-h{display:flex;align-items:baseline;gap:.6rem;margin-bottom:.5rem;flex-wrap:wrap}
[data-brand="juris-ivy"] .sdb-ov-h h4{font-family:var(--ji-display);font-size:1rem;margin:0;font-weight:600}
[data-brand="juris-ivy"] .sdb-ov-h h4 small{font-family:"Times New Roman","Songti SC",serif;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);font-weight:400;margin-left:.3rem}
/* 概览表数值统一 tabular 数字(对齐 JD 概览体例);语言/学费这类偏长的值降一档字号防溢出 */
[data-brand="juris-ivy"] .sdb-llm-ov .sdb-tile .v{font-variant-numeric:tabular-nums;font-size:1.12rem;line-height:1.3;word-break:keep-all;overflow-wrap:break-word}
[data-brand="juris-ivy"] .sdb-llm-ov .sdb-tile .v small{font-size:.72rem}
/* 语言要求等独占整行的复合值:值区可从容排一行,数字/间隔点不裂 */
[data-brand="juris-ivy"] .sdb-llm-ov .sdb-tile.sdb-tile-wide .v{font-size:1.05rem}

/* ★热门标(名称启发式判定的旗舰/主流方向项目,排在最前) */
[data-brand="juris-ivy"] .sdb-prog .badge-hot{background:rgba(123,31,24,.1);border-color:rgba(123,31,24,.28);color:var(--oxblood);font-weight:600}

/* >6 项校(ucl 18/melbourne 15/birmingham 15…):项目卡列表套内部滚动容器,不把页面撑爆 */
[data-brand="juris-ivy"] .sdb-prog-scrollhint{font-size:.78rem;color:var(--stone);margin:.1rem 0 .5rem}
[data-brand="juris-ivy"] .sdb-prog-scroll{max-height:41rem;overflow-y:auto;overscroll-behavior:contain;padding:.15rem .55rem .15rem .15rem;border:1px solid var(--line);border-radius:10px;background:rgba(168,136,78,.03)}
[data-brand="juris-ivy"] .sdb-prog-scroll .sdb-prog:last-child{margin-bottom:0}
[data-brand="juris-ivy"] .sdb-prog-scroll::-webkit-scrollbar{width:7px}
[data-brand="juris-ivy"] .sdb-prog-scroll::-webkit-scrollbar-thumb{background:rgba(123,31,24,.22);border-radius:999px}
[data-brand="juris-ivy"] .sdb-prog-scroll::-webkit-scrollbar-track{background:transparent}
/* 手机浏览器常驻翻译/辅助浮层会占用视口最右侧约 30px；给长项目列表留一条安全沟，
   保留扩展与站内滚动功能，同时避免卡片文字、来源箭头贴到浮层下面。 */
@media(max-width:640px){
  [data-brand="juris-ivy"] .sdb-prog-scroll{max-height:34rem;padding-right:1.35rem;scrollbar-gutter:stable}
}
/* 注脚角标 + 底部注脚区(铁规⑥):数据格里长括号解释拆出后,格内只留"干净值+角标",
   解释文字落进卡片底部这条小字区——一行一条,--stone 三级灰,和角标一一对应。 */
[data-brand="juris-ivy"] .sdb-fn-mark{font-size:.68em;color:var(--oxblood);margin-left:.08em;vertical-align:super;line-height:0}
/* fix-round3(2026-07-12 Jayson 截图):注脚不再一行一条(短注脚右侧大片留白)——同行流式排列,
   放得下就同排(* 注1  ** 注2),放不下才换行;长注脚自然占整行 */
[data-brand="juris-ivy"] .sdb-footnotes{margin-top:.6rem;padding-top:.5rem;border-top:1px dashed var(--line);display:flex;flex-wrap:wrap;column-gap:1.1rem;row-gap:.15rem}
[data-brand="juris-ivy"] .sdb-fn-item{font-size:.74rem;line-height:1.6;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-fn-item b{color:var(--stone);font-weight:700;margin-right:.3em}
[data-brand="juris-ivy"] .sdb-detail{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:2.4rem;padding:1.5rem 0 2rem;align-items:start}
/* P1 修复 0710(F/I 项根因):窄屏 1fr 轨道隐含 min-width:auto,当子内容(表格/长项目名等)
   min-content 超出视口宽度时,轨道会被撑到 562px 等超宽值——body 全站 overflow-x:hidden
   悄悄裁掉右侧内容,视觉上表现为"画像卡丢卡/项目名卡边缘截断"。补回 minmax(0,...) 强制轨道
   服从容器宽度,超长内容改由各自的换行/省略规则处理,不再撑爆栅格。 */
@media(max-width:980px){[data-brand="juris-ivy"] .sdb-detail{grid-template-columns:minmax(0,1fr)}}
[data-brand="juris-ivy"] .sdb-sec{margin-bottom:2.2rem}
[lang="en"] [data-language-exclusive="zh"],
[data-language-exclusive="zh"][hidden]{display:none!important}

/* 英国 LLM 公开门槛核对器：学校页与 Ask 共享同一规则、数据和渲染模块。 */
[data-brand="juris-ivy"] .uk-eligibility-widget {
  position:relative; overflow:hidden; border:1px solid rgba(168,136,78,.38);
  border-radius:16px; background:linear-gradient(135deg,rgba(251,248,241,.98),rgba(244,237,223,.88));
  padding:clamp(1rem,2vw,1.45rem);
}
[data-brand="juris-ivy"] .uk-eligibility-widget > p { margin:.45rem 0 1rem; color:var(--stone); font-size:.88rem; line-height:1.75; }
[data-brand="juris-ivy"] .uk-eligibility-toggle,
[data-brand="juris-ivy"] .uk-eligibility-actions button {
  border:0; border-radius:999px; background:var(--oxblood); color:#fffdf9;
  padding:.68rem 1.1rem; font:650 .82rem/1.2 var(--ji-body); cursor:pointer;
}
[data-brand="juris-ivy"] .uk-eligibility-toggle:hover,
[data-brand="juris-ivy"] .uk-eligibility-actions button:hover { filter:brightness(1.12); }
[data-brand="juris-ivy"] .uk-eligibility-body { margin-top:1.1rem; border-top:1px solid rgba(168,136,78,.28); padding-top:1.1rem; }
[data-brand="juris-ivy"] .uk-eligibility-body[hidden] { display:none!important; }
[data-brand="juris-ivy"] .uk-eligibility-form > label,
[data-brand="juris-ivy"] .uk-eligibility-fields label,
[data-brand="juris-ivy"] .uk-eligibility-query label { display:grid; gap:.28rem; color:var(--stone); font-size:.72rem; letter-spacing:.02em; }
[data-brand="juris-ivy"] .uk-eligibility-form input,
[data-brand="juris-ivy"] .uk-eligibility-form select {
  width:100%; min-width:0; border:1px solid rgba(168,136,78,.42); border-radius:8px;
  background:#fffdf9; color:var(--ink); padding:.62rem .68rem; font:500 .82rem var(--ji-body);
}
[data-brand="juris-ivy"] .uk-eligibility-query { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:.6rem; margin-top:.75rem; }
[data-brand="juris-ivy"] .uk-eligibility-query button {
  min-height:2.45rem; border:0; border-radius:999px; background:var(--oxblood); color:#fffdf9;
  padding:.62rem 1rem; font:650 .78rem/1.2 var(--ji-body); white-space:nowrap; cursor:pointer;
}
[data-brand="juris-ivy"] .uk-eligibility-query button:hover { filter:brightness(1.12); }
[data-brand="juris-ivy"] .uk-eligibility-form-note { margin:.55rem 0 0!important; color:var(--stone)!important; font-size:.66rem!important; line-height:1.5!important; }
[data-brand="juris-ivy"] .uk-eligibility-form input:focus,
[data-brand="juris-ivy"] .uk-eligibility-form select:focus { outline:2px solid rgba(110,29,36,.16); border-color:var(--oxblood); }
[data-brand="juris-ivy"] .uk-eligibility-fields { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; margin-top:.75rem; }
[data-brand="juris-ivy"] .uk-eligibility-fields .is-wide { grid-column:span 2; }
[data-brand="juris-ivy"] .uk-eligibility-target { display:flex; align-items:baseline; gap:.65rem; margin:0; }
[data-brand="juris-ivy"] .uk-eligibility-target span { color:var(--stone); font-size:.72rem; }
[data-brand="juris-ivy"] .uk-eligibility-target strong { color:var(--ink); font:600 1rem var(--ji-display); }
[data-brand="juris-ivy"] .uk-eligibility-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; margin-top:.9rem; }
[data-brand="juris-ivy"] .uk-eligibility-actions span { color:var(--stone); font-size:.68rem; }
[data-brand="juris-ivy"] .uk-eligibility-coverage-note,
[data-brand="juris-ivy"] .uk-eligibility-match { margin:.65rem 0; padding:.55rem .7rem; border-left:2px solid var(--brass); background:rgba(168,136,78,.08); color:var(--stone); font-size:.78rem; }
[data-brand="juris-ivy"] .uk-eligibility-match.is-warning { border-left-color:var(--oxblood); }
[data-brand="juris-ivy"] div.uk-eligibility-match { display:grid; gap:.16rem; }
[data-brand="juris-ivy"] .uk-eligibility-match > strong { color:var(--ink); font:600 .86rem var(--ji-display); }
[data-brand="juris-ivy"] .uk-eligibility-match > span { color:var(--stone); font-size:.68rem; line-height:1.35; }
[data-brand="juris-ivy"] .uk-eligibility-tags { display:flex; flex-wrap:wrap; gap:.32rem; margin-top:.3rem; }
[data-brand="juris-ivy"] .uk-eligibility-tags b { border:1px solid rgba(168,136,78,.35); border-radius:999px; padding:.16rem .42rem; color:var(--oxblood); background:#fffdf9; font-size:.62rem; font-weight:650; }
[data-brand="juris-ivy"] .uk-eligibility-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin-top:.8rem; }
[data-brand="juris-ivy"] .uk-eligibility-result { border:1px solid rgba(168,136,78,.28); border-top:3px solid var(--brass); border-radius:10px; background:#fffdf9; padding:.8rem; }
[data-brand="juris-ivy"] .uk-eligibility-result.is-met { border-top-color:#3f7355; }
[data-brand="juris-ivy"] .uk-eligibility-result.is-not-met { border-top-color:#8a2f35; }
[data-brand="juris-ivy"] .uk-eligibility-result.is-insufficient { border-top-color:#77746c; }
[data-brand="juris-ivy"] .uk-eligibility-result header { display:flex; justify-content:space-between; gap:.7rem; }
[data-brand="juris-ivy"] .uk-eligibility-result header div { display:grid; gap:.15rem; }
[data-brand="juris-ivy"] .uk-eligibility-result header strong { color:var(--ink); font:600 .9rem var(--ji-display); }
[data-brand="juris-ivy"] .uk-eligibility-result header span { color:var(--stone); font-size:.7rem; }
[data-brand="juris-ivy"] .uk-eligibility-result header em { flex:none; color:var(--oxblood); font:650 .66rem var(--ji-body); }
[data-brand="juris-ivy"] .uk-eligibility-verdict { margin:.6rem 0!important; color:var(--ink)!important; font-size:.78rem!important; }
[data-brand="juris-ivy"] .uk-eligibility-result ul { list-style:none; margin:.55rem 0; padding:0; display:grid; gap:.32rem; }
[data-brand="juris-ivy"] .uk-eligibility-result li { display:flex; justify-content:space-between; gap:.5rem; color:var(--stone); font-size:.7rem; }
[data-brand="juris-ivy"] .uk-eligibility-result li b { font-weight:650; color:var(--oxblood); }
[data-brand="juris-ivy"] .uk-eligibility-result li b.is-met { color:#3f7355; }
[data-brand="juris-ivy"] .uk-eligibility-result li b.is-not-met { color:#8a2f35; }
[data-brand="juris-ivy"] .uk-eligibility-result .uk-eligibility-requirements { margin:.62rem 0; gap:0; border-top:1px solid rgba(168,136,78,.18); }
[data-brand="juris-ivy"] .uk-eligibility-result .uk-eligibility-requirements li { display:block; padding:.4rem 0; border-bottom:1px solid rgba(168,136,78,.14); color:var(--stone); font-size:.69rem; line-height:1.5; }
[data-brand="juris-ivy"] .uk-eligibility-result > a { color:var(--oxblood); font-size:.7rem; text-decoration:underline; text-underline-offset:2px; }
[data-brand="juris-ivy"] .uk-eligibility-disclaimer { margin:.8rem 0 0; color:var(--stone); font-size:.69rem; line-height:1.65; }
[data-brand="juris-ivy"] .uk-eligibility-loading,
[data-brand="juris-ivy"] .uk-eligibility-error { color:var(--stone); font-size:.8rem; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-widget { padding:1.05rem 1.15rem; border-radius:10px; overflow:visible; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-rail-meta { margin:-.25rem 0 .55rem; color:var(--brass); font-size:.62rem; letter-spacing:.04em; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-widget > p { margin:.35rem 0 .8rem; font-size:.76rem; line-height:1.62; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-toggle { width:100%; padding:.62rem .75rem; font-size:.76rem; line-height:1.45; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-body { margin-top:.85rem; padding-top:.85rem; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-fields,
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-results { grid-template-columns:1fr; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-query { grid-template-columns:1fr; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-query button { width:100%; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-fields .is-wide { grid-column:auto; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-target { align-items:flex-start; flex-direction:column; gap:.2rem; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-actions { align-items:stretch; flex-direction:column; }
[data-brand="juris-ivy"] .sdb-rail .uk-eligibility-actions button { width:100%; }
@media (max-width:760px) {
  [data-brand="juris-ivy"] .uk-eligibility-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  [data-brand="juris-ivy"] .uk-eligibility-results { grid-template-columns:1fr; }
}
@media (max-width:420px) {
  [data-brand="juris-ivy"] .uk-eligibility-fields { grid-template-columns:1fr; }
  [data-brand="juris-ivy"] .uk-eligibility-fields .is-wide { grid-column:auto; }
}
[data-brand="juris-ivy"] .sdb-table{width:100%;border-collapse:collapse;font-size:.94rem}
[data-brand="juris-ivy"] .sdb-table td{padding:.52rem .2rem;border-bottom:1px dashed var(--line);vertical-align:top}
[data-brand="juris-ivy"] .sdb-table td:first-child{font-family:"Times New Roman","Songti SC",serif;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);width:32%;padding-top:.62rem}
[data-brand="juris-ivy"] .sdb-table b{color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-table small{color:var(--stone)}
/* JD 表格行(申请截止/学费国际生)没有"格角"概念,核对按钮改随值内联显示,不绝对定位 */
[data-brand="juris-ivy"] .sdb-table .sdb-verify-btn{position:static;display:inline-flex;margin-left:.5rem;padding:.16rem .5rem;vertical-align:middle}
[data-brand="juris-ivy"] .sdb-pending{border:1px dashed var(--brass);background:rgba(168,136,78,.07);border-radius:8px;padding:.8rem 1rem;font-size:.9rem;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-bars .sdb-brow{display:grid;grid-template-columns:140px 1fr 56px;gap:.9rem;align-items:center;font-size:.88rem;margin:.5rem 0}
[data-brand="juris-ivy"] .sdb-track{height:11px;background:rgba(168,136,78,.12);border:1px solid var(--line);border-radius:99px;overflow:hidden}
[data-brand="juris-ivy"] .sdb-fill{height:100%;background:linear-gradient(90deg,var(--oxblood),#8a2a33);border-radius:99px}
[data-brand="juris-ivy"] .sdb-fill.alt{background:linear-gradient(90deg,var(--brass),#c2a76b)}
[data-brand="juris-ivy"] .sdb-brow b{font-family:var(--ji-display);text-align:right;font-weight:600}
[data-brand="juris-ivy"] .sdb-note{font-size:.9rem;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-note b{color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-srcline{font-family:"Times New Roman","Songti SC",serif;font-size:.74rem;letter-spacing:.06em;color:var(--stone);border-top:1px solid var(--line);padding:1rem 0 .4rem}
/* 校页底部注意力层级(2026-07-11 Jayson 钉死,规则区 §7):
   主转化 CTA 带(预约 1v1 咨询=品牌主按钮 + AI 智能择校=描边次级)必须明显;
   report 报错入口=右下角小而精致的 ghost pill,视觉重量明显低于主转化。 */
[data-brand="juris-ivy"] .sdb-cta-consult{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin:2.4rem 0 .4rem}
[data-brand="juris-ivy"] .sdb-cta-consult .sdb-btn-ox{display:inline-block;width:auto;padding:.72rem 1.9rem}
[data-brand="juris-ivy"] .sdb-cta-consult .sdb-btn-ghost{display:inline-block;width:auto;margin-top:0;padding:.66rem 1.6rem}
[data-brand="juris-ivy"] .sdb-disclaimer{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;font-size:.82rem;color:var(--stone);line-height:1.7;padding:.8rem 0 0;border-top:1px solid var(--line);margin-top:1.4rem}
[data-brand="juris-ivy"] .sdb-issue-open{margin-left:auto;background:none;border:1px solid var(--line);border-radius:999px;padding:.26rem .85rem;font-size:.76rem;color:var(--stone);cursor:pointer;font-family:inherit;white-space:nowrap;transition:color .15s ease,border-color .15s ease}
[data-brand="juris-ivy"] .sdb-issue-open:hover{color:var(--oxblood);border-color:var(--oxblood)}
@media (max-width:560px){[data-brand="juris-ivy"] .sdb-issue-open{margin-left:0}}
[data-brand="juris-ivy"] .sdb-issue-modal{border:1px solid var(--line);border-radius:12px;padding:0;max-width:440px;width:92vw;box-shadow:var(--shadow);background:#fffdf8;color:var(--ink)}
[data-brand="juris-ivy"] .sdb-issue-modal::backdrop{background:rgba(19,17,13,.5)}
[data-brand="juris-ivy"] .sdb-issue-form{padding:1.5rem 1.6rem;display:flex;flex-direction:column;gap:.9rem}
[data-brand="juris-ivy"] .sdb-issue-form h3{margin:0;font-family:var(--ji-display);font-size:1.18rem;color:var(--ink)}
[data-brand="juris-ivy"] .sdb-issue-school{margin:0;font-size:.85rem;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-issue-form label{display:flex;flex-direction:column;gap:.32rem;font-size:.82rem;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-issue-form select,
[data-brand="juris-ivy"] .sdb-issue-form textarea,
[data-brand="juris-ivy"] .sdb-issue-form input[type=text]{border:1px solid var(--line);border-radius:6px;padding:.55rem .7rem;font:inherit;font-size:.9rem;color:var(--ink);background:var(--paper);box-sizing:border-box;width:100%}
[data-brand="juris-ivy"] .sdb-issue-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.2rem}
[data-brand="juris-ivy"] .sdb-issue-cancel{background:none;border:1px solid var(--line);border-radius:999px;padding:.5rem 1.1rem;font:inherit;font-size:.86rem;cursor:pointer;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-issue-status{font-size:.82rem;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-rail{position:sticky;top:1rem;display:grid;gap:1rem}
[data-brand="juris-ivy"] .sdb-railcard{border:1px solid var(--line);border-radius:10px;background:#fffdf8;padding:1.05rem 1.15rem}
[data-brand="juris-ivy"] .sdb-railcard h5{font-family:"Times New Roman","Songti SC",serif;letter-spacing:.16em;text-transform:uppercase;font-size:.7rem;color:var(--brass);margin:0 0 .55rem;font-weight:700}
[data-brand="juris-ivy"] .sdb-railcard .big{font-family:var(--ji-display);font-size:1.1rem;line-height:1.42;margin-bottom:.65rem}
[data-brand="juris-ivy"] .sdb-btn-ox{display:block;text-align:center;background:var(--oxblood);color:#f8f0df;border:0;border-radius:6px;padding:.68rem 1rem;font-size:.93rem;font-weight:700;cursor:pointer;box-shadow:0 3px 0 var(--oxblood-deep);text-decoration:none}
[data-brand="juris-ivy"] .sdb-btn-ghost{display:block;text-align:center;background:transparent;color:var(--oxblood);border:1px solid var(--oxblood);border-radius:6px;padding:.6rem 1rem;font-size:.9rem;font-weight:600;margin-top:.5rem;text-decoration:none}
[data-brand="juris-ivy"] .sdb-railcard .fine{font-size:.75rem;color:var(--stone);margin-top:.5rem;line-height:1.5}
[data-brand="juris-ivy"] .sdb-sim{display:flex;gap:.7rem;align-items:center;padding:.42rem 0;border-bottom:1px dashed var(--line);text-decoration:none;color:var(--ink);font-size:.86rem}
[data-brand="juris-ivy"] .sdb-sim:last-child{border-bottom:0}
[data-brand="juris-ivy"] .sdb-sim-ph{width:50px;height:38px;object-fit:cover;border-radius:4px;flex:none;background:linear-gradient(135deg,#eee5d5,#d9c7aa)}
[data-brand="juris-ivy"] .sdb-sim-ph.sdb-ph-mono span{font-size:1rem}
[data-brand="juris-ivy"] .sdb-sim b{margin-left:auto;font-family:"Times New Roman",serif;font-size:.72rem;color:var(--stone);font-weight:400}
/* 对比表 */
[data-brand="juris-ivy"] .sdb-cmp-table{margin:1.4rem 0;border:1px solid var(--line);border-radius:10px;overflow-x:auto;background:#fffdf8}
[data-brand="juris-ivy"] .sdb-cmp-table table{border-collapse:collapse;width:100%;min-width:640px;font-size:.9rem}
[data-brand="juris-ivy"] .sdb-cmp-table th,[data-brand="juris-ivy"] .sdb-cmp-table td{padding:.55rem .9rem;border-bottom:1px dashed var(--line);text-align:left}
[data-brand="juris-ivy"] .sdb-cmp-table th{font-family:var(--ji-display);font-size:.98rem}
[data-brand="juris-ivy"] .sdb-cmp-table td:first-child{font-family:"Times New Roman","Songti SC",serif;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);white-space:nowrap}
[data-brand="juris-ivy"] .sdb-cmpbar[hidden]{display:none}
/* P1-2(2026-07-12 手机端裁列):近三年趋势表 7 列在 390px 放不下,右侧最高优先的「1L人数/学费/年」
   被裁且无横滑提示。用经典纯 CSS 滚动阴影(Lea Verou 技法)给出可见横滑 affordance:内容右侧还有更多时,
   右缘浮现渐隐阴影;滑到末尾自动消失。cover 渐变色需与容器底色 #fffdf8 一致,把边缘阴影盖住。
   桌面端表格能放下、无溢出 → 不显示阴影,零副作用。 */
[data-brand="juris-ivy"] .table-scroll{
  overflow-x:auto;margin:1rem 0;border:1px solid var(--line);border-radius:8px;
  background:
    linear-gradient(to right, #fffdf8 30%, rgba(255,253,248,0)) left center / 28px 100% no-repeat,
    linear-gradient(to left, #fffdf8 30%, rgba(255,253,248,0)) right center / 28px 100% no-repeat,
    linear-gradient(to right, rgba(30,18,8,.16), rgba(30,18,8,0)) left center / 16px 100% no-repeat,
    linear-gradient(to left, rgba(30,18,8,.16), rgba(30,18,8,0)) right center / 16px 100% no-repeat;
  background-color:#fffdf8;
  background-attachment: local, local, scroll, scroll;
}
[data-brand="juris-ivy"] .table-scroll table{border-collapse:collapse;width:100%;min-width:560px;font-size:.9rem;font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .table-scroll th{font-family:"Times New Roman","Songti SC",serif;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);text-align:left;padding:.6rem .85rem;border-bottom:1px solid var(--line)}
[data-brand="juris-ivy"] .table-scroll td{padding:.5rem .85rem;border-bottom:1px dashed var(--line)}
[data-brand="juris-ivy"] .table-scroll tr:last-child td{border-bottom:0}
/* 2026-07-17 Jayson:洞察文章页表格重排——文章长表(如 T50 截止日历)要像刊物图表,
   不是裸数据格。刊头衬线标题、斑马纹、悬停行高亮、排名列铜色数字、校名链接氧血色。 */
[data-brand="juris-ivy"] .content-article{max-width:72ch;margin-inline:auto;gap:1.15rem}
[data-brand="juris-ivy"] .content-article p,
[data-brand="juris-ivy"] .content-article li{font-size:1.02rem;line-height:1.8;color:var(--ink)}
[data-brand="juris-ivy"] .content-article h2{font-family:var(--ji-display);font-weight:520;font-size:clamp(1.35rem,2.4vw,1.7rem);letter-spacing:.01em;margin:1.1rem 0 .2rem;color:var(--ink)}
[data-brand="juris-ivy"] .content-article a{color:var(--oxblood);text-underline-offset:.18em}
[data-brand="juris-ivy"] .content-article .table-scroll{margin:1.4rem 0;border:1px solid rgba(168,136,78,.32);border-radius:14px;box-shadow:0 16px 40px -34px rgba(30,22,16,.45)}
[data-brand="juris-ivy"] .content-article .table-scroll table{min-width:640px;font-size:.94rem}
[data-brand="juris-ivy"] .content-article .table-scroll th{font-family:var(--ji-display);font-size:.78rem;font-weight:600;letter-spacing:.14em;color:var(--oxblood);background:linear-gradient(180deg,rgba(245,236,216,.85),rgba(255,253,248,.6));border-bottom:1px solid rgba(168,136,78,.4);padding:.7rem .95rem}
[data-brand="juris-ivy"] .content-article .table-scroll td{padding:.62rem .95rem;border-bottom:1px solid rgba(126,105,79,.14);line-height:1.5}
[data-brand="juris-ivy"] .content-article .table-scroll tr:nth-child(even) td{background:rgba(245,236,216,.28)}
[data-brand="juris-ivy"] .content-article .table-scroll tr:hover td{background:rgba(168,136,78,.12)}
[data-brand="juris-ivy"] .content-article .table-scroll td:first-child{font-family:var(--ji-display);color:var(--brass);font-weight:600;white-space:nowrap}
[data-brand="juris-ivy"] .content-article .table-scroll td a{font-family:var(--ji-display);font-weight:520;text-decoration:none;color:var(--ink)}
[data-brand="juris-ivy"] .content-article .table-scroll td a:hover{color:var(--oxblood);text-decoration:underline;text-underline-offset:.18em}
[data-brand="juris-ivy"] .sdb-glinks{display:grid;gap:.6rem}
[data-brand="juris-ivy"] .sdb-glinks a{border:1px solid var(--line);border-left:3px solid var(--brass);background:#fffdf8;border-radius:6px;padding:.68rem 1rem;font-size:.93rem;color:var(--ink);display:flex;justify-content:space-between;gap:1rem;text-decoration:none;align-items:baseline}
[data-brand="juris-ivy"] .sdb-glinks a em{font-style:normal;color:var(--stone);font-family:"Times New Roman","Songti SC",serif;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
[data-brand="juris-ivy"] .sdb-glinks a:hover{border-left-color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-reading-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
[data-brand="juris-ivy"] .sdb-reading-card{position:relative;display:flex;min-height:11rem;flex-direction:column;gap:.55rem;padding:1rem 1.05rem;border:1px solid var(--line);border-top:3px solid var(--brass);border-radius:10px;background:linear-gradient(145deg,#fffdf8 0%,rgba(242,233,215,.58) 100%);color:var(--ink);text-decoration:none;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
[data-brand="juris-ivy"] .sdb-reading-card>span{font-family:"Times New Roman","Songti SC",serif;font-size:.65rem;letter-spacing:.12em;color:var(--brass);text-transform:uppercase}
[data-brand="juris-ivy"] .sdb-reading-card strong{font-family:var(--ji-display);font-size:1rem;line-height:1.55;font-weight:600}
[data-brand="juris-ivy"] .sdb-reading-card p{margin:0;color:var(--stone);font-size:.82rem;line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
[data-brand="juris-ivy"] .sdb-reading-card em{margin-top:auto;font-style:normal;color:var(--oxblood);font-family:"Times New Roman","Songti SC",serif;font-size:.72rem;letter-spacing:.08em}
[data-brand="juris-ivy"] .sdb-reading-card:hover{transform:translateY(-3px);border-color:rgba(122,31,42,.4);box-shadow:0 12px 26px rgba(46,31,16,.09)}
@media(max-width:700px){[data-brand="juris-ivy"] .sdb-reading-grid{grid-template-columns:1fr}[data-brand="juris-ivy"] .sdb-reading-card{min-height:0}}
/* ---- 定位分布图 ---- */
[data-brand="juris-ivy"] .sdb-fit-inputs{display:flex;gap:1.1rem;align-items:flex-end;flex-wrap:wrap;border:1px solid var(--line);background:#fffdf8;border-radius:10px;padding:1.1rem 1.3rem;margin:1.3rem 0}
[data-brand="juris-ivy"] .sdb-fit-inputs label{display:grid;gap:.3rem;font-family:"Times New Roman","Songti SC",serif;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-fit-inputs input{border:1px solid var(--line);border-radius:6px;padding:.55rem .8rem;font-size:1.05rem;width:130px;font-family:inherit;background:var(--paper);font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .sdb-fit-hint{font-size:.8rem;color:var(--stone)}
/* M 项修复:同上,#fit-summary 也带 hidden 属性,display:grid 同样会盖过它。 */
[data-brand="juris-ivy"] .sdb-fit-summary:not([hidden]){display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:0 0 1.2rem}
[data-brand="juris-ivy"] .sdb-fit-summary>div{background:#fffdf8;padding:.85rem 1.1rem}
[data-brand="juris-ivy"] .sdb-fit-summary b{display:block;font-family:var(--ji-display);font-size:1.6rem;line-height:1.1}
[data-brand="juris-ivy"] .sdb-fit-summary span{font-size:.78rem;color:var(--stone)}
@media(max-width:820px){[data-brand="juris-ivy"] .sdb-fit-summary{grid-template-columns:repeat(2,1fr)}}
[data-brand="juris-ivy"] .fit-group{margin:1.6rem 0}
[data-brand="juris-ivy"] .fit-group h3{font-family:var(--ji-display);font-size:1.15rem;border-bottom:1px solid var(--line);padding-bottom:.45rem;display:flex;align-items:center;gap:.55rem}
[data-brand="juris-ivy"] .fit-group h3 i{width:10px;height:10px;border-radius:50%;display:inline-block}
[data-brand="juris-ivy"] .fit-group h3 small{font-family:"Times New Roman","Songti SC",serif;font-size:.72rem;letter-spacing:.08em;color:var(--stone);text-transform:uppercase;font-weight:400}
[data-brand="juris-ivy"] .fit-row{display:grid;grid-template-columns:230px 1fr 64px;gap:1.1rem;align-items:center;padding:.55rem 0;border-bottom:1px dashed var(--line)}
@media(max-width:820px){[data-brand="juris-ivy"] .fit-row{grid-template-columns:1fr;gap:.4rem}}
[data-brand="juris-ivy"] .fit-name a{color:var(--ink);text-decoration:none;font-weight:600}
[data-brand="juris-ivy"] .fit-name a:hover{color:var(--oxblood)}
[data-brand="juris-ivy"] .fit-name small{display:block;color:var(--stone);font-size:.76rem}
[data-brand="juris-ivy"] .fit-track{position:relative;height:14px;background:rgba(168,136,78,.1);border:1px solid var(--line);border-radius:99px}
[data-brand="juris-ivy"] .fit-range{position:absolute;top:0;bottom:0;background:rgba(110,29,36,.22);border-radius:99px}
[data-brand="juris-ivy"] .fit-med{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--oxblood);opacity:.75}
[data-brand="juris-ivy"] .fit-you{position:absolute;top:50%;width:12px;height:12px;border-radius:50%;background:#c2a76b;border:2px solid #241d15;transform:translate(-50%,-50%);box-shadow:0 1px 4px rgba(30,20,8,.4)}
[data-brand="juris-ivy"] .fit-band small{display:block;font-size:.72rem;color:var(--stone);margin-top:.25rem}
[data-brand="juris-ivy"] .fit-chip{justify-self:end;border:1.5px solid;border-radius:999px;font-size:.78rem;padding:.16rem .7rem;font-weight:600;white-space:nowrap}
[data-brand="juris-ivy"] .sdb-prog{border:1px solid var(--line);border-radius:10px;background:#fffdf8;padding:1.05rem 1.2rem;margin-bottom:.9rem}
/* fix-round3(2026-07-12 Jayson 截图):项目卡标题+徽章改行内流式——长项目名不再独占多行把徽章
   挤成第 3 行(右侧大空);徽章紧跟名字尾部自然续排,整个头部 2 行内收口 */
[data-brand="juris-ivy"] .sdb-prog .ph2{display:block;line-height:1.7}
[data-brand="juris-ivy"] .sdb-prog h4{font-family:var(--ji-display);font-size:1.08rem;margin:0;display:inline;margin-right:.55rem;line-height:1.45}
[data-brand="juris-ivy"] .sdb-prog .badge{font-family:"Times New Roman","Songti SC",serif;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;background:rgba(168,136,78,.14);border:1px solid var(--line);border-radius:4px;padding:.12rem .5rem;color:var(--stone);display:inline-block;vertical-align:1px;margin:0 .3rem .1rem 0;white-space:nowrap}
[data-brand="juris-ivy"] .sdb-prog .facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem 1.1rem;margin-top:.75rem}
@media(max-width:560px){[data-brand="juris-ivy"] .sdb-prog .facts{grid-template-columns:minmax(0,1fr)}}
/* 长学费/截止/项目说明占满内容行：信息可以横向扫读，不再被塞进半张卡的高窄柱。 */
[data-brand="juris-ivy"] .sdb-prog .f.f-wide{grid-column:1/-1;max-width:72ch}
[data-brand="juris-ivy"] .sdb-prog .f .k{font-family:"Times New Roman","Songti SC",serif;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone)}
/* keep-all:金额/单位 token(A$54,100／学年)不词内断;overflow-wrap 兜底;line-height 略放宽多行也整齐 */
[data-brand="juris-ivy"] .sdb-prog .f .v{font-family:var(--ji-display);font-size:.98rem;color:var(--oxblood);word-break:keep-all;overflow-wrap:break-word;line-height:1.4}
/* LLM 项目卡来源入口：标题旁只保留一个精致箭头；字段专属来源仅在没有项目页时出现。 */
[data-brand="juris-ivy"] .sdb-prog .f .sdb-verify-btn{font-size:.58rem;padding:.14rem .4rem}
[data-brand="juris-ivy"] .sdb-prog .sdb-prog-source{margin-left:.15rem;vertical-align:1px;width:1.35rem;height:1.35rem;background:transparent;border-color:rgba(123,31,24,.22)}
[data-brand="juris-ivy"] .sdb-prog .sdb-prog-source:hover{background:rgba(123,31,24,.09)}
[data-brand="juris-ivy"] .sdb-points{margin:.4rem 0 0;padding-left:1.2rem}
[data-brand="juris-ivy"] .sdb-points li{margin:.3rem 0;font-size:.95rem}
[data-brand="juris-ivy"] .sdb-lead{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-left:auto}
[data-brand="juris-ivy"] .sdb-lead input{border:1px solid rgba(240,228,200,.5);background:rgba(251,248,241,.12);border-radius:6px;padding:.6rem .9rem;font-size:.92rem;color:#f6efe0;font-family:inherit;width:170px}
[data-brand="juris-ivy"] .sdb-lead input::placeholder{color:rgba(240,230,208,.65)}
[data-brand="juris-ivy"] .sdb-lead small{flex-basis:100%;color:#cbb891;font-size:.72rem}
[data-brand="juris-ivy"] .sdb-lead-msg{color:#f0e4c8;font-size:.85rem;font-weight:600}
/* ---- AI 择校定位报告 · Beta(2026-07-10 新增)---- */
[data-brand="juris-ivy"] .sdb-report{margin-top:1.4rem;border-top:1px solid var(--line);padding-top:.4rem}
[data-brand="juris-ivy"] .sdb-report-form{border:1px solid var(--line);background:#fffdf8;border-radius:10px;padding:1.3rem clamp(1.1rem,3vw,1.7rem);margin-top:1rem}
[data-brand="juris-ivy"] .sdb-report-track{margin-bottom:1rem}
[data-brand="juris-ivy"] .sdb-report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem 1.2rem;margin-bottom:1.1rem}
@media(max-width:900px){[data-brand="juris-ivy"] .sdb-report-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){[data-brand="juris-ivy"] .sdb-report-grid{grid-template-columns:1fr}}
[data-brand="juris-ivy"] .sdb-report-field{display:grid;gap:.35rem;font-family:"Times New Roman","Songti SC",serif;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-report-field input,
[data-brand="juris-ivy"] .sdb-report-field select{border:1px solid var(--line);border-radius:6px;padding:.55rem .7rem;font-size:.95rem;font-family:inherit;background:var(--paper);width:100%;box-sizing:border-box}
[data-brand="juris-ivy"] .sdb-report-lang>span{display:flex;gap:.4rem}
[data-brand="juris-ivy"] .sdb-report-lang select{flex:0 0 92px}
[data-brand="juris-ivy"] .sdb-report-regions{margin-bottom:1rem}
[data-brand="juris-ivy"] .sdb-report-goals{display:grid;gap:.4rem;font-family:"Times New Roman","Songti SC",serif;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);margin-bottom:1.1rem}
[data-brand="juris-ivy"] .sdb-report-goals textarea{border:1px solid var(--line);border-radius:8px;padding:.7rem .85rem;font-size:.94rem;font-family:inherit;background:var(--paper);resize:vertical;width:100%;box-sizing:border-box}
/* M 项修复(2026-07-10):.sdb-report-status 的 display:flex 是作者样式,权重高于浏览器
   UA 样式表的 [hidden]{display:none},导致 fit 页"生成我的定位报告"按钮初始加载时
   hidden 属性被无视——转圈动画(见下一条 ::before)在没请求时就孤零零露出来。
   加 :not([hidden]) 让 hidden 属性重新生效。 */
[data-brand="juris-ivy"] .sdb-report-status:not([hidden]){margin-top:.9rem;font-size:.9rem;color:var(--stone);display:flex;align-items:center;gap:.55rem}
[data-brand="juris-ivy"] .sdb-report-status:not(.sdb-report-status-error)::before{content:"";width:14px;height:14px;border-radius:50%;border:2px solid rgba(168,136,78,.3);border-top-color:var(--oxblood);animation:sdb-report-spin .8s linear infinite;flex:none}
[data-brand="juris-ivy"] .sdb-report-status-error{color:var(--oxblood);font-weight:600}
@keyframes sdb-report-spin{to{transform:rotate(360deg)}}
[data-brand="juris-ivy"] .sdb-report-result{margin-top:1.6rem}
[data-brand="juris-ivy"] .sdb-report-summary{font-family:var(--ji-display);font-size:1.12rem;line-height:1.55;color:var(--ink);border-left:3px solid var(--brass);padding:.2rem 0 .2rem 1rem;margin:0 0 1.3rem}
[data-brand="juris-ivy"] .sdb-report-tiers{display:grid;gap:1.2rem}
[data-brand="juris-ivy"] .sdb-report-tier h3{font-family:var(--ji-display);font-size:1.1rem;border-bottom:1px solid var(--line);padding-bottom:.4rem;margin:0 0 .8rem;display:flex;align-items:center;gap:.55rem}
[data-brand="juris-ivy"] .sdb-report-tier h3 i{width:10px;height:10px;border-radius:50%;display:inline-block}
[data-brand="juris-ivy"] .sdb-report-tier h3 small{font-family:"Times New Roman","Songti SC",serif;font-size:.7rem;letter-spacing:.08em;color:var(--stone);text-transform:uppercase;font-weight:400}
[data-brand="juris-ivy"] .sdb-report-schools{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}
[data-brand="juris-ivy"] .sdb-report-school{border:1px solid var(--line);border-radius:8px;padding:.85rem .95rem;background:#fffdf8}
[data-brand="juris-ivy"] .sdb-report-school a{font-weight:700;color:var(--ink);text-decoration:none;display:block;margin-bottom:.3rem}
[data-brand="juris-ivy"] .sdb-report-school a:hover{color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-report-school p{margin:0;font-size:.86rem;color:var(--stone);line-height:1.55}
[data-brand="juris-ivy"] .sdb-report-strategy,[data-brand="juris-ivy"] .sdb-report-timeline{margin-top:1.5rem}
[data-brand="juris-ivy"] .sdb-report-strategy h3,[data-brand="juris-ivy"] .sdb-report-timeline h3{font-family:var(--ji-display);font-size:1.05rem;margin:0 0 .6rem}
[data-brand="juris-ivy"] .sdb-report-strategy ul{margin:0;padding-left:1.2rem}
[data-brand="juris-ivy"] .sdb-report-strategy li{margin:.35rem 0;font-size:.94rem}
[data-brand="juris-ivy"] .sdb-report-timeline ol{margin:0;padding-left:1.2rem}
[data-brand="juris-ivy"] .sdb-report-timeline li{margin:.4rem 0;font-size:.94rem}
[data-brand="juris-ivy"] .sdb-report-timeline b{color:var(--oxblood);margin-right:.5rem}
[data-brand="juris-ivy"] .sdb-report-disclaimer{margin-top:1.4rem;font-size:.78rem;color:var(--stone);font-style:italic}
[data-brand="juris-ivy"] .sdb-viewband{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:1.4rem}
[data-brand="juris-ivy"] .sdb-viewswitch{display:inline-flex;border:1.5px solid var(--oxblood);border-radius:10px;overflow:hidden}
[data-brand="juris-ivy"] .sdb-viewswitch button{background:transparent;border:0;padding:.7rem 1.6rem;cursor:pointer;font-family:inherit;text-align:left;display:grid;gap:.05rem}
[data-brand="juris-ivy"] .sdb-viewswitch button b{font-family:var(--ji-display);font-size:1.05rem;color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-viewswitch button small{font-family:"Times New Roman","Songti SC",serif;font-size:.68rem;letter-spacing:.08em;color:var(--stone);text-transform:uppercase}
[data-brand="juris-ivy"] .sdb-viewswitch button.on{background:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-viewswitch button.on b{color:#f8f0e1}
[data-brand="juris-ivy"] .sdb-viewswitch button.on small{color:#d9c5a5}
[data-brand="juris-ivy"] .sdb-cmp-hint{font-size:.85rem;color:var(--stone);border:1px dashed var(--line-2, var(--line));border-radius:8px;padding:.5rem .9rem;background:rgba(168,136,78,.06)}
/* 学位切换负责筛选与对比口径，不再把同一卡片的另一条项目轨道彻底藏掉。
   当前轨道用轻底色提示，副轨仍保持可读，用户不用来回切换才看见另一学位的数据。 */
[data-brand="juris-ivy"] .sdb-grid.view-jd .sdb-track-jd,
[data-brand="juris-ivy"] .sdb-grid.view-llm .sdb-track-llm{background:rgba(168,136,78,.1)}
[data-brand="juris-ivy"] .sdb-grid.view-jd .sdb-track-llm,
[data-brand="juris-ivy"] .sdb-grid.view-llm .sdb-track-jd{opacity:.76}
[data-brand="juris-ivy"] .sdb-cmp{background:var(--oxblood);color:#f7eedd;border-color:var(--oxblood);font-weight:600}
[data-brand="juris-ivy"] .sdb-cmp.on{background:#3d6b4f;border-color:#3d6b4f}
[data-brand="juris-ivy"] .sdb-honors{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.55rem}
[data-brand="juris-ivy"] .sdb-honors span{background:rgba(194,167,107,.22);border:1px solid rgba(240,228,200,.45);border-radius:999px;font-size:.75rem;padding:.16rem .7rem;color:#f4ead2}
[data-brand="juris-ivy"] .sdb-honor-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem}
[data-brand="juris-ivy"] .sdb-honor{border:1px solid var(--brass);background:rgba(168,136,78,.1);border-radius:999px;font-size:.8rem;padding:.2rem .75rem;color:var(--ink)}
[data-brand="juris-ivy"] .sdb-fgroup-degree{border-color:var(--oxblood);border-width:1.5px}
[data-brand="juris-ivy"] .sdb-fgroup-degree>span{color:var(--oxblood);font-weight:700}
[data-brand="juris-ivy"] .sdb-cmp-hint{margin-top:.55rem}
/* 首页·选校库入口带(融合轮) */
[data-brand="juris-ivy"] .home-db-band{display:flex;gap:2rem;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-left:3px solid var(--brass);border-radius:12px;background:#fffdf8;padding:1.6rem clamp(1.2rem,3vw,2.2rem);margin-top:2rem}
[data-brand="juris-ivy"] .home-db-band h2{font-family:"Fraunces","Huiwen-Mincho","Noto Serif SC",Georgia,serif;font-size:clamp(1.25rem,2.4vw,1.6rem);margin:.3rem 0 .4rem}
[data-brand="juris-ivy"] .home-db-band p{margin:0;color:var(--stone);max-width:44em;font-size:.97rem}
[data-brand="juris-ivy"] .home-db-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-left:auto}
[data-brand="juris-ivy"] .school-data-link{margin-left:.9rem}
[data-brand="juris-ivy"] .sdb-wxqr{display:block;margin:.2rem auto .5rem;border:1px solid var(--line);border-radius:8px}
[data-brand="juris-ivy"] .sdb-social-mini{display:flex;gap:.5rem;justify-content:center;margin-top:.6rem}
[data-brand="juris-ivy"] .sdb-social-mini img{border:1px solid var(--line);border-radius:6px}
[data-brand="juris-ivy"] .sdb-wxqr{display:block;margin:.2rem auto .5rem;border:1px solid var(--line);border-radius:8px}
[data-brand="juris-ivy"] .sdb-social-mini{display:flex;gap:.5rem;justify-content:center;margin-top:.6rem}
[data-brand="juris-ivy"] .sdb-social-mini img{border:1px solid var(--line);border-radius:6px}
[data-brand="juris-ivy"] .wechat-mobile-help{display:none}
[data-brand="juris-ivy"] .wechat-copy-button{border:1px solid var(--oxblood);border-radius:999px;background:transparent;color:var(--oxblood);font:inherit;font-size:.78rem;font-weight:700;padding:.35rem .7rem;white-space:nowrap;cursor:pointer}
@media (max-width:768px){
  [data-brand="juris-ivy"] .wechat-mobile-help{display:flex;align-items:center;justify-content:center;gap:.55rem;flex-wrap:wrap;margin-top:.65rem;font-size:.78rem;line-height:1.5;color:var(--stone)}
}
/* 全球法学院交互地图 */
[data-brand="juris-ivy"] .map-explorer{--map-scale:1;--map-inverse-scale:1;border:1px solid rgba(168,136,78,.42);border-radius:14px;background:#101d2c;box-shadow:0 22px 54px -34px rgba(17,27,41,.75);overflow:hidden}
[data-brand="juris-ivy"] .map-toolbar{min-height:3.4rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.62rem .72rem;background:rgba(9,20,33,.98);border-bottom:1px solid rgba(221,196,139,.18)}
[data-brand="juris-ivy"] .mchips{display:flex;gap:.35rem;align-items:center;min-width:0;overflow-x:auto;scrollbar-width:none}
[data-brand="juris-ivy"] .mchips::-webkit-scrollbar{display:none}
[data-brand="juris-ivy"] .mchip{flex:none;border:1px solid transparent;background:transparent;border-radius:999px;padding:.38rem .78rem;color:rgba(244,236,217,.62);font:inherit;font-size:.78rem;letter-spacing:.04em;cursor:pointer;transition:color .18s ease,background .18s ease,border-color .18s ease}
[data-brand="juris-ivy"] .mchip:hover{color:#f4ecd9;border-color:rgba(221,196,139,.28)}
[data-brand="juris-ivy"] .mchip.active{color:#f5ead1;background:rgba(168,136,78,.18);border-color:rgba(221,196,139,.48)}
[data-brand="juris-ivy"] .map-controls{flex:none;display:flex;align-items:center;border:1px solid rgba(221,196,139,.25);border-radius:8px;overflow:hidden}
[data-brand="juris-ivy"] .map-controls button{height:2rem;min-width:2rem;border:0;border-right:1px solid rgba(221,196,139,.2);background:rgba(255,255,255,.025);color:#efe2c5;font:inherit;font-size:1rem;line-height:1;cursor:pointer}
[data-brand="juris-ivy"] .map-controls button:last-child{border-right:0}
[data-brand="juris-ivy"] .map-controls .map-reset{min-width:auto;padding:0 .66rem;font-size:.72rem;letter-spacing:.08em}
[data-brand="juris-ivy"] .mwrap{position:relative;background:radial-gradient(circle at 32% 38%,#436f86 0,#214b64 54%,#102b40 100%);overflow:hidden}
[data-brand="juris-ivy"] .mstage{position:relative;width:100%;aspect-ratio:2/1;overflow:hidden;contain:paint;isolation:isolate;clip-path:inset(0);cursor:grab;touch-action:none;user-select:none;outline:none}
[data-brand="juris-ivy"] .map-explorer.is-dragging .mstage{cursor:grabbing}
[data-brand="juris-ivy"] .mstage:focus-visible{box-shadow:inset 0 0 0 2px #d8bd7b}
[data-brand="juris-ivy"] .mzoom{position:absolute;inset:0;transform-origin:0 0}
[data-brand="juris-ivy"] .map-explorer.is-animating .mzoom{transition:transform .68s cubic-bezier(.22,.72,.24,1)}
[data-brand="juris-ivy"] .mbase{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;transition:opacity .42s ease}
[data-brand="juris-ivy"] .mbase-fallback{opacity:.72;filter:saturate(.72) brightness(.72)}
[data-brand="juris-ivy"] .mbase-relief{opacity:0;filter:none}
[data-brand="juris-ivy"] .mbase-relief.is-ready{opacity:1}
[data-brand="juris-ivy"] .mstage.is-relief-ready .mbase-fallback{display:none;opacity:0}
[data-brand="juris-ivy"] .map-vignette{display:none}
[data-brand="juris-ivy"] .mstage::after{content:"";position:absolute;z-index:20;inset:0;pointer-events:none;box-shadow:inset 0 0 86px rgba(5,22,34,.42);background:linear-gradient(180deg,rgba(3,18,29,.02),rgba(3,18,29,.2))}
[data-brand="juris-ivy"] .mdot{position:absolute;z-index:2;margin-left:var(--map-offset-x,0);margin-top:var(--map-offset-y,0);transform:translate(-50%,-50%) scale(var(--map-inverse-scale));transform-origin:center;text-decoration:none;outline:none}
[data-brand="juris-ivy"] .mdot::before{content:"";position:absolute;inset:-10px;border-radius:50%}
[data-brand="juris-ivy"] .mdot.is-clustered{visibility:hidden;opacity:0;pointer-events:none}
[data-brand="juris-ivy"] .mdot i{position:relative;display:block;width:8px;height:8px;border-radius:50%;background:var(--marker);border:1px solid rgba(255,249,235,.9);box-shadow:0 0 9px color-mix(in srgb,var(--marker) 72%,transparent),0 0 2px #fff;transition:transform .18s ease,box-shadow .18s ease}
[data-brand="juris-ivy"] .mdot i::after{content:"";position:absolute;inset:-6px;border:1px solid color-mix(in srgb,var(--marker) 72%,transparent);border-radius:50%;animation:mapSignal 3.8s ease-out infinite;animation-delay:var(--pulse-delay)}
@keyframes mapSignal{0%{opacity:.5;transform:scale(.45)}62%,100%{opacity:0;transform:scale(1.65)}}
[data-brand="juris-ivy"] .mdot-card{position:absolute;left:50%;bottom:calc(100% + .58rem);transform:translateX(-50%);display:grid;grid-template-columns:auto;align-items:center;min-width:max-content;max-width:12rem;padding:.38rem .55rem;border:1px solid rgba(221,196,139,.3);border-radius:6px;background:rgba(8,18,30,.93);box-shadow:0 10px 28px rgba(0,0,0,.25);color:#f5ecd9;opacity:0;pointer-events:none;text-align:center;transition:opacity .16s ease}
[data-brand="juris-ivy"] .mdot-card-copy{display:block}
[data-brand="juris-ivy"] .mdot-card b{display:block;font-family:var(--ji-display);font-size:.76rem;font-weight:500;letter-spacing:.04em;white-space:nowrap}
[data-brand="juris-ivy"] .mdot-card small{display:block;margin-top:.08rem;color:rgba(245,236,217,.56);font-size:.61rem;letter-spacing:.04em}
[data-brand="juris-ivy"] .mdot-card img{display:none;width:2.8rem;height:2rem;border:1px solid rgba(245,236,217,.18);border-radius:4px;object-fit:cover}
[data-brand="juris-ivy"] .mdot-thumb-fallback{display:none;width:2.8rem;height:2rem;place-items:center;border:1px solid rgba(245,236,217,.18);border-radius:4px;background:rgba(245,236,217,.08);color:rgba(245,236,217,.68);font-family:var(--ji-label);font-size:.58rem;letter-spacing:.08em}
[data-brand="juris-ivy"] .mdot:hover,.mdot:focus-visible,[data-brand="juris-ivy"] .mdot.is-active{z-index:12}
[data-brand="juris-ivy"] .mdot:hover i,[data-brand="juris-ivy"] .mdot:focus-visible i,[data-brand="juris-ivy"] .mdot.is-active i{transform:scale(1.45);box-shadow:0 0 18px var(--marker),0 0 3px #fff}
[data-brand="juris-ivy"] .mdot:hover .mdot-card,[data-brand="juris-ivy"] .mdot:focus-visible .mdot-card,[data-brand="juris-ivy"] .mdot.is-active .mdot-card{grid-template-columns:auto minmax(0,1fr);gap:.42rem;padding:.34rem .44rem;opacity:1;text-align:left}
[data-brand="juris-ivy"] .mdot:hover .mdot-card img.is-requested,[data-brand="juris-ivy"] .mdot:focus-visible .mdot-card img.is-requested,[data-brand="juris-ivy"] .mdot.is-active .mdot-card img.is-requested{display:block;opacity:0}
[data-brand="juris-ivy"] .mdot:hover .mdot-card img.is-ready,[data-brand="juris-ivy"] .mdot:focus-visible .mdot-card img.is-ready,[data-brand="juris-ivy"] .mdot.is-active .mdot-card img.is-ready{opacity:1}
[data-brand="juris-ivy"] .mdot:hover .mdot-thumb-fallback,[data-brand="juris-ivy"] .mdot:focus-visible .mdot-thumb-fallback,[data-brand="juris-ivy"] .mdot.is-active .mdot-thumb-fallback{display:grid}
[data-brand="juris-ivy"] .mstage[data-zoom="region"] .mdot[data-label-level="1"] .mdot-card,
[data-brand="juris-ivy"] .mstage[data-zoom="region"] .mdot[data-label-level="2"] .mdot-card,
[data-brand="juris-ivy"] .mstage[data-zoom="close"] .mdot[data-label-level="1"] .mdot-card,
[data-brand="juris-ivy"] .mstage[data-zoom="close"] .mdot[data-label-level="2"] .mdot-card{opacity:.96}
[data-brand="juris-ivy"] .mstage[data-zoom="detail"] .mdot.is-auto-label .mdot-card{grid-template-columns:auto minmax(0,1fr);gap:.36rem;padding:.24rem .38rem;border-color:rgba(221,196,139,.22);background:rgba(8,18,30,.9);box-shadow:0 6px 16px rgba(0,0,0,.22);opacity:.96;text-align:left}
[data-brand="juris-ivy"] .mstage[data-zoom="detail"] .mdot.is-auto-label .mdot-card img.is-requested{display:block;opacity:0}
[data-brand="juris-ivy"] .mstage[data-zoom="detail"] .mdot.is-auto-label .mdot-card img.is-ready{opacity:1}
[data-brand="juris-ivy"] .mstage[data-zoom="detail"] .mdot.is-auto-label .mdot-thumb-fallback{display:grid}
[data-brand="juris-ivy"] .mstage[data-zoom="detail"] .mdot-card b{font-size:.68rem;letter-spacing:.02em}
[data-brand="juris-ivy"] .mstage[data-zoom="detail"] .mdot-card small{display:none}
[data-brand="juris-ivy"] .mstage[data-zoom="detail"] .mdot[data-label-anchor="east"] .mdot-card{left:calc(100% + .58rem);top:50%;bottom:auto;transform:translateY(-50%)}
[data-brand="juris-ivy"] .mstage[data-zoom="detail"] .mdot[data-label-anchor="south"] .mdot-card{top:calc(100% + .58rem);bottom:auto}
[data-brand="juris-ivy"] .mstage[data-zoom="detail"] .mdot[data-label-anchor="west"] .mdot-card{right:calc(100% + .58rem);left:auto;top:50%;bottom:auto;transform:translateY(-50%)}
[data-brand="juris-ivy"] .map-cluster-layer{position:absolute;inset:0;pointer-events:none}
[data-brand="juris-ivy"] .map-cluster{position:absolute;z-index:8;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(255,249,235,.86);border-radius:50%;background:#b99143;color:#08121e;box-shadow:0 0 0 5px rgba(185,145,67,.16),0 8px 18px rgba(0,0,0,.34);font:700 .72rem/1 "Times New Roman","Songti SC",serif;cursor:pointer;pointer-events:auto;transform:translate(-50%,-50%) scale(var(--map-inverse-scale));transform-origin:center}
[data-brand="juris-ivy"] .map-cluster:hover,[data-brand="juris-ivy"] .map-cluster:focus-visible{background:#edd99f;box-shadow:0 0 0 5px rgba(237,217,159,.22),0 8px 20px rgba(0,0,0,.4);outline:2px solid #fff4d6;outline-offset:3px}
[data-brand="juris-ivy"] .map-cluster-panel{position:absolute;z-index:30;left:.75rem;bottom:.75rem;display:grid;gap:.58rem;width:min(24rem,calc(100% - 1.5rem));max-height:calc(100% - 1.5rem);padding:.8rem;border:1px solid rgba(221,196,139,.56);border-radius:10px;background:rgba(8,18,30,.98);box-shadow:0 18px 44px rgba(0,0,0,.46);color:#f5ecd9;user-select:text}
[data-brand="juris-ivy"] .map-cluster-panel[hidden]{display:none}
[data-brand="juris-ivy"] .map-cluster-panel-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.55rem}
[data-brand="juris-ivy"] .map-cluster-panel-head h2{margin:0;font-family:var(--ji-display);font-size:.96rem;font-weight:500;letter-spacing:.04em}
[data-brand="juris-ivy"] .map-cluster-panel-head span{color:#d8bd7b;font-size:.72rem}
[data-brand="juris-ivy"] .map-cluster-close{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid rgba(221,196,139,.28);border-radius:50%;background:transparent;color:#f5ecd9;font:400 1.15rem/1 inherit;cursor:pointer}
[data-brand="juris-ivy"] .map-cluster-list{display:grid;gap:.32rem;max-height:min(15rem,40vh);margin:0;padding:0;overflow:auto;list-style:none;overscroll-behavior:contain}
[data-brand="juris-ivy"] .map-cluster-link{display:grid;align-content:center;min-height:44px;padding:.48rem .62rem;border:1px solid rgba(221,196,139,.18);border-radius:7px;background:rgba(255,255,255,.035);color:#f5ecd9;font-family:var(--ji-display);font-size:.82rem;line-height:1.35;text-decoration:none}
[data-brand="juris-ivy"] .map-cluster-link small{display:block;margin-top:.1rem;color:rgba(245,236,217,.56);font-family:"Times New Roman","Songti SC",serif;font-size:.66rem}
[data-brand="juris-ivy"] .map-cluster-link:hover,[data-brand="juris-ivy"] .map-cluster-link:focus-visible{border-color:#d8bd7b;background:rgba(216,189,123,.14);outline:2px solid #f5ecd9;outline-offset:1px}
[data-brand="juris-ivy"] .map-cluster-zoom{justify-self:start;min-height:36px;padding:.38rem .8rem;border:1px solid rgba(221,196,139,.48);border-radius:999px;background:rgba(168,136,78,.16);color:#f5ecd9;font:inherit;font-size:.72rem;cursor:pointer}
[data-brand="juris-ivy"] .map-cluster-close:focus-visible,[data-brand="juris-ivy"] .map-cluster-zoom:focus-visible{outline:2px solid #f5ecd9;outline-offset:2px}
[data-brand="juris-ivy"] .map-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.68rem .85rem;border-top:1px solid rgba(221,196,139,.16);background:#0b1726;color:rgba(245,236,217,.5);font-size:.7rem;letter-spacing:.04em}
[data-brand="juris-ivy"] .map-meta [data-map-status]{color:#d8bd7b}
[data-brand="juris-ivy"] .sdb-map-page{padding-bottom:2rem}
[data-brand="juris-ivy"] .sdb-map-page-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin:.4rem 0 1.2rem}
[data-brand="juris-ivy"] .sdb-map-page-head h1{margin:.25rem 0 0;font-family:var(--ji-display);font-size:clamp(2rem,4.6vw,3.6rem);font-weight:520;line-height:1.12}
[data-brand="juris-ivy"] .sdb-map-page-head>p{max-width:27rem;margin:0;color:var(--stone);line-height:1.75}
[data-brand="juris-ivy"] .map-source-note{margin:.75rem 0 0;color:var(--stone);font-size:.72rem;line-height:1.6}
[data-brand="juris-ivy"] .map-source-note a{color:inherit}
@media(max-width:700px){
  [data-brand="juris-ivy"] .sdb-map-page-head{align-items:flex-start;flex-direction:column;gap:.65rem}
  [data-brand="juris-ivy"] .map-toolbar{align-items:stretch;gap:.45rem;padding:.5rem}
  [data-brand="juris-ivy"] .mchips{order:1}
  [data-brand="juris-ivy"] .map-controls{order:2}
  [data-brand="juris-ivy"] .map-controls button{height:2.5rem;min-width:2.5rem}
  [data-brand="juris-ivy"] .mchip{min-height:2.5rem}
  [data-brand="juris-ivy"] .mstage{height:auto;aspect-ratio:2/1}
  [data-brand="juris-ivy"] .map-cluster{width:40px;height:40px;font-size:.78rem}
  [data-brand="juris-ivy"] .map-cluster-panel{left:.5rem;bottom:.5rem;width:calc(100% - 1rem);max-height:calc(100% - 1rem);padding:.62rem}
  [data-brand="juris-ivy"] .map-cluster-list{max-height:7.5rem}
  [data-brand="juris-ivy"] .map-meta{align-items:flex-start;flex-direction:column;gap:.18rem}
  [data-brand="juris-ivy"] .mstage[data-zoom="region"] .mdot[data-label-level="2"] .mdot-card{opacity:0}
}
@media(prefers-reduced-motion:reduce){
  [data-brand="juris-ivy"] .sdb-map-beacon-signal::after{animation:none;opacity:.35}
  [data-brand="juris-ivy"] .mdot i::after{animation:none}
  [data-brand="juris-ivy"] .map-explorer.is-animating .mzoom{transition:none}
}
/* Juris Ivy AI Q&A */
/* fix-audit(0709 F-site4952): removed ~140 lines of confirmed-dead .ask-main/.ask-shell/
   .ask-intro*/.ask-meter*/.ask-panel/.ask-toolbar/.ask-clear*/.ask-thread(+.is-chatting)
   rules — grepped juris-ivy/ask/index.html (static markup) + src/ask.js (dynamic
   className/classList) + built dist/ output for these class names: zero references
   anywhere. The live page rebuilt this section under different class names
   (.ask-app-main/.ask-thread in ask-app.css uses a different, non-conflicting rule set,
   .ask-colbar, etc.) after ask-app.css superseded this layout. See
   tests/site-css-ask-block-audit.test.mjs for the reachability self-check. */

[data-brand="juris-ivy"] .ask-welcome {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.7rem;
  width: min(30rem, 100%);
  margin: 0 auto;
  padding: 1.2rem 0.5rem;
}

[data-brand="juris-ivy"] .ask-welcome-seal {
  display: grid;
  place-items: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  border: 1px solid var(--brass);
  background: radial-gradient(circle at 50% 38%, rgba(168, 136, 78, 0.16), rgba(110, 29, 36, 0.05));
  box-shadow: 0 0 0 5px rgba(168, 136, 78, 0.07);
  margin-bottom: 0.15rem;
}

/* fix-audit(0709 F-site4952): removed dead .ask-welcome-seal img/.ask-welcome-lead/
   .ask-welcome-sub and .ask-suggest* (5 selectors) — all fully shadowed (welcome-seal
   img/lead/sub: every property re-declared by ask-app.css's own same-selector rules,
   confirmed no orphan properties) or fully unreachable (.ask-suggest*: zero references
   in markup/JS/dist). NOTE: kept .ask-welcome (padding orphan not covered by ask-app.css)
   and .ask-welcome-seal (margin-bottom orphan) and .ask-bubble (max-width orphan — see
   below) since those specific properties are still the only source and deleting the
   whole rule would be a real, measurable visual regression. */

[data-brand="juris-ivy"] .ask-bubble {
  max-width: min(45rem, 92%);
  border: 1px solid var(--line);
  padding: 0.95rem 1rem;
  background: var(--paper);
  color: var(--ink);
  line-height: 1.75;
}

[data-brand="juris-ivy"] .ask-bubble p {
  margin: 0;
}

[data-brand="juris-ivy"] .ask-bubble p + p {
  margin-top: 0.72rem;
}

/* fix-audit(0709 F-site4952): removed dead .ask-bubble-user/.ask-bubble-assistant —
   every property fully re-declared by ask-app.css's own rules for these selectors
   (background/color/border-color: ask-app.css's base .ask-bubble sets border:0, so the
   leftover border-color here had nothing to color; align-self: both bubbles already get
   an explicit width from ask-app.css, which overrides flex "stretch" sizing regardless of
   align-self, so the leftover align-self was a no-op). */

[data-brand="juris-ivy"] .ask-thinking {
  margin: 0 0 0.85rem;
  border: 1px solid rgba(168, 136, 78, 0.34);
  background: rgba(255, 253, 248, 0.82);
}

[data-brand="juris-ivy"] .ask-thinking summary {
  min-height: 2.25rem;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.42rem 0.7rem;
  color: var(--stone);
  cursor: pointer;
  font: 700 0.88rem/1.3 var(--ji-body);
  list-style-position: inside;
}

[data-brand="juris-ivy"] .ask-thinking-body {
  max-height: 12rem;
  overflow-y: auto;
  border-top: 1px dashed var(--line);
  padding: 0.65rem 0.75rem 0.75rem;
  color: #62584a;
  font-size: 0.9rem;
  line-height: 1.7;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

/* ── 流式问答（qa-speed-0712）─────────────────────────────────────────────
   生成中的临时形态：思考区默认展开、淡色小字，正文一开始吐字就自动收起，
   全程不喧宾夺主（思考是过程，答案才是主角）。done 事件到达后由
   updateAssistantBubble() 整体重渲染成定稿形态，这些 -live/-streaming 类随之消失。 */
[data-brand="juris-ivy"] .ask-stream-status {
  margin-left: auto;
  color: var(--stone);
  font: 400 0.76rem/1.3 var(--ji-body);
  opacity: 0.72;
}

[data-brand="juris-ivy"] .ask-thinking-live {
  border-color: rgba(168, 136, 78, 0.5);
}

[data-brand="juris-ivy"] .ask-thinking-live[open] .ask-thinking-body {
  /* 思考流入时压得更矮：它是"正在想"的提示，不是要用户读完的正文 */
  max-height: 8rem;
  color: #7b7063;
  font-size: 0.85rem;
}

[data-brand="juris-ivy"] .ask-answer-streaming {
  /* 流式增量是纯文本追加（半截 Markdown 不能解析），靠 pre-wrap 保住换行 */
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

/* 光标：正在打字的实时感，纯 CSS，不占 JS 一行 */
[data-brand="juris-ivy"] .ask-answer-streaming::after,
[data-brand="juris-ivy"] .ask-thinking-live[open] .ask-thinking-body::after {
  content: "▌";
  margin-left: 0.1em;
  color: var(--gold, #a8884e);
  animation: ji-caret 1s steps(2) infinite;
}

@keyframes ji-caret {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-brand="juris-ivy"] .ask-answer-streaming::after,
  [data-brand="juris-ivy"] .ask-thinking-live[open] .ask-thinking-body::after {
    animation: none;
  }
}

[data-brand="juris-ivy"] .ask-bubble sup {
  margin-left: 0.12rem;
  font-size: 0.72rem;
}

[data-brand="juris-ivy"] .ask-bubble sup a,
[data-brand="juris-ivy"] .ask-sources a {
  color: var(--oxblood);
}
/* 命中校引流卡片 (2026-07-08: 把推荐的学校做成可点大卡,导流本站校页) */
[data-brand="juris-ivy"] .ask-schools { margin:1rem 0 .4rem; }
[data-brand="juris-ivy"] .ask-schools-h { font-size:.82rem; color:var(--stone); margin:0 0 .5rem; letter-spacing:.02em; }
[data-brand="juris-ivy"] .ask-schools-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:.6rem; }
[data-brand="juris-ivy"] .ask-school-card { display:flex; align-items:center; gap:.7rem; border:1px solid var(--line); border-radius:10px; background:#fffdf8; padding:.55rem .65rem; text-decoration:none; transition:border-color .15s, transform .15s, box-shadow .15s; }
[data-brand="juris-ivy"] .ask-school-card:hover { border-color:var(--oxblood); transform:translateY(-1px); box-shadow:0 6px 16px -10px rgba(110,29,36,.4); }
[data-brand="juris-ivy"] .ask-school-thumb { flex:0 0 44px; width:44px; height:44px; border-radius:8px; background-size:cover; background-position:center; background-color:var(--oxblood); display:flex; align-items:center; justify-content:center; overflow:hidden; }
[data-brand="juris-ivy"] .ask-school-thumb i { color:#f6efe2; font-family:'Fraunces',serif; font-size:.9rem; font-style:normal; }
[data-brand="juris-ivy"] .ask-school-meta { display:flex; flex-direction:column; min-width:0; }
[data-brand="juris-ivy"] .ask-school-meta b { font-size:.9rem; color:var(--ink); line-height:1.25; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
[data-brand="juris-ivy"] .ask-school-meta em { font-style:normal; font-size:.76rem; color:var(--oxblood); margin-top:.1rem; }
/* 官方来源折叠(默认收起,让本站引流卡片更突出) */
/* fix-audit(0709 F-site4952): removed the dead .ask-sources-wrap box-model rule (margin-
   top/border-top/padding-top fully re-declared by ask-app.css's own .ask-sources-wrap) and
   the dead standalone .ask-sources rule below (margin/padding/border-top fully covered by
   ask-app.css; the orphan color/font-size never surface — every text node inside the live
   <ol class="ask-sources"> markup is wrapped in its own explicitly-styled <span>/<small>,
   so nothing inherits the parent's leftover color/font-size). KEPT the four rules below
   (summary/::-webkit-details-marker/::before/[open]::before) — ask-app.css never redefines
   this disclosure triangle at all, so removing them would leave the native browser
   <summary> marker showing/double-marker with no custom ▸/▾ glyph; also KEPT the
   .ask-sources-wrap .ask-sources compound rule (margin-top:.4rem) — its two-class selector
   is MORE specific than ask-app.css's plain .ask-sources, so it genuinely wins in the
   cascade today regardless of file load order, not merely a leftover. */
[data-brand="juris-ivy"] .ask-sources-wrap summary { cursor:pointer; font-size:.8rem; color:var(--stone); list-style:none; user-select:none; }
[data-brand="juris-ivy"] .ask-sources-wrap summary::-webkit-details-marker { display:none; }
[data-brand="juris-ivy"] .ask-sources-wrap summary::before { content:'▸ '; color:var(--brass); }
[data-brand="juris-ivy"] .ask-sources-wrap[open] summary::before { content:'▾ '; }
[data-brand="juris-ivy"] .ask-sources-wrap .ask-sources { margin-top:.4rem; }

[data-brand="juris-ivy"] .ask-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 0.95rem;
}

[data-brand="juris-ivy"] .ask-cta-row .button {
  padding: 0.5rem 0.72rem;
  font-size: 0.88rem;
}

/* fix-audit(0709 F-site4952): removed dead .ask-samples(+button+hover) — zero references,
   the live suggestion chips are .ask-welcome-chips/.ask-chip in ask-app.css instead — and
   dead .ask-form(+textarea+:focus+.button)/.ask-status: every property fully re-declared
   by ask-app.css's own rules for the same selectors (border-top absorbed into ask-app.css's
   border shorthand; .ask-form textarea's leftover border-radius had no visible border/
   background/shadow to round; .ask-form .button never matches — the live submit button is
   class="ask-send", not class="button", inside .ask-form). */

[data-brand="juris-ivy"] .ask-credit-dialog {
  width: min(24rem, calc(100vw - 2rem));
  border: 0;
  padding: 0;
  background: transparent;
}

[data-brand="juris-ivy"] .ask-credit-dialog::backdrop {
  background: rgba(27, 23, 20, 0.42);
}

[data-brand="juris-ivy"] .ask-credit-card {
  position: relative;
  display: grid;
  gap: 0.9rem;
  border: 1px solid var(--line);
  border-top: 3px solid var(--brass);
  background: var(--paper);
  padding: 1.25rem;
  box-shadow: 0 18px 55px rgba(27, 23, 20, 0.24);
}

[data-brand="juris-ivy"] .ask-credit-card img {
  width: 11rem;
  height: 11rem;
  margin: 0 auto;
  border: 1px solid var(--line);
  background: #fff;
}

[data-brand="juris-ivy"] .ask-credit-card h2 {
  margin: 0;
  color: var(--oxblood);
  font-size: 1.25rem;
  line-height: 1.35;
  text-align: center;
}

[data-brand="juris-ivy"] .ask-dialog-close {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
}

[data-brand="juris-ivy"] .ask-redeem-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.6rem;
}

[data-brand="juris-ivy"] .ask-redeem-row input {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 0.65rem 0.7rem;
  font: 0.96rem var(--ji-body);
}

[data-brand="juris-ivy"] .ask-credit-card p {
  min-height: 1.3rem;
  margin: 0;
  color: var(--stone);
  text-align: center;
}

/* fix-audit(0709 F-site4952): removed the dead @media(max-width:860px) block entirely
   (.ask-shell/.ask-intro/.ask-panel mobile overrides — bases already confirmed dead
   above) and the dead .ask-main mobile rule below. Kept .ask-bubble (part of the
   still-live max-width orphan — see the desktop rule above) and the combined
   .ask-form,.ask-redeem-row / .ask-form .button,.ask-redeem-row .button rules below:
   .ask-form's own half is dead but .ask-redeem-row's half is genuinely live (the
   redeem-code widget's input row and its class="button" submit button, confirmed in
   juris-ivy/ask/index.html), so the shared selector can't be deleted without breaking
   the live half. */
@media (max-width: 560px) {
  [data-brand="juris-ivy"] .ask-bubble {
    max-width: 100%;
  }

  [data-brand="juris-ivy"] .ask-form,
  [data-brand="juris-ivy"] .ask-redeem-row {
    grid-template-columns: 1fr;
  }

  [data-brand="juris-ivy"] .ask-form .button,
  [data-brand="juris-ivy"] .ask-redeem-row .button {
    width: 100%;
  }
}
[data-brand="juris-ivy"] .sdb-cprofile{border:1px solid var(--line);border-radius:10px;background:rgba(168,136,78,.05);padding:.9rem 1.1rem;margin:.9rem 0}
[data-brand="juris-ivy"] .sdb-cprofile .facts{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
@media(max-width:820px){[data-brand="juris-ivy"] .sdb-cprofile .facts{grid-template-columns:repeat(2,1fr)}}
/* == sdb display fixes 0709 == */
/* 校页展示层修复(2026-07-09):学年小标签/灰色附注/长文本整行note/目录空态/metro禁用/target list。
   本区块只追加,不改上方已有规则(移动端规则另一工人维护)。 */
[data-brand="juris-ivy"] .sdb-year-tag{display:inline-block;font-size:.72rem;line-height:1;color:var(--stone);border:1px solid var(--line);border-radius:999px;padding:.18rem .5rem;margin-left:.3rem;vertical-align:middle;white-space:nowrap;background:rgba(168,136,78,.06)}
[data-brand="juris-ivy"] .sdb-datanote{font-size:.78rem;color:var(--stone);line-height:1.65;margin-top:.45rem;font-weight:400}
[data-brand="juris-ivy"] .sdb-prog .sdb-prog-note{grid-column:1/-1;font-size:.82rem;color:var(--ink,#2b2622);line-height:1.7;border-top:1px dashed var(--line);margin-top:.55rem;padding-top:.55rem}
[data-brand="juris-ivy"] .sdb-prog .sdb-prog-note b{color:var(--oxblood);font-weight:600}
[data-brand="juris-ivy"] .sdb-empty{border:1px dashed var(--brass);background:rgba(168,136,78,.07);border-radius:8px;padding:1.4rem 1.2rem;margin:.6rem 0 1rem;text-align:center;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-empty p{margin:0 0 .7rem}
[data-brand="juris-ivy"] .sdb-empty-clear{border:1px solid var(--oxblood);color:var(--oxblood);background:#fffdf8;border-radius:6px;padding:.45rem 1.1rem;font-size:.88rem;cursor:pointer}
[data-brand="juris-ivy"] .sdb-empty-clear:hover{background:var(--oxblood);color:#f6efe2}
[data-brand="juris-ivy"] .sdb-fgroup.disabled{opacity:.45}
[data-brand="juris-ivy"] .sdb-fgroup.disabled .sdb-chip{cursor:not-allowed;pointer-events:none}
[data-brand="juris-ivy"] .sdb-metro-hint{font-size:.76rem;color:var(--stone);margin-left:.35rem}
/* == 英国 Target List 板块排版对齐全站体系(2026-07-11 Jayson 验收更正,规则区 §7)==
   正文/meta/表格一律走 sdb 衬线体系(Zodiak/朱雀仿宋/Noto Serif),th 走 Times New Roman 小字
   大写标签惯例,数字 tabular(继承 .sdb-page main),发丝边框;禁止体系外字体。 */
[data-brand="juris-ivy"] .sdb-tl-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;font-size:.88rem;color:var(--stone);margin:.4rem 0 .6rem;font-family:"Zodiak","Noto Serif SC",Georgia,"Songti SC",serif}
[data-brand="juris-ivy"] .sdb-tl-meta b{color:var(--oxblood);font-weight:600}
[data-brand="juris-ivy"] .sdb-tl-summary{font-family:"Zodiak","Noto Serif SC",Georgia,"Songti SC",serif;font-size:.95rem;line-height:1.85;color:var(--ink);max-width:72ch;margin:.5rem 0 .9rem}
[data-brand="juris-ivy"] .sdb-tl-table th{white-space:nowrap;font-family:"Times New Roman","Songti SC",serif;font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);text-align:left;padding:.5rem .2rem;border-bottom:1px solid var(--line)}
/* 档位名=中文长短语,盖掉 .sdb-table td:first-child 的英文小字大写标签样式(letter-spacing 伤中文) */
[data-brand="juris-ivy"] .sdb-tl-table td:first-child{font-family:"Zodiak","Noto Serif SC",Georgia,"Songti SC",serif;font-size:.9rem;letter-spacing:0;text-transform:none;color:var(--ink);width:52%;padding-top:.52rem}
[data-brand="juris-ivy"] .sdb-tl-links a{color:var(--oxblood);font-weight:600;text-decoration:underline;text-underline-offset:2px}
[data-brand="juris-ivy"] .sdb-tl-links a:hover{opacity:.8}
[data-brand="juris-ivy"] .sdb-consult{margin:1.2rem 0}
[data-brand="juris-ivy"] .sdb-consult a{color:var(--oxblood);font-weight:600;text-decoration:underline}

/* == class profile redesign 0709(班级画像重做:tile/中国学生高亮/语言chips)== */
[data-brand="juris-ivy"] .sdb-cprofile{padding:1rem 1.2rem 1.05rem}
[data-brand="juris-ivy"] .sdb-cprofile .cp-h{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;margin:0 0 .65rem}
[data-brand="juris-ivy"] .sdb-cprofile .cp-h h4{margin:0;font-family:var(--ji-display);font-size:1rem}
[data-brand="juris-ivy"] .sdb-cprofile .cp-h h4 small{font-family:"Times New Roman","Songti SC",serif;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);font-weight:400;margin-left:.35rem}
[data-brand="juris-ivy"] .sdb-cprofile .cp-h .sdb-provenance{margin-left:auto}
[data-brand="juris-ivy"] .cp-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,215px));gap:.55rem;margin:.2rem 0 .3rem}
[data-brand="juris-ivy"] .cp-tiles .t{border:1px solid var(--line);border-radius:8px;background:#fffdf8;padding:.55rem .7rem .5rem;text-align:center}
[data-brand="juris-ivy"] .cp-tiles .t .v{font-family:var(--ji-display);font-size:1.22rem;line-height:1.25;color:var(--oxblood)}
[data-brand="juris-ivy"] .cp-tiles .t .k{font-family:"Times New Roman","Songti SC",serif;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin-top:.2rem}
[data-brand="juris-ivy"] .cp-line{font-size:.86rem;line-height:1.7;margin:.3rem 0}
[data-brand="juris-ivy"] .cp-line b{color:var(--oxblood);font-weight:600}
[data-brand="juris-ivy"] .cp-china{border-left:3px solid var(--oxblood);background:rgba(168,136,78,.08);padding:.5rem .8rem;margin:.55rem 0;font-size:.87rem;line-height:1.7}
[data-brand="juris-ivy"] .cp-china b{color:var(--oxblood)}
[data-brand="juris-ivy"] .cp-lang{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.55rem}
[data-brand="juris-ivy"] .cp-lang-k{font-family:"Times New Roman","Songti SC",serif;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);margin-right:.2rem}
[data-brand="juris-ivy"] .cp-lang .chip{border:1px solid var(--line);border-radius:999px;padding:.16rem .7rem;font-size:.8rem;background:#fffdf8}
[data-brand="juris-ivy"] .cp-lang .chip b{font-weight:600;color:var(--oxblood);margin-right:.3rem}
@media(max-width:820px){[data-brand="juris-ivy"] .cp-tiles{grid-template-columns:repeat(2,1fr)}}

/* == campus media gallery 0709(校园掠影:3列网格+视频格,规则 docs/school-page-media-rules.md)== */
[data-brand="juris-ivy"] .sdb-media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;align-items:start}
[data-brand="juris-ivy"] .sdb-media-grid-n1{grid-template-columns:minmax(0,42rem);justify-content:center}
[data-brand="juris-ivy"] .sdb-media-grid-n2,[data-brand="juris-ivy"] .sdb-media-grid-n4{grid-template-columns:repeat(2,minmax(0,1fr))}
[data-brand="juris-ivy"] .sdb-media-cell{margin:0}
[data-brand="juris-ivy"] .sdb-media-cell img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block;background:radial-gradient(circle at 35% 30%,rgba(255,253,248,.88),transparent 34%),linear-gradient(135deg,#eee5d5,#d9c7aa)}
[data-brand="juris-ivy"] .sdb-media-cell figcaption{font-size:.74rem;color:var(--stone);margin-top:.32rem;line-height:1.5}
[data-brand="juris-ivy"] .sdb-media-cell figcaption em{display:block;font-style:normal;font-family:"Times New Roman","Songti SC",serif;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
[data-brand="juris-ivy"] .sdb-media-video{grid-column:span 2}
[data-brand="juris-ivy"] .sdb-media-video .vwrap{position:relative;aspect-ratio:16/9;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#000}
[data-brand="juris-ivy"] .sdb-media-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(max-width:820px){[data-brand="juris-ivy"] .sdb-media-grid{grid-template-columns:repeat(2,1fr)}[data-brand="juris-ivy"] .sdb-media-grid-n1{grid-template-columns:minmax(0,1fr);justify-content:stretch}[data-brand="juris-ivy"] .sdb-media-video{grid-column:span 2}}

/* == sdb 数据区字体统一 0709(Jayson:字体难看要统一) ==
   体系:正文/说明/表格/chips 一律衬线(Zodiak/朱雀仿宋/Noto Serif),数字保留 Fraunces,小标签保留 Times New Roman 小字。 */
[data-brand="juris-ivy"] .sdb-cprofile .cp-line,
[data-brand="juris-ivy"] .sdb-cprofile .cp-china,
[data-brand="juris-ivy"] .cp-lang .chip,
[data-brand="juris-ivy"] .sdb-datanote,
[data-brand="juris-ivy"] .sdb-prog-note,
[data-brand="juris-ivy"] .sdb-note,
[data-brand="juris-ivy"] .sdb-table td,
[data-brand="juris-ivy"] .sdb-sec table td,
[data-brand="juris-ivy"] .sdb-media-cell figcaption{font-family:"Zodiak","Noto Serif SC",Georgia,"Songti SC",serif}
[data-brand="juris-ivy"] .cp-lang .chip{font-size:.78rem}
[data-brand="juris-ivy"] .sdb-stale-tag{background:rgba(122,60,30,.1);color:#7a3c1e;border-color:rgba(122,60,30,.3)}

/* == 洞察分类章片 0710(成功案例/学校指南/文章 合并入洞察后的卡面分类)== */
[data-brand="juris-ivy"] .board-cat{display:inline-block;font-family:"Times New Roman","Songti SC",serif;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--oxblood);border:1px solid rgba(122,31,42,.35);border-radius:4px;padding:.1rem .5rem;margin-bottom:.5rem}

/* ============================================================
   INSIGHTS 洞察 (.hub-*) — juris-ivy scoped · 2026-07-11 设计返工
   (Jayson 驳回旧版"完全没有排版",重做到金杜标杆水平)
   手法来源 docs/kwm-design-study-0707.md + concepts/kwm-reference/
   (只学手法不抄代码):
   · 三种时间尺度:藏青日报编辑室 → 米黄周刊编辑页 → 古铜榜单资料台
   · 衬线大写宽字距标题 + 上下细线(刻石感);金只用在眉标/链接/按钮
     —— 亮金 #a8884e(藏青底上)/古铜金 #7e694f(象牙底上,金杜主金)
   · 统一时序:hover .35s ease-in-out / 文字变色 .15s / 入场 .75s ease-out 错峰
   · hover 词汇:箭头右滑(::after)、下划线 scaleX 浮现、金按钮翻底、卡片浮起+金发丝线
   · v4 软化:色带大圆角 + 卡 14px + 胶囊按钮(Jayson 嫌纯直角太刚)
   页面结构由 hubShell()/buildInsightsHub()(build-site.mjs)+ buildRankings() 产出。
   ============================================================ */
[data-brand="juris-ivy"]{
  --hub-navy:#0f2742;
  --hub-navy-2:#0a1c31;
  --hub-navy-3:#081527;
  --hub-gold:#a8884e;
  --hub-bronze:#7e694f;
  --hub-ivory:#f4eedf;
  --hub-stone-desk:#ebe2d0;
  --hub-line-ondark:rgba(244,238,223,.22);
  --hub-line-gold:rgba(126,105,79,.3);
  --hub-hairline:rgba(126,105,79,.16);
  --hub-t:.35s ease-in-out;
  --hub-t-text:.15s ease;
  --hub-r-band:clamp(22px,3.5vw,42px);
  --hub-r-card:14px;
  --hub-shadow:0 28px 64px -32px rgba(8,21,39,.5);
  --hub-shadow-soft:0 18px 44px -26px rgba(8,21,39,.28);
}

/* ---- 词汇:容器 / 眉标 / 章节标题 / 导语 ---- */
[data-brand="juris-ivy"] .hub-wrap{width:min(1280px,calc(100% - clamp(3rem,12vw,9rem)));margin:0 auto}
[data-brand="juris-ivy"] .hub-eyebrow{display:block;font-family:var(--ji-display);font-size:.72rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--hub-bronze);margin:0 0 .8rem}
[data-brand="juris-ivy"][lang^="zh"] .hub-eyebrow{letter-spacing:.42em}
[data-brand="juris-ivy"] .hub-eyebrow-ondark{color:var(--hub-gold)}
[data-brand="juris-ivy"] .hub-sec-title{font-family:var(--ji-display);font-weight:480;font-size:clamp(1.5rem,2.8vw,2.1rem);letter-spacing:.14em;text-transform:uppercase;line-height:1.32;margin:0;text-wrap:balance}
[data-brand="juris-ivy"][lang^="zh"] .hub-sec-title{letter-spacing:.2em;text-indent:.2em}
[data-brand="juris-ivy"] .hub-sec-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.2rem;margin:0 0 clamp(2rem,4.5vw,3.2rem)}
[data-brand="juris-ivy"] .hub-sec-head .hub-eyebrow{display:flex;align-items:center;gap:1.1rem;margin-bottom:.9rem}
[data-brand="juris-ivy"] .hub-sec-head .hub-eyebrow::before,
[data-brand="juris-ivy"] .hub-sec-head .hub-eyebrow::after{content:"";width:clamp(42px,8vw,92px);height:1px;background:var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-section-lede{margin:1rem 0 0;color:var(--stone);font-size:.95rem;line-height:1.7;max-width:62ch;text-wrap:pretty}
[data-brand="juris-ivy"] .hub-lede-ondark{color:rgba(244,238,223,.8)}
[data-brand="juris-ivy"] .hub-section-index{display:block;font-family:var(--ji-display);font-size:clamp(2.7rem,5vw,4.8rem);font-weight:400;line-height:.9;letter-spacing:.04em;color:rgba(126,105,79,.45);font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .hub-section-index-ondark{color:rgba(168,136,78,.72)}
[data-brand="juris-ivy"] .hub-stage-heading{display:flex;flex-direction:column}

/* JS 只在 IntersectionObserver 可用且用户允许动效时加 motion-ready；默认内容始终可见。 */
[data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage] [data-stage-index],
[data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage] [data-stage-heading],
[data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage] [data-stage-content]{transition:opacity .48s ease,transform .58s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}
[data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage]:not(.is-in-view) [data-stage-index],
[data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage]:not(.is-in-view) [data-stage-heading],
[data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage]:not(.is-in-view) [data-stage-content]{opacity:0;transform:translateY(18px)}
[data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage] [data-stage-heading]{transition-delay:.08s}
[data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage] [data-stage-content]{transition-delay:.16s}
[data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage] [data-stage-photo]{transition:transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:.22s}
[data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage]:not(.is-in-view) [data-stage-photo]{transform:translateY(10px)}

/* ---- 入场编排(金杜 carouse 词汇:上浮+淡入,错峰) ---- */
@keyframes hubRise{0%{opacity:0;transform:translateY(26px)}100%{opacity:1;transform:none}}
[data-brand="juris-ivy"] .hub-rise{animation:hubRise .75s ease-out both}
[data-brand="juris-ivy"] .hub-hero-inner>.hub-rise:nth-child(1){animation-delay:.08s}
[data-brand="juris-ivy"] .hub-hero-inner>.hub-rise:nth-child(2){animation-delay:.22s}
[data-brand="juris-ivy"] .hub-hero-inner>.hub-rise:nth-child(3){animation-delay:.38s}
[data-brand="juris-ivy"] .hub-hero-inner>.hub-rise:nth-child(4){animation-delay:.55s}
@media (prefers-reduced-motion:reduce){[data-brand="juris-ivy"] .hub-rise{animation:none}}

/* ---- 实景大图 hero 带(2026-07-11 视觉 v2:Jayson"深蓝不好,找更高级的"——
   换成法学院实景大图轮播 + 深色渐变蒙版,象牙/金前景不变。深色纯底只作图片
   加载失败时的兜底色,且刻意用 --hub-navy-3 而非 --hub-navy,不构成"大面积纯色底")。 ---- */
[data-brand="juris-ivy"] .hub-hero{position:relative;overflow:hidden;background:var(--hub-navy-3);color:var(--hub-ivory);text-align:center;border-radius:0 0 var(--hub-r-band) var(--hub-r-band);box-shadow:var(--hub-shadow-soft)}
[data-brand="juris-ivy"] .hub-hero-bg{position:absolute;inset:0;overflow:hidden}
[data-brand="juris-ivy"] .hub-hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%;opacity:0;transform:scale(1.04);transition:opacity 1.6s ease,transform 9s linear;filter:saturate(.92) brightness(.97)}
[data-brand="juris-ivy"] .hub-hero-photo.is-active{opacity:1;transform:scale(1.1)}
/* 深墨/藏青渐变蒙版(60-75% 不透明度):保证象牙字与金标在任意照片上都可读 */
[data-brand="juris-ivy"] .hub-hero-veil{position:absolute;inset:0;background:linear-gradient(168deg,rgba(8,21,39,.78) 0%,rgba(10,28,49,.68) 46%,rgba(8,21,39,.82) 100%);pointer-events:none}
[data-brand="juris-ivy"] .hub-hero-credit{position:absolute;right:clamp(1rem,3vw,1.8rem);bottom:clamp(.85rem,2vw,1.3rem);margin:0;font-family:var(--ji-display);font-size:.62rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(244,238,223,.55);opacity:0;transition:opacity 1.1s ease}
[data-brand="juris-ivy"] .hub-hero-credit.is-active{opacity:1}
[data-brand="juris-ivy"] .hub-grain{position:absolute;inset:0;width:100%;height:100%;opacity:.15;mix-blend-mode:overlay;pointer-events:none}
[data-brand="juris-ivy"] .hub-hero-inner{position:relative;max-width:880px;margin:0 auto;padding:clamp(3.6rem,8vw,6rem) clamp(1.4rem,4vw,3rem) clamp(3rem,6.5vw,4.6rem);display:flex;flex-direction:column;align-items:center;gap:1.35rem}
@media (prefers-reduced-motion:reduce){
  [data-brand="juris-ivy"] .hub-hero-photo{transition:opacity .01ms linear;transform:none}
  [data-brand="juris-ivy"] .hub-hero-photo.is-active{transform:none}
  [data-brand="juris-ivy"] .hub-hero-credit{transition:none}
}
[data-brand="juris-ivy"] .hub-hero-eyebrow{margin:0;font-family:var(--ji-display);font-size:.72rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--hub-gold)}
[data-brand="juris-ivy"][lang^="zh"] .hub-hero-eyebrow{letter-spacing:.34em}
[data-brand="juris-ivy"] .hub-hero-title{display:flex;flex-direction:column;align-items:center;gap:1.05rem;margin:0;font-family:var(--ji-display);font-weight:480;font-size:clamp(2.3rem,5.6vw,3.7rem);letter-spacing:.18em;text-transform:uppercase;line-height:1.12;color:var(--hub-ivory)}
[data-brand="juris-ivy"][lang^="zh"] .hub-hero-title{letter-spacing:.3em;text-indent:.3em}
[data-brand="juris-ivy"] .hub-hero-title::before,
[data-brand="juris-ivy"] .hub-hero-title::after{content:"";width:min(300px,58%);height:1px;background:var(--hub-line-ondark);text-indent:0}
[data-brand="juris-ivy"] .hub-hero-lede{margin:0;color:rgba(244,238,223,.82);font-size:clamp(.95rem,1.4vw,1.06rem);line-height:1.75;max-width:56ch;text-wrap:pretty}

/* hero 三入口:按更新频率建立注意力顺序，不再是三条同权重文字锚点。 */
[data-brand="juris-ivy"] .hub-toc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;width:min(760px,100%);margin:.5rem 0 0;padding:0;border:0}
[data-brand="juris-ivy"] .hub-toc a{position:relative;display:flex;align-items:center;gap:.75rem;min-width:0;color:var(--hub-ivory);text-decoration:none;text-align:left;padding:.75rem .9rem;border:1px solid rgba(244,238,223,.22);border-radius:12px;background:rgba(8,21,39,.26);backdrop-filter:blur(8px);transition:background var(--hub-t),border-color var(--hub-t),transform var(--hub-t)}
[data-brand="juris-ivy"] .hub-toc a::before{content:none}
[data-brand="juris-ivy"] .hub-toc a::after{content:"";position:absolute;left:.9rem;right:.9rem;bottom:.55rem;height:1px;background:var(--hub-gold);transform:scaleX(0);transform-origin:left;transition:transform var(--hub-t)}
[data-brand="juris-ivy"] .hub-toc a:hover,[data-brand="juris-ivy"] .hub-toc a:focus-visible{background:rgba(8,21,39,.5);border-color:rgba(168,136,78,.62);transform:translateY(-2px);text-decoration:none}
[data-brand="juris-ivy"] .hub-toc a:hover::after,[data-brand="juris-ivy"] .hub-toc a:focus-visible::after{transform:scaleX(1)}
[data-brand="juris-ivy"] .hub-toc a i{font-style:normal;font-family:var(--ji-display);font-size:1.05rem;letter-spacing:.05em;color:var(--hub-gold)}
[data-brand="juris-ivy"] .hub-toc a span{display:flex;flex-direction:column;gap:.12rem;min-width:0}
[data-brand="juris-ivy"] .hub-toc a b{font-family:var(--ji-display);font-size:.72rem;font-weight:600;line-height:1.35;letter-spacing:.12em;text-transform:uppercase}
[data-brand="juris-ivy"] .hub-toc a small{font-size:.61rem;letter-spacing:.08em;color:rgba(244,238,223,.58)}

/* ---- Section I · Ranking Hub(象牙底) ---- */
[data-brand="juris-ivy"] .hub-rankings{margin:0;padding:clamp(3.2rem,7vw,5rem) 0 clamp(2.2rem,4.5vw,3.4rem);border:0}
[data-brand="juris-ivy"] .hub-rank-group{margin:0 0 clamp(2.2rem,4.5vw,3.2rem)}
/* 律所榜区(浅色差):Vault/AmLaw/Chambers 独立成组,底色比象牙略深一阶,
   与法学院榜单区分出"另一条河"的视觉分区(Jayson v2:律所排名单列一组) */
[data-brand="juris-ivy"] .hub-rank-group[data-cat="law_firm"]{background:var(--stone-wash,#efe7d6);border-radius:var(--hub-r-band);padding:clamp(1.6rem,3.5vw,2.4rem) clamp(1.2rem,3vw,2rem);box-shadow:inset 0 0 0 1px var(--hub-hairline)}

/* 组头横带:藏青大区块 + 两位数编号 + 衬线大写组名 + 金色计数(分组仪式感) */
[data-brand="juris-ivy"] .hub-group-head{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.1rem;background:linear-gradient(120deg,var(--hub-navy) 0%,var(--hub-navy-2) 100%);color:var(--hub-ivory);border-radius:var(--hub-r-card);padding:1rem clamp(1.1rem,2.5vw,1.7rem);margin:0 0 1.15rem;box-shadow:var(--hub-shadow-soft)}
[data-brand="juris-ivy"] .hub-group-no{font-family:var(--ji-display);font-size:1.35rem;font-weight:400;color:var(--hub-gold);line-height:1;padding-right:1.05rem;border-right:1px solid var(--hub-line-ondark);font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .hub-rank-group-label{margin:0;font-family:var(--ji-display);font-weight:480;font-size:clamp(1rem,1.8vw,1.28rem);letter-spacing:.14em;text-transform:uppercase;color:var(--hub-ivory)}
[data-brand="juris-ivy"][lang^="zh"] .hub-rank-group-label{letter-spacing:.24em}
[data-brand="juris-ivy"] .hub-group-count{margin-left:auto;font-size:.66rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--hub-gold);white-space:nowrap}

/* 榜单卡:纸面 + 古铜金发丝线;hover 浮起 + 发丝线加深(.35s 统一手感) */
[data-brand="juris-ivy"] .hub-rank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.1rem}
[data-brand="juris-ivy"] .hub-rank-card{display:flex;flex-direction:column;min-width:0;background:var(--paper);border:1px solid var(--hub-hairline);border-radius:var(--hub-r-card);padding:1.35rem 1.4rem 1.15rem;box-shadow:0 1px 0 rgba(126,105,79,.05);transition:transform var(--hub-t),box-shadow var(--hub-t),border-color var(--hub-t)}
[data-brand="juris-ivy"] .hub-rank-card:hover{transform:translateY(-4px);border-color:var(--hub-line-gold);box-shadow:var(--hub-shadow-soft)}
[data-brand="juris-ivy"] .hub-rank-card-pending{background:transparent}
[data-brand="juris-ivy"] .hub-rank-kicker{font-family:var(--ji-display);font-size:.64rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--hub-bronze)}
[data-brand="juris-ivy"] .hub-rank-card h3{font-family:var(--ji-display);font-weight:500;font-size:1.06rem;margin:.45rem 0 .85rem;line-height:1.35;padding-bottom:.7rem;border-bottom:1px solid var(--hub-hairline)}
[data-brand="juris-ivy"] .hub-rank-preview{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column}
[data-brand="juris-ivy"] .hub-rank-preview li{display:flex;align-items:baseline;gap:.6rem;font-size:.86rem;color:var(--ink);padding:.32rem 0;border-bottom:1px solid rgba(126,105,79,.1)}
[data-brand="juris-ivy"] .hub-rank-preview li:last-child{border-bottom:0}
[data-brand="juris-ivy"] .hub-rank-num{font-family:var(--ji-display);font-variant-numeric:tabular-nums;font-weight:500;color:var(--hub-bronze);min-width:1.5em;text-align:right}
[data-brand="juris-ivy"] .hub-rank-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-brand="juris-ivy"] .hub-rank-pending{margin:0 0 1rem;font-size:.84rem;color:var(--stone);line-height:1.6}
[data-brand="juris-ivy"] .hub-rank-actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:.4rem 1.15rem;padding-top:.7rem;border-top:1px solid var(--hub-hairline)}
[data-brand="juris-ivy"] .hub-rank-actions a{display:inline-flex;align-items:baseline;gap:.45rem;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--hub-bronze);text-decoration:none;transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .hub-rank-actions a::after{content:"→";transition:transform var(--hub-t)}
[data-brand="juris-ivy"] .hub-rank-actions a:hover::after{transform:translateX(6px)}
[data-brand="juris-ivy"] .hub-rank-actions .hub-rank-view:hover{color:var(--ink)}
[data-brand="juris-ivy"] .hub-rank-actions .hub-rank-official{color:var(--stone)}
[data-brand="juris-ivy"] .hub-rank-actions .hub-rank-official:hover{color:var(--hub-bronze)}

/* ---- Section II · 每日深度新闻(实景图带,2026-07-11 视觉 v2:静态单图,不轮播——
   与 hero 的图册轮播区分开,同一张密歇根法学院实景图 + 深色蒙版,呼应报头仪式感) ---- */
[data-brand="juris-ivy"] .hub-feature-band{position:relative;overflow:hidden;margin:clamp(1rem,2.5vw,1.8rem) clamp(.7rem,1.8vw,1.5rem);padding:clamp(3rem,6.5vw,4.6rem) clamp(1.3rem,4vw,3rem);background:var(--hub-navy-3);color:var(--hub-ivory);border-radius:var(--hub-r-band);box-shadow:var(--hub-shadow);text-align:center}
[data-brand="juris-ivy"] .hub-daily{margin-top:clamp(3rem,6vw,4.5rem);margin-bottom:0}
[data-brand="juris-ivy"] .hub-feature-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:saturate(.9) brightness(.95)}
[data-brand="juris-ivy"] .hub-feature-veil{position:absolute;inset:0;background:linear-gradient(155deg,rgba(8,21,39,.82) 0%,rgba(10,28,49,.72) 62%,rgba(8,21,39,.86) 100%);pointer-events:none}
[data-brand="juris-ivy"] .hub-feature-inner{position:relative;max-width:1120px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
[data-brand="juris-ivy"] .hub-daily .hub-section-index{margin-bottom:1.15rem}
[data-brand="juris-ivy"] .hub-daily .hub-stage-heading{align-items:center}
[data-brand="juris-ivy"] .hub-feature-band .hub-eyebrow{display:flex;align-items:center;gap:1.1rem}
[data-brand="juris-ivy"] .hub-feature-band .hub-eyebrow::before,
[data-brand="juris-ivy"] .hub-feature-band .hub-eyebrow::after{content:"";width:clamp(42px,8vw,92px);height:1px;background:var(--hub-line-ondark)}
[data-brand="juris-ivy"] .hub-feature-band .hub-sec-title{color:var(--hub-ivory)}
[data-brand="juris-ivy"] .hub-feature-band .hub-section-lede{margin-left:auto;margin-right:auto}
[data-brand="juris-ivy"] .hub-daily-inner{max-width:1120px}

/* 日报入口卡:左报头(藏青+金细线内框)右导流,整卡可点,hover 浮起 */
[data-brand="juris-ivy"] .hub-daily-card{display:grid;grid-template-columns:minmax(170px,225px) minmax(0,1fr);width:min(680px,100%);margin:2rem auto 0;background:var(--paper);color:var(--ink);border-radius:var(--hub-r-card);overflow:hidden;text-decoration:none;text-align:left;box-shadow:var(--hub-shadow);border:0;padding:0;transition:transform var(--hub-t),box-shadow var(--hub-t)}
[data-brand="juris-ivy"] .hub-daily-card:hover{transform:translateY(-4px);box-shadow:0 34px 72px -30px rgba(8,21,39,.6)}
[data-brand="juris-ivy"] .hub-daily-mast{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;background:radial-gradient(130% 120% at 18% 12%,#1c3a5a 0%,var(--hub-navy) 48%,var(--hub-navy-2) 100%);color:var(--hub-ivory);padding:1.7rem 1rem;min-height:11rem}
[data-brand="juris-ivy"] .hub-daily-mast::after{content:"";position:absolute;inset:10px;border:1px solid rgba(168,136,78,.5);border-radius:calc(var(--hub-r-card) - 6px);pointer-events:none}
[data-brand="juris-ivy"] .hub-daily-mast em{font-style:normal;font-family:var(--ji-display);font-size:1.7rem;letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:var(--hub-gold)}
[data-brand="juris-ivy"] .hub-daily-mast i{font-style:normal;font-size:.58rem;font-weight:600;letter-spacing:.32em;text-indent:.32em;text-transform:uppercase;color:rgba(244,238,223,.68)}
[data-brand="juris-ivy"] .hub-daily-copy{display:flex;flex-direction:column;gap:.55rem;padding:1.5rem 1.6rem;min-width:0}
[data-brand="juris-ivy"] .hub-daily-copy strong{font-family:var(--ji-display);font-weight:500;font-size:1.22rem;line-height:1.3;color:var(--ink)}
[data-brand="juris-ivy"] .hub-daily-line{color:var(--stone);font-size:.9rem;line-height:1.65}
[data-brand="juris-ivy"] .hub-daily-card p{margin:0;color:var(--stone);font-size:.9rem;line-height:1.65}

/* 每日新闻横向编辑台:站内已发布内容直接呈现，原生横滑 + 可选左右按钮。 */
[data-brand="juris-ivy"] .hub-news-rail-shell{width:min(1120px,100%);margin:2rem auto 0;padding:1rem 0 1.15rem;border-top:1px solid rgba(244,238,223,.22);border-bottom:1px solid rgba(244,238,223,.22)}
[data-brand="juris-ivy"] .hub-news-rail-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .8rem;font-family:var(--ji-display);font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--hub-gold)}
[data-brand="juris-ivy"] .hub-news-rail-actions{display:flex;gap:.4rem}
[data-brand="juris-ivy"] .hub-news-rail-actions[hidden]{display:none}
[data-brand="juris-ivy"] .hub-news-rail-actions button{display:grid;place-items:center;width:2.15rem;height:2.15rem;border:1px solid rgba(244,238,223,.28);border-radius:50%;background:rgba(8,21,39,.45);color:var(--hub-ivory);font:inherit;cursor:pointer;transition:background var(--hub-t-text),border-color var(--hub-t-text)}
[data-brand="juris-ivy"] .hub-news-rail-actions button:hover,[data-brand="juris-ivy"] .hub-news-rail-actions button:focus-visible{background:var(--hub-gold);border-color:var(--hub-gold);color:var(--hub-navy-3)}
[data-brand="juris-ivy"] .hub-news-rail-actions button:disabled{opacity:.34;cursor:default;pointer-events:none}
[data-brand="juris-ivy"] .hub-news-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,31%);gap:.85rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:thin;scrollbar-color:rgba(168,136,78,.72) rgba(244,238,223,.12);padding:.15rem .1rem .65rem}
[data-brand="juris-ivy"] .hub-news-card{display:flex;flex-direction:column;min-width:0;min-height:15.5rem;padding:1.15rem 1.2rem;border:1px solid rgba(244,238,223,.2);border-radius:var(--hub-r-card);background:rgba(8,21,39,.72);color:var(--hub-ivory);text-align:left;text-decoration:none;scroll-snap-align:start;transition:transform var(--hub-t),border-color var(--hub-t),background var(--hub-t)}
[data-brand="juris-ivy"] .hub-news-card-lead{background:linear-gradient(145deg,rgba(168,136,78,.22),rgba(8,21,39,.78));border-color:rgba(168,136,78,.55)}
[data-brand="juris-ivy"] a.hub-news-card:hover,[data-brand="juris-ivy"] a.hub-news-card:focus-visible{transform:translateY(-3px);border-color:var(--hub-gold);background:rgba(15,39,66,.92)}
[data-brand="juris-ivy"] .hub-news-card-top{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-bottom:1.15rem}
[data-brand="juris-ivy"] .hub-news-card-top .hub-badge{color:var(--hub-gold);border-color:rgba(168,136,78,.55)}
[data-brand="juris-ivy"] .hub-news-card-top time{font-family:var(--ji-display);font-size:.61rem;letter-spacing:.08em;color:rgba(244,238,223,.56);white-space:nowrap}
[data-brand="juris-ivy"] .hub-news-card>strong{font-family:var(--ji-display);font-weight:500;font-size:1.08rem;line-height:1.38;color:var(--hub-ivory)}
[data-brand="juris-ivy"] .hub-news-card-summary{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:.7rem 0;color:rgba(244,238,223,.68);font-size:.82rem;line-height:1.6}
[data-brand="juris-ivy"] .hub-news-card-go{margin-top:auto;padding-top:.8rem;border-top:1px solid rgba(244,238,223,.16);font-family:var(--ji-display);font-size:.65rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--hub-gold)}
[data-brand="juris-ivy"] .hub-honest-empty{margin:2rem 0 0;padding:1rem 1.2rem;border:1px solid var(--hub-line-ondark);border-radius:var(--hub-r-card);color:rgba(244,238,223,.72)}

/* 胶囊金按钮:古铜金底,hover 翻象牙(金杜金按钮词汇 · v4 胶囊化) */
[data-brand="juris-ivy"] .hub-btn{align-self:flex-start;display:inline-flex;align-items:baseline;gap:.55rem;margin-top:.55rem;background:var(--hub-bronze);color:#fdfaf3;border:1px solid var(--hub-bronze);border-radius:999px;padding:.72rem 1.5rem;font-size:.68rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;transition:background var(--hub-t),color var(--hub-t)}
[data-brand="juris-ivy"] .hub-btn::after{content:"→";transition:transform var(--hub-t)}
[data-brand="juris-ivy"] .hub-daily-card:hover .hub-btn{background:transparent;color:var(--hub-bronze)}
[data-brand="juris-ivy"] .hub-daily-card:hover .hub-btn::after{transform:translateX(6px)}

/* ---- Section III · 每周就业汇总(编辑体留白:衬线斜体夹金细线) ---- */
[data-brand="juris-ivy"] .hub-soon-panel{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.2rem;margin:0;padding:clamp(3.2rem,7vw,5rem) 1rem clamp(3.4rem,7.5vw,5.4rem);border:0;background:transparent;border-radius:0}
[data-brand="juris-ivy"] .hub-soon-panel .hub-eyebrow{display:flex;align-items:center;gap:1.1rem;margin-bottom:.9rem}
[data-brand="juris-ivy"] .hub-soon-panel .hub-eyebrow::before,
[data-brand="juris-ivy"] .hub-soon-panel .hub-eyebrow::after{content:"";width:clamp(42px,8vw,92px);height:1px;background:var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-soon-panel h3{font-family:var(--ji-display);font-weight:500;font-size:1.3rem;margin:.4rem 0 .5rem;color:var(--ink)}
[data-brand="juris-ivy"] .hub-soon-panel>p{margin:0;color:var(--stone);font-size:.92rem}
[data-brand="juris-ivy"] .hub-soon-panel .hub-soon-sub{margin:1rem 0 0;font-family:var(--ji-display);font-size:clamp(1.02rem,1.8vw,1.25rem);color:var(--ink);letter-spacing:.04em}
[data-brand="juris-ivy"] .hub-soon-panel .hub-soon-note{display:flex;align-items:center;gap:1.2rem;margin:1.6rem 0 0;font-family:var(--ji-display);font-style:italic;font-size:1rem;letter-spacing:.14em;color:var(--hub-bronze);text-transform:none}
[data-brand="juris-ivy"] .hub-soon-note::before,
[data-brand="juris-ivy"] .hub-soon-note::after{content:"";width:clamp(52px,10vw,110px);height:1px;background:var(--hub-line-gold)}

/* ---- Section 02 · 周报尚未上线：一张紧凑的“编辑部筹备函”，不拿普通文章冒充周报。 ---- */
[data-brand="juris-ivy"] .hub-weekly-editorial{position:relative;overflow:hidden;margin:clamp(4.5rem,8vw,6.5rem) clamp(.7rem,1.8vw,1.5rem) 0;padding:clamp(3.2rem,5.8vw,4.7rem) 0;background:linear-gradient(142deg,#faf5ea 0%,var(--hub-ivory) 56%,#eee3ce 100%);border:1px solid var(--hub-hairline);border-radius:var(--hub-r-band);box-shadow:var(--hub-shadow-soft)}
[data-brand="juris-ivy"] .hub-weekly-editorial::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 86% 12%,rgba(168,136,78,.13),transparent 31%);pointer-events:none}
[data-brand="juris-ivy"] .hub-weekly-inner{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:clamp(1.4rem,3.5vw,3rem);max-width:1060px}
[data-brand="juris-ivy"] .hub-weekly-inner>.hub-section-index{height:100%;padding-right:clamp(1.25rem,2.6vw,2.25rem);border-right:1px solid var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-weekly-inner .hub-stage-heading{padding-top:.15rem}
[data-brand="juris-ivy"] .hub-weekly-inner .hub-section-lede{margin-top:.7rem}
[data-brand="juris-ivy"] .hub-weekly-coming-soon{grid-column:1/-1;display:grid;grid-template-columns:clamp(108px,14vw,150px) minmax(0,1fr);align-items:stretch;gap:0;width:100%;margin:clamp(1.8rem,3.5vw,2.7rem) 0 0;padding:0;overflow:hidden;border:1px solid var(--hub-line-gold);border-radius:var(--hub-r-card);background:rgba(255,253,248,.8);box-shadow:0 16px 36px -30px rgba(46,35,18,.45);text-align:left}
[data-brand="juris-ivy"] .hub-weekly-status-seal{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;min-height:11.5rem;background:linear-gradient(160deg,var(--hub-navy) 0%,#173451 100%);color:var(--hub-ivory);border-right:1px solid var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-weekly-status-seal i{font-family:var(--ji-display);font-style:normal;font-size:clamp(2.4rem,5vw,4rem);line-height:1;color:var(--hub-gold)}
[data-brand="juris-ivy"] .hub-weekly-status-seal b{font-family:var(--ji-display);font-size:.59rem;font-weight:600;letter-spacing:.26em;text-indent:.26em;color:rgba(244,238,223,.7)}
[data-brand="juris-ivy"] .hub-weekly-soon-copy{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:clamp(1.25rem,2.8vw,2rem) clamp(1.3rem,3vw,2.25rem)}
[data-brand="juris-ivy"] .hub-weekly-coming-soon .hub-eyebrow{display:block;margin:0 0 .45rem;font-size:.62rem;letter-spacing:.22em}
[data-brand="juris-ivy"] .hub-weekly-coming-soon .hub-eyebrow::before,[data-brand="juris-ivy"] .hub-weekly-coming-soon .hub-eyebrow::after{content:none}
[data-brand="juris-ivy"] .hub-weekly-coming-soon h3{margin:0;color:var(--ink);font-family:var(--ji-display);font-size:clamp(1.25rem,2.2vw,1.65rem);font-weight:500;line-height:1.35}
[data-brand="juris-ivy"] .hub-weekly-soon-copy>p{margin:.55rem 0 0;color:var(--stone);font-size:.88rem;line-height:1.65}
[data-brand="juris-ivy"] .hub-weekly-topics{display:flex;flex-wrap:wrap;gap:.45rem;margin:.9rem 0 0}
[data-brand="juris-ivy"] .hub-weekly-topics span{padding:.3rem .62rem;border:1px solid var(--hub-hairline);border-radius:999px;background:rgba(244,238,223,.52);font-family:var(--ji-display);font-size:.62rem;letter-spacing:.08em;color:var(--hub-bronze)}
[data-brand="juris-ivy"] .hub-weekly-coming-soon .hub-soon-note{align-self:flex-start;display:inline-flex;align-items:center;gap:.55rem;margin:.9rem 0 0;color:var(--hub-bronze);font-family:var(--ji-display);font-size:.64rem;font-style:normal;letter-spacing:.1em}
[data-brand="juris-ivy"] .hub-weekly-coming-soon .hub-soon-note::before{content:"";width:1.9rem;height:1px;background:var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-weekly-coming-soon .hub-soon-note::after{content:none}

/* ---- Section 03 · 低频榜单资料台：与日报共用横轨手势，改用米黄纸卡和古铜索引。 ---- */
[data-brand="juris-ivy"] .hub-ranking-desk{position:relative;overflow:hidden;margin:clamp(4.8rem,8.5vw,7rem) clamp(.7rem,1.8vw,1.5rem) 0;padding:clamp(3.4rem,6vw,5rem) 0;background:linear-gradient(118deg,var(--hub-stone-desk) 0%,#f5eedf 68%,#eee3ce 100%);border:1px solid var(--hub-hairline);border-radius:var(--hub-r-band);box-shadow:inset 0 1px 0 rgba(255,255,255,.48)}
[data-brand="juris-ivy"] .hub-ranking-desk::after{content:"RANKINGS";position:absolute;right:-.04em;top:-.2em;font-family:var(--ji-display);font-size:clamp(4.8rem,11vw,9rem);letter-spacing:.05em;color:rgba(126,105,79,.045);pointer-events:none}
[data-brand="juris-ivy"] .hub-ranking-desk-inner{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:clamp(1.4rem,3.5vw,3rem);max-width:1120px}
[data-brand="juris-ivy"] .hub-ranking-desk .hub-section-index{height:100%;padding-right:clamp(1.25rem,2.6vw,2.25rem);border-right:1px solid var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-ranking-desk-copy{max-width:720px;padding-top:.15rem}
[data-brand="juris-ivy"] .hub-ranking-desk .hub-eyebrow{margin-bottom:.45rem}
[data-brand="juris-ivy"] .hub-ranking-desk .hub-section-lede{margin-top:.7rem}
[data-brand="juris-ivy"] .hub-ranking-direct{grid-column:1/-1;min-width:0;width:100%;margin:clamp(1.9rem,3.5vw,2.7rem) 0 0;padding:1rem 0 .85rem;border-color:var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-ranking-direct-head{color:var(--hub-bronze);border:0;padding:0 .1rem}
[data-brand="juris-ivy"] .hub-ranking-direct .hub-news-rail-actions button{border-color:var(--hub-line-gold);background:rgba(255,253,248,.75);color:var(--hub-bronze)}
[data-brand="juris-ivy"] .hub-ranking-direct .hub-news-rail-actions button:hover,[data-brand="juris-ivy"] .hub-ranking-direct .hub-news-rail-actions button:focus-visible{background:var(--hub-bronze);border-color:var(--hub-bronze);color:var(--hub-ivory)}
[data-brand="juris-ivy"] .hub-ranking-board-list{grid-auto-columns:minmax(250px,31%);scrollbar-color:rgba(126,105,79,.58) rgba(126,105,79,.1);padding:.15rem .1rem .8rem}
[data-brand="juris-ivy"] .hub-ranking-board-list>.hub-ranking-board-card{display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-items:start;gap:1rem;min-height:12.8rem;padding:1.15rem 1.2rem;border:1px solid var(--hub-hairline);background:rgba(255,253,248,.9);color:var(--ink);box-shadow:0 12px 28px -28px rgba(46,35,18,.55)}
[data-brand="juris-ivy"] .hub-ranking-board-list>.hub-ranking-board-card:nth-child(3n+1){border-top-color:var(--hub-bronze)}
[data-brand="juris-ivy"] .hub-ranking-board-list>.hub-ranking-board-card:hover,[data-brand="juris-ivy"] .hub-ranking-board-list>.hub-ranking-board-card:focus-visible{transform:translateY(-3px);border-color:var(--hub-bronze);background:#fffdf8;box-shadow:var(--hub-shadow-soft)}
[data-brand="juris-ivy"] .hub-ranking-board-no{font-family:var(--ji-display);font-size:1.8rem;line-height:1;color:rgba(168,136,78,.72);font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .hub-ranking-board-copy{display:flex;flex-direction:column;gap:.35rem;min-width:0}
[data-brand="juris-ivy"] .hub-ranking-board-copy strong{font-family:var(--ji-display);font-size:1.05rem;font-weight:550;line-height:1.35;color:var(--ink)}
[data-brand="juris-ivy"] .hub-ranking-board-copy small{font-size:.67rem;line-height:1.5;letter-spacing:.08em;color:var(--stone)}
[data-brand="juris-ivy"] .hub-ranking-board-go{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding-top:.75rem;border-top:1px solid var(--hub-hairline);color:var(--hub-bronze);font-family:var(--ji-display);font-size:.63rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
[data-brand="juris-ivy"] .hub-ranking-board-go i{font-style:normal;font-size:.9rem;transition:transform var(--hub-t)}
[data-brand="juris-ivy"] .hub-ranking-board-card:hover .hub-ranking-board-go i{transform:translate(3px,-3px)}
[data-brand="juris-ivy"] .hub-ranking-direct-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.65rem 0 0;padding:.85rem .1rem 0;border-top:1px solid var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-ranking-direct-foot>a{color:var(--hub-bronze);font-family:var(--ji-display);font-size:.68rem;font-weight:600;letter-spacing:.1em;text-decoration:none;border-bottom:1px solid currentColor}
[data-brand="juris-ivy"] .hub-ranking-direct-foot>a:hover,[data-brand="juris-ivy"] .hub-ranking-direct-foot>a:focus-visible{color:var(--ink)}
[data-brand="juris-ivy"] .hub-ranking-swipe-hint{display:block;font-family:var(--ji-display);font-size:.62rem;letter-spacing:.08em;color:var(--stone)}

/* ---- 文章流色带(米黄底,承接本周焦点/子版块门/往期) ---- */
[data-brand="juris-ivy"] .hub-stream-band{margin-top:clamp(5rem,8vw,7rem);background:var(--hub-ivory);border-radius:var(--hub-r-band) var(--hub-r-band) 0 0;padding:clamp(3.4rem,6.5vw,5rem) 0 clamp(3rem,5.5vw,4.2rem)}

/* ---- 段间呼吸缝(2026-07-11 视觉 v2:"反一镜到底"——每个色带/留白之间插一条
   极细金发丝线 + 留白,断开长页的直路感;色带自身已有圆角/阴影/明度差做主分隔,
   这条缝只用在两个同底色(象牙/象牙)相邻、容易糊成一整块的接缝处) ---- */
[data-brand="juris-ivy"] .hub-seam{width:min(220px,42%);height:1px;margin:clamp(1.6rem,4vw,2.6rem) auto;background:linear-gradient(90deg,transparent,var(--hub-line-gold) 50%,transparent)}

/* 类型章片:古铜金细框小章(金杜克制章片词汇) */
[data-brand="juris-ivy"] .hub-badge{display:inline-block;align-self:flex-start;font-family:var(--ji-display);font-size:.6rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--hub-bronze);border:1px solid var(--hub-line-gold);border-radius:999px;padding:.18rem .7rem;margin-bottom:.7rem}
[data-brand="juris-ivy"] .hub-badge-mini{font-size:.56rem;padding:.08rem .5rem;margin-bottom:0}

/* -- 顶层:本周焦点 -- */
[data-brand="juris-ivy"] .hub-focus{margin:0 0 clamp(2.2rem,4.5vw,3.2rem)}
[data-brand="juris-ivy"] .hub-focus>.hub-eyebrow{display:flex;align-items:center;gap:1.1rem}
[data-brand="juris-ivy"] .hub-focus>.hub-eyebrow::after{content:"";flex:1;height:1px;background:var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-focus-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:1.2rem;align-items:stretch}
[data-brand="juris-ivy"] .hub-focus-secondary-col{display:grid;gap:1rem}
[data-brand="juris-ivy"] .hub-focus-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--hub-hairline);border-radius:var(--hub-r-card);background:var(--paper);padding:1.5rem 1.6rem;text-decoration:none;color:inherit;box-shadow:0 1px 0 rgba(126,105,79,.05);transition:transform var(--hub-t),box-shadow var(--hub-t),border-color var(--hub-t)}
[data-brand="juris-ivy"] .hub-focus-card:hover{transform:translateY(-4px);border-color:var(--hub-line-gold);box-shadow:var(--hub-shadow-soft)}
[data-brand="juris-ivy"] .hub-focus-primary{justify-content:flex-end;min-height:19rem;background:linear-gradient(155deg,#16304e 0%,var(--hub-navy-2) 74%,var(--hub-navy-3) 100%);color:var(--hub-ivory);border-color:transparent;box-shadow:var(--hub-shadow-soft)}
[data-brand="juris-ivy"] .hub-focus-primary .hub-badge{color:var(--hub-gold);border-color:rgba(168,136,78,.5)}
[data-brand="juris-ivy"] .hub-focus-primary h3{font-family:var(--ji-display);font-weight:500;font-size:clamp(1.5rem,2.6vw,2.05rem);margin:0 0 .6rem;line-height:1.25}
[data-brand="juris-ivy"] .hub-focus-primary .hub-focus-line{color:rgba(244,238,223,.78)}
[data-brand="juris-ivy"] .hub-focus-primary .hub-focus-meta{color:rgba(244,238,223,.6)}
[data-brand="juris-ivy"] .hub-focus-secondary{min-height:8.5rem;padding:1.15rem 1.35rem}
[data-brand="juris-ivy"] .hub-focus-secondary h3{font-family:var(--ji-display);font-weight:500;font-size:1.05rem;margin:0 0 .4rem;line-height:1.32}
[data-brand="juris-ivy"] .hub-focus-line{margin:0 0 .8rem;color:var(--stone);font-size:.92rem;line-height:1.6}
[data-brand="juris-ivy"] .hub-focus-meta{display:flex;gap:.7rem;flex-wrap:wrap;align-items:baseline;margin-top:auto;font-family:var(--ji-display);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone)}
[data-brand="juris-ivy"] .hub-focus-school a{color:var(--hub-bronze);text-decoration:none;font-weight:600;transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .hub-focus-school a:hover{text-decoration:underline}
[data-brand="juris-ivy"] .hub-focus-primary .hub-focus-school a{color:var(--hub-gold)}

/* -- 中层:子版块门 -- */
[data-brand="juris-ivy"] .hub-gateways{margin:0 0 clamp(2.2rem,4.5vw,3.2rem)}
[data-brand="juris-ivy"] .hub-gateways>.hub-eyebrow{display:flex;align-items:center;gap:1.1rem}
[data-brand="juris-ivy"] .hub-gateways>.hub-eyebrow::after{content:"";flex:1;height:1px;background:var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-gateway-grid{display:grid;grid-template-columns:minmax(0,640px);gap:1.2rem}
[data-brand="juris-ivy"] .hub-gateway-card{display:flex;flex-direction:column;gap:.45rem;min-width:0;border:1px solid var(--hub-hairline);border-top:3px solid var(--hub-gold);border-radius:var(--hub-r-card);background:var(--paper);padding:1.4rem 1.5rem;text-decoration:none;color:inherit;transition:transform var(--hub-t),box-shadow var(--hub-t),border-color var(--hub-t)}
[data-brand="juris-ivy"] a.hub-gateway-card:hover{transform:translateY(-4px);box-shadow:var(--hub-shadow-soft);border-color:var(--hub-line-gold);border-top-color:var(--hub-bronze)}
[data-brand="juris-ivy"] .hub-gateway-kicker{font-family:var(--ji-display);font-size:.62rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--hub-bronze)}
[data-brand="juris-ivy"] .hub-gateway-kicker em{display:block;margin-top:.3rem;font-family:var(--ji-display);font-style:normal;font-size:1.3rem;letter-spacing:.02em;text-transform:none;color:var(--ink);font-weight:500}
[data-brand="juris-ivy"] .hub-gateway-count{font-family:var(--ji-display);font-size:.72rem;letter-spacing:.1em;color:var(--hub-bronze);font-weight:600;font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .hub-gateway-card p{margin:0;color:var(--stone);font-size:.88rem;line-height:1.55}
[data-brand="juris-ivy"] .hub-gateway-card strong{margin-top:auto;padding-top:.7rem;color:var(--hub-bronze);font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] a.hub-gateway-card:hover strong{color:var(--ink)}
[data-brand="juris-ivy"] .hub-gateway-soon{border-top-color:var(--hub-hairline);opacity:.85}
[data-brand="juris-ivy"] .hub-gateway-soon-tag{display:inline-block;align-self:flex-start;font-family:var(--ji-display);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);border:1px solid var(--hub-hairline);border-radius:999px;padding:.16rem .65rem;margin:.1rem 0 .3rem}

/* -- 底层:往期小方块 -- */
[data-brand="juris-ivy"] .hub-archive{margin:0;padding-top:.4rem;border:0}
[data-brand="juris-ivy"] .hub-archive>.hub-eyebrow{display:flex;align-items:center;gap:1.1rem}
[data-brand="juris-ivy"] .hub-archive>.hub-eyebrow::after{content:"";flex:1;height:1px;background:var(--hub-line-gold)}
[data-brand="juris-ivy"] .hub-content-filters{display:flex;flex-wrap:wrap;gap:.55rem;margin:1rem 0 1.4rem}
[data-brand="juris-ivy"] .hub-content-filters button{appearance:none;border:1px solid var(--hub-line-gold);border-radius:999px;background:rgba(255,253,248,.72);color:var(--hub-bronze);padding:.5rem .9rem;font-family:var(--ji-display);font-size:.68rem;font-weight:600;letter-spacing:.08em;cursor:pointer;transition:background var(--hub-t-text),color var(--hub-t-text),border-color var(--hub-t-text)}
[data-brand="juris-ivy"] .hub-content-filters button:hover,[data-brand="juris-ivy"] .hub-content-filters button:focus-visible,[data-brand="juris-ivy"] .hub-content-filters button.is-active{background:var(--hub-bronze);border-color:var(--hub-bronze);color:var(--hub-ivory)}
[data-brand="juris-ivy"] .hub-filter-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
[data-brand="juris-ivy"] .hub-archive-tile[hidden],[data-brand="juris-ivy"] .hub-archive-month[hidden]{display:none}
[data-brand="juris-ivy"] .hub-archive-month{margin-bottom:1.7rem}
[data-brand="juris-ivy"] .hub-archive-month-label{font-family:var(--ji-display);font-size:.74rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--hub-bronze);border-bottom:1px solid var(--hub-hairline);padding-bottom:.45rem;margin:0 0 .85rem}
[data-brand="juris-ivy"] .hub-archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(2rem,5vw,5rem)}
[data-brand="juris-ivy"] .hub-archive-tile{position:relative;display:flex;flex-direction:column;gap:.42rem;min-width:0;border:0;border-top:1px solid var(--hub-line-gold);border-radius:0;background:transparent;padding:1rem 2.2rem 1.35rem .1rem;text-decoration:none;color:inherit;transition:color var(--hub-t-text),padding-left var(--hub-t)}
[data-brand="juris-ivy"] .hub-archive-tile::after{content:"→";position:absolute;right:.15rem;top:1rem;color:var(--hub-bronze);transition:transform var(--hub-t)}
[data-brand="juris-ivy"] .hub-archive-tile:hover,[data-brand="juris-ivy"] .hub-archive-tile:focus-visible{color:var(--hub-bronze);padding-left:.4rem}
[data-brand="juris-ivy"] .hub-archive-tile:hover::after{transform:translateX(4px)}
[data-brand="juris-ivy"] .hub-archive-tile-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
[data-brand="juris-ivy"] .hub-archive-tile-top time{font-family:var(--ji-display);font-size:.64rem;letter-spacing:.08em;color:var(--stone);font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .hub-archive-tile-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-family:var(--ji-display);font-size:.94rem;font-weight:500;line-height:1.35}
[data-brand="juris-ivy"] .hub-archive-tile-hint{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.76rem;color:var(--stone);line-height:1.45}
[data-brand="juris-ivy"] .hub-archive-fold{margin-top:.6rem}
[data-brand="juris-ivy"] .hub-archive-fold summary{cursor:pointer;list-style:none;font-family:var(--ji-display);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--hub-bronze);font-weight:600;padding:.8rem 0;border-top:1px solid var(--hub-hairline);transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .hub-archive-fold summary:hover{color:var(--ink)}
[data-brand="juris-ivy"] .hub-archive-fold summary::-webkit-details-marker{display:none}
[data-brand="juris-ivy"] .hub-archive-fold summary::after{content:" ↓"}
[data-brand="juris-ivy"] .hub-archive-fold[open] summary::after{content:" ↑"}

/* ---- 榜单子页(/juris-ivy/insights/rankings/{slug}/):藏青页头带 + 精修表格 ---- */
[data-brand="juris-ivy"] .hub-rank-hero{position:relative;overflow:hidden;background:linear-gradient(165deg,var(--hub-navy) 0%,var(--hub-navy-2) 72%,var(--hub-navy-3) 100%);color:var(--hub-ivory);border-radius:0 0 var(--hub-r-band) var(--hub-r-band);padding:0;box-shadow:var(--hub-shadow-soft)}
[data-brand="juris-ivy"] .hub-rank-hero-inner{position:relative;max-width:880px;margin:0 auto;padding:clamp(2.4rem,5.5vw,3.6rem) clamp(1.4rem,4vw,3rem) clamp(2rem,4.5vw,3rem);display:flex;flex-direction:column;align-items:center;text-align:center;gap:.65rem}
[data-brand="juris-ivy"] .hub-crumb{margin:0 0 .6rem;display:flex;align-items:baseline;gap:.6rem;font-size:.66rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,238,223,.6)}
[data-brand="juris-ivy"] .hub-crumb a{color:inherit;text-decoration:none;transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .hub-crumb a:hover{color:var(--hub-gold)}
[data-brand="juris-ivy"] .hub-crumb-sep{color:rgba(244,238,223,.35)}
[data-brand="juris-ivy"] .hub-rank-hero .hub-eyebrow{margin-bottom:.2rem}
[data-brand="juris-ivy"] .hub-rank-hero h1{font-family:var(--ji-display);font-weight:480;font-size:clamp(1.5rem,3.2vw,2.3rem);margin:0;line-height:1.25;color:var(--hub-ivory);text-wrap:balance}
[data-brand="juris-ivy"] .hub-rank-meta{margin:.2rem 0 0;color:var(--hub-gold);font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase}
[data-brand="juris-ivy"] .hub-rank-body{padding-top:clamp(1.8rem,4vw,2.6rem)}
[data-brand="juris-ivy"] .hub-rank-attribution{font-size:.82rem;color:var(--stone);display:flex;flex-wrap:wrap;gap:.3rem .9rem;align-items:baseline;margin:0 0 1rem}
[data-brand="juris-ivy"] .hub-rank-attribution a{color:var(--hub-bronze);text-decoration:none;border-bottom:1px solid var(--hub-line-gold);padding-bottom:.1em;transition:border-color var(--hub-t-text),color var(--hub-t-text)}
[data-brand="juris-ivy"] .hub-rank-attribution a:hover{color:var(--ink);border-color:var(--ink)}
[data-brand="juris-ivy"] .hub-rank-accessed{font-family:var(--ji-display);letter-spacing:.06em}
/* 覆盖范围/缺口说明(数据展示铁规④:解释性长文字独立成段,不与表格/标题混排;word-break 防超长
   URL 或无空格英文长词把窄屏卡片撑破——.hub-rank-coverage 专用于承接 coverage_note 这类长句 */
[data-brand="juris-ivy"] .hub-rank-coverage{margin:0 0 1.2rem;padding:.95rem 1.15rem;border-left:3px solid var(--hub-gold);background:var(--hub-ivory);border-radius:0 10px 10px 0;font-size:.84rem;line-height:1.7;color:var(--ink);word-break:break-word}
[data-brand="juris-ivy"] .hub-rank-no-table{margin:0 0 1.2rem;color:var(--stone);font-size:.9rem;line-height:1.65}
[data-brand="juris-ivy"] .hub-rank-disclaimer{margin:1.2rem 0 0;padding-top:1rem;border-top:1px solid var(--hub-hairline);font-size:.78rem;color:var(--stone);line-height:1.65;word-break:break-word}
[data-brand="juris-ivy"] .hub-rank-yoy{color:var(--stone);font-size:.82em}
[data-brand="juris-ivy"] .hub-rank-back{margin:.9rem 0 0;font-size:.8rem;letter-spacing:.06em}
[data-brand="juris-ivy"] .hub-rank-back a{color:var(--hub-bronze);font-weight:600;text-decoration:none;transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .hub-rank-back a:hover{color:var(--ink)}

/* 榜单表格精修:藏青表头+金下划、斑马纹、名次/数字右对齐衬线金数、行 hover(.35s 手感) */
[data-brand="juris-ivy"] .hub-rank-table{border:1px solid var(--hub-hairline);border-radius:var(--hub-r-card);background:var(--paper)}
[data-brand="juris-ivy"] .hub-rank-table table{min-width:600px;font-size:.92rem}
[data-brand="juris-ivy"] .hub-rank-table th{background:var(--hub-navy);color:rgba(244,238,223,.92);font-family:var(--ji-display);font-weight:500;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;padding:.75rem .95rem;border-bottom:2px solid var(--hub-gold)}
[data-brand="juris-ivy"] .hub-rank-table td{padding:.58rem .95rem;border-bottom:1px solid rgba(126,105,79,.12);transition:background var(--hub-t-text)}
[data-brand="juris-ivy"] .hub-rank-table tr:nth-child(odd) td{background:rgba(126,105,79,.045)}
[data-brand="juris-ivy"] .hub-rank-table tr:hover td{background:rgba(126,105,79,.12)}
[data-brand="juris-ivy"] .hub-rank-table tr:last-child td{border-bottom:0}
[data-brand="juris-ivy"] .hub-th-rank,[data-brand="juris-ivy"] .hub-td-rank{text-align:right;width:3.6em}
[data-brand="juris-ivy"] .hub-td-rank{font-family:var(--ji-display);font-weight:500;color:var(--hub-bronze);font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .hub-th-num,[data-brand="juris-ivy"] .hub-td-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
[data-brand="juris-ivy"] .hub-td-link{white-space:nowrap}
[data-brand="juris-ivy"] .hub-rank-schoollink{display:inline-flex;align-items:baseline;gap:.4rem;color:var(--hub-bronze);font-size:.8rem;font-weight:600;letter-spacing:.08em;text-decoration:none;transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .hub-rank-schoollink::after{content:"→";transition:transform var(--hub-t)}
[data-brand="juris-ivy"] .hub-rank-schoollink:hover{color:var(--ink)}
[data-brand="juris-ivy"] .hub-rank-schoollink:hover::after{transform:translateX(5px)}

/* ====================================================================================
   学校主轴总对照表 (.rk-*) — ranking-hub-v2 · 2026-07-11
   Jayson v2 规格④"不要一镜到底,分段落有呼吸"落地为五段:实景轮播 masthead → 免责声明 →
   工具条(地区tab/搜索/更多榜单) → 总表(容器内滚动,粘性表头+冻结校名列) → 图例。
   ==================================================================================== */
[data-brand="juris-ivy"] .rk-matrix{margin:0 0 clamp(2.6rem,5vw,3.8rem)}

/* -- masthead:实景轮播(取代大面积深藏青渐变,规格⑤"深蓝背景不好") -- */
[data-brand="juris-ivy"] .rk-masthead{position:relative;overflow:hidden;border-radius:var(--hub-r-band);min-height:clamp(15rem,26vw,20rem);display:flex;align-items:flex-end;padding:clamp(1.8rem,4vw,2.8rem) clamp(1.4rem,4vw,2.6rem);margin:0 0 clamp(1.6rem,3vw,2.2rem);box-shadow:var(--hub-shadow-soft);background:linear-gradient(150deg,#2a2118 0%,#1c1712 60%,#120e0a 100%)}
[data-brand="juris-ivy"] .rk-masthead-flat{background:linear-gradient(155deg,var(--hub-navy) 0%,var(--hub-navy-2) 68%,var(--hub-navy-3) 100%)}
[data-brand="juris-ivy"] .rk-mast-photos{position:absolute;inset:0}
[data-brand="juris-ivy"] .rk-mast-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:saturate(.86) brightness(.72)}
/* 轮播时序由构建期内联 <style>(@keyframes rkMastCycle)按图片数量算好,这里只兜底静态展示态 */
@media(prefers-reduced-motion:reduce){[data-brand="juris-ivy"] .rk-mast-img{animation:none !important;opacity:0}[data-brand="juris-ivy"] .rk-mast-img:first-child{opacity:1}}
[data-brand="juris-ivy"] .rk-mast-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,8,6,.86) 0%,rgba(10,8,6,.5) 45%,rgba(10,8,6,.18) 100%)}
[data-brand="juris-ivy"] .rk-masthead-inner{position:relative;max-width:760px}
[data-brand="juris-ivy"] .rk-masthead-inner .hub-sec-title{text-align:left;margin:.3rem 0}
[data-brand="juris-ivy"] .rk-masthead-inner .hub-section-lede{margin:.6rem 0 0;text-align:left;max-width:64ch}

/* -- 防误导声明(数据展示纪律④④:独立成段,金线左边框) -- */
[data-brand="juris-ivy"] .rk-disclaimer{margin:0 0 1.4rem;padding:.85rem 1.1rem;border-left:3px solid var(--hub-gold);background:var(--hub-ivory);border-radius:0 10px 10px 0;font-size:.82rem;line-height:1.65;color:var(--stone);word-break:break-word}

/* -- 工具条:地区 tab + 搜索 + 更多榜单展开 -- */
[data-brand="juris-ivy"] .rk-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem 1rem;margin:0 0 1rem}
[data-brand="juris-ivy"] .rk-tabs{display:flex;flex-wrap:wrap;gap:.4rem}
[data-brand="juris-ivy"] .rk-tab{font-family:var(--ji-display);font-size:.72rem;font-weight:600;letter-spacing:.1em;color:var(--stone);background:transparent;border:1px solid var(--hub-hairline);border-radius:999px;padding:.42rem 1rem;cursor:pointer;transition:background var(--hub-t-text),color var(--hub-t-text),border-color var(--hub-t-text)}
[data-brand="juris-ivy"] .rk-tab:hover{border-color:var(--hub-line-gold);color:var(--ink)}
[data-brand="juris-ivy"] .rk-tab-active{background:var(--hub-navy);border-color:var(--hub-navy);color:var(--hub-ivory)}
[data-brand="juris-ivy"] .rk-search{margin-left:auto}
[data-brand="juris-ivy"] .rk-search input{font-family:var(--ji-body,inherit);font-size:.86rem;border:1px solid var(--hub-hairline);border-radius:999px;padding:.48rem 1.1rem;min-width:14rem;background:var(--paper);color:var(--ink);transition:border-color var(--hub-t-text)}
[data-brand="juris-ivy"] .rk-search input:focus{outline:none;border-color:var(--hub-gold)}
[data-brand="juris-ivy"] .rk-more-toggle{font-family:var(--ji-display);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--hub-bronze);background:transparent;border:1px solid var(--hub-line-gold);border-radius:999px;padding:.44rem 1.1rem;cursor:pointer;transition:color var(--hub-t-text),background var(--hub-t-text)}
[data-brand="juris-ivy"] .rk-more-toggle:hover{color:var(--hub-ivory);background:var(--hub-bronze)}

/* -- 总表容器:容器内滚动(页面本身不一镜到底),粘性表头 -- */
[data-brand="juris-ivy"] .rk-table-scroll{border:1px solid var(--hub-hairline);border-radius:var(--hub-r-card);background:var(--paper);max-height:min(78vh,900px);overflow:auto;position:relative}
[data-brand="juris-ivy"] .rk-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;font-size:.88rem}
[data-brand="juris-ivy"] .rk-table thead th{position:sticky;top:0;z-index:2;background:var(--hub-navy);color:rgba(244,238,223,.92);font-family:var(--ji-display);font-weight:500;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid var(--hub-gold);padding:0}
[data-brand="juris-ivy"] .rk-sortbtn{width:100%;display:inline-flex;align-items:center;gap:.3rem;background:transparent;border:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;padding:.7rem .8rem;cursor:pointer;text-align:right;justify-content:flex-end}
[data-brand="juris-ivy"] .rk-th-frozen .rk-sortbtn{text-align:left;justify-content:flex-start}
[data-brand="juris-ivy"] th[data-sort-active] .rk-sortbtn::after{content:"";display:inline-block;width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;margin-left:.15rem}
[data-brand="juris-ivy"] th[data-sort-active="asc"] .rk-sortbtn::after{border-bottom:5px solid var(--hub-gold)}
[data-brand="juris-ivy"] th[data-sort-active="desc"] .rk-sortbtn::after{border-top:5px solid var(--hub-gold)}
[data-brand="juris-ivy"] .rk-th-ext{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;margin-right:.15rem;color:rgba(244,238,223,.55);text-decoration:none;font-size:.78rem;transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .rk-th-ext:hover{color:var(--hub-gold)}
[data-brand="juris-ivy"] .rk-table tbody td{padding:.5rem .8rem;border-bottom:1px solid rgba(126,105,79,.12);transition:background var(--hub-t-text)}
[data-brand="juris-ivy"] .rk-table tbody tr:nth-child(even) td{background:rgba(126,105,79,.045)}
[data-brand="juris-ivy"] .rk-table tbody tr:hover td{background:rgba(126,105,79,.12)}
[data-brand="juris-ivy"] .rk-table tbody tr:last-child td{border-bottom:0}

/* 冻结首列(校名):横向滚动时行标识不丢——阴影做"图层"感,表头×冻结列交叉处 z-index 最高 */
[data-brand="juris-ivy"] .rk-th-frozen,[data-brand="juris-ivy"] .rk-td-frozen{position:sticky;left:0;z-index:1;background:var(--paper);box-shadow:4px 0 8px -4px rgba(20,15,8,.16)}
[data-brand="juris-ivy"] .rk-table thead .rk-th-frozen{z-index:3;background:var(--hub-navy)}
[data-brand="juris-ivy"] .rk-table tbody tr:nth-child(even) .rk-td-frozen{background:#f6efe0}
[data-brand="juris-ivy"] .rk-table tbody tr:hover .rk-td-frozen{background:#f1e6cd}
[data-brand="juris-ivy"] .rk-td-frozen a{display:flex;flex-direction:column;gap:.05rem;color:inherit;text-decoration:none}
[data-brand="juris-ivy"] .rk-td-frozen a:hover .rk-name-cn{color:var(--hub-bronze)}
[data-brand="juris-ivy"] .rk-region-chip{display:inline-flex;align-items:center;justify-content:center;width:1.15em;height:1.15em;margin-right:.4em;font-size:.68rem;font-weight:600;color:var(--hub-bronze);border:1px solid var(--hub-line-gold);border-radius:3px;vertical-align:middle}
[data-brand="juris-ivy"] .rk-name-cn{font-weight:500;color:var(--ink);transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .rk-name-en{display:block;font-size:.72rem;color:var(--stone);margin-left:1.55em}

/* 档位色带:T14 最深(藏青金字),往下递浅——不给每行斑马纹叠色,只在这一列做分档强调 */
[data-brand="juris-ivy"] .rk-tier-badge{display:inline-block;min-width:2.6em;text-align:center;font-family:var(--ji-display);font-size:.66rem;font-weight:600;letter-spacing:.04em;padding:.2rem .4rem;border-radius:4px}
[data-brand="juris-ivy"] .rk-tier-t14{background:var(--hub-navy);color:var(--hub-gold)}
[data-brand="juris-ivy"] .rk-tier-t1{background:rgba(168,136,78,.24);color:var(--hub-bronze)}
[data-brand="juris-ivy"] .rk-tier-t2{background:rgba(168,136,78,.13);color:var(--hub-bronze)}
[data-brand="juris-ivy"] .rk-tier-t3{background:rgba(126,105,79,.08);color:var(--stone)}
[data-brand="juris-ivy"] .rk-tier-none{background:transparent;color:var(--hub-hairline);border:1px solid var(--hub-hairline)}

[data-brand="juris-ivy"] .rk-td-num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--ji-display);color:var(--hub-bronze);white-space:nowrap}
[data-brand="juris-ivy"] .rk-td-num a{color:inherit;text-decoration:none;border-bottom:1px solid var(--hub-line-gold);padding-bottom:.05em}
[data-brand="juris-ivy"] .rk-td-num a:hover{color:var(--ink);border-color:var(--ink)}
[data-brand="juris-ivy"] .rk-td-biglaw{font-weight:600;color:var(--ink)}

/* 默认折叠的"更多榜单"列 */
[data-brand="juris-ivy"] .rk-col-more{display:none}
[data-brand="juris-ivy"] .rk-show-more .rk-col-more{display:table-cell}

[data-brand="juris-ivy"] .rk-legend{margin:.9rem 0 0;font-size:.76rem;line-height:1.6;color:var(--stone)}

/* 移动端"表格模式"手动切换按钮:平时不占位,只在窄屏 rk-toolbar 里显现(见响应式区) */
[data-brand="juris-ivy"] .rk-table-controls{display:none}
[data-brand="juris-ivy"] .rk-force-table-btn{font-family:var(--ji-display);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--hub-bronze);background:var(--paper);border:1px solid var(--hub-line-gold);border-radius:999px;padding:.4rem 1rem;cursor:pointer}

/* ---- 响应式 ---- */
@media(max-width:900px){
  [data-brand="juris-ivy"] .hub-focus-grid{grid-template-columns:1fr}
  [data-brand="juris-ivy"] .hub-focus-primary{min-height:15rem}
  [data-brand="juris-ivy"] .hub-gateway-grid{grid-template-columns:1fr}
  [data-brand="juris-ivy"] .hub-daily-card{grid-template-columns:1fr}
  [data-brand="juris-ivy"] .hub-daily-mast{min-height:7.5rem;padding:1.2rem 1rem}
  [data-brand="juris-ivy"] .hub-news-rail{grid-auto-columns:minmax(260px,62%)}
  [data-brand="juris-ivy"] .hub-ranking-desk-inner{grid-template-columns:auto minmax(0,1fr)}
  [data-brand="juris-ivy"] .hub-ranking-direct{grid-column:1/-1}
  [data-brand="juris-ivy"] .hub-ranking-board-list{grid-auto-columns:minmax(245px,46%)}
}
@media(max-width:640px){
  [data-brand="juris-ivy"] .hub-rank-grid{grid-template-columns:1fr}
  [data-brand="juris-ivy"] .hub-archive-grid{grid-template-columns:1fr}
  [data-brand="juris-ivy"] .hub-toc{grid-template-columns:1fr;gap:.5rem;width:min(330px,100%)}
  [data-brand="juris-ivy"] .hub-toc a{padding:.62rem .78rem}
  [data-brand="juris-ivy"] .hub-group-head{gap:.4rem .8rem;padding:.9rem 1.05rem}
  [data-brand="juris-ivy"] .hub-group-count{margin-left:0;flex-basis:100%}
  [data-brand="juris-ivy"] .hub-hero-photo{object-position:center 30%}
  [data-brand="juris-ivy"] .hub-hero-credit{font-size:.56rem;right:1rem;bottom:.7rem}
  [data-brand="juris-ivy"] .hub-daily-photo{object-position:center 34%}
  [data-brand="juris-ivy"] .hub-daily{padding-left:1rem;padding-right:1rem}
  [data-brand="juris-ivy"] .hub-news-rail{grid-auto-columns:minmax(255px,87%)}
  [data-brand="juris-ivy"] .hub-news-card{min-height:14.5rem}
  [data-brand="juris-ivy"] .hub-weekly-editorial{margin-top:clamp(4rem,16vw,5.2rem);padding:2.7rem 0}
  [data-brand="juris-ivy"] .hub-weekly-inner{grid-template-columns:1fr;gap:1rem}
  [data-brand="juris-ivy"] .hub-weekly-inner>.hub-section-index{height:auto;padding:0 0 .7rem;border-right:0;border-bottom:1px solid var(--hub-line-gold);font-size:2.5rem}
  [data-brand="juris-ivy"] .hub-weekly-coming-soon{grid-column:1;grid-template-columns:1fr;margin-top:1.1rem}
  [data-brand="juris-ivy"] .hub-weekly-status-seal{min-height:4.5rem;flex-direction:row;gap:.7rem;border-right:0;border-bottom:1px solid var(--hub-line-gold)}
  [data-brand="juris-ivy"] .hub-weekly-status-seal i{font-size:2.2rem}
  [data-brand="juris-ivy"] .hub-weekly-soon-copy{padding:1.15rem 1rem}
  [data-brand="juris-ivy"] .hub-weekly-coming-soon h3{text-wrap:balance}
  [data-brand="juris-ivy"] .hub-weekly-topics{gap:.35rem}
  [data-brand="juris-ivy"] .hub-ranking-desk{margin-top:clamp(4rem,16vw,5.4rem);padding:2.8rem 0}
  [data-brand="juris-ivy"] .hub-ranking-desk-inner{grid-template-columns:1fr;gap:1rem}
  [data-brand="juris-ivy"] .hub-ranking-desk .hub-section-index{width:100%;padding:0 0 .8rem;border-right:0;border-bottom:1px solid var(--hub-line-gold);font-size:2.5rem}
  [data-brand="juris-ivy"] .hub-ranking-direct{grid-column:1;margin-top:.7rem}
  [data-brand="juris-ivy"] .hub-ranking-direct-head{align-items:center;flex-direction:row}
  [data-brand="juris-ivy"] .hub-ranking-board-list{grid-auto-columns:minmax(240px,87%);padding:.1rem 0 .7rem}
  [data-brand="juris-ivy"] .hub-ranking-direct-foot{align-items:flex-start;flex-direction:column}
  [data-brand="juris-ivy"] .hub-ranking-swipe-hint{margin:.1rem 0 0;text-align:left}

  /* -- 总对照表移动端:默认卡片流(一校一卡),"切换为表格"按钮强制回横滑表格模式 --
     BEST-PRACTICE §1.4:不把桌面表格硬塞进手机;body 本身绝不横向滚动,横滑只发生在
     .rk-table-scroll 自己的容器里(表格模式下)。*/
  [data-brand="juris-ivy"] .rk-masthead{min-height:12rem;align-items:flex-end}
  [data-brand="juris-ivy"] .rk-toolbar{gap:.6rem}
  [data-brand="juris-ivy"] .rk-search{margin-left:0;flex:1 1 100%}
  [data-brand="juris-ivy"] .rk-search input{width:100%;min-width:0}
  [data-brand="juris-ivy"] .rk-table-controls{display:block;margin:0 0 .7rem}

  [data-brand="juris-ivy"] .rk-table-scroll{max-height:none}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table){overflow-x:hidden}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table) .rk-table{min-width:0;display:block}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table) thead{display:none}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table) tbody{display:block}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table) tr{display:block;border-bottom:1px solid var(--hub-hairline);padding:.9rem .95rem}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table) td{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem;padding:.22rem 0;border-bottom:0;background:transparent !important;position:static;box-shadow:none}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table) td::before{content:attr(data-label);font-family:var(--ji-display);font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);flex:0 0 auto}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table) .rk-td-frozen{display:block;padding:0 0 .5rem;margin-bottom:.35rem;border-bottom:1px solid var(--hub-hairline)}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table) .rk-td-frozen::before{content:none}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table) .rk-name-en{margin-left:1.55em}
  [data-brand="juris-ivy"] .rk-table-scroll:not(.rk-force-table) .rk-col-more{display:none !important}
  /* 卡片模式正面只留 4 个数字(BEST-PRACTICE §1.4):校名+档位+US News+ATL+QS+BigLaw,
     其余榜单列即使点了"展开更多榜单"也不在卡片正面出现,要看就切表格模式横滑 */

  [data-brand="juris-ivy"] .rk-table-scroll.rk-force-table{overflow:auto;max-height:min(70vh,700px)}
  [data-brand="juris-ivy"] .rk-table-scroll.rk-force-table .rk-table{min-width:760px}
}

@media(prefers-reduced-motion:reduce){
  [data-brand="juris-ivy"] .hub-news-rail{scroll-behavior:auto}
  [data-brand="juris-ivy"] .hub-news-card,
  [data-brand="juris-ivy"] .hub-weekly-reading,
  [data-brand="juris-ivy"] .hub-toc a,
  [data-brand="juris-ivy"] .hub-rank-gateway-link::after,
  [data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage] [data-stage-index],
  [data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage] [data-stage-heading],
  [data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage] [data-stage-content],
  [data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage] [data-stage-photo]{transition:none}
  [data-brand="juris-ivy"] a.hub-news-card:hover,
  [data-brand="juris-ivy"] a.hub-news-card:focus-visible,
  [data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage]:not(.is-in-view) [data-stage-index],
  [data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage]:not(.is-in-view) [data-stage-heading],
  [data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage]:not(.is-in-view) [data-stage-content],
  [data-brand="juris-ivy"].insights-motion-ready [data-scroll-stage]:not(.is-in-view) [data-stage-photo]{opacity:1;transform:none}
}

/* ---- 对比专页 2026-07-11 改版:动态维度 + 列头校卡 + 更优细标 + 转化行动区 ----
   配套 src/compare-core.js;设计遵守数据展示铁规(干净数字/注脚/tabular/小箭头来源) */
[data-brand="juris-ivy"] .sdb-cmp-sec{margin:1.7rem 0 0}
[data-brand="juris-ivy"] .sdb-cmp-sec-h{font-size:1.28rem;margin:0 0 .6rem}
[data-brand="juris-ivy"] .sdb-cmp-table td{font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .sdb-cmp-table td.num{text-align:right}
[data-brand="juris-ivy"] .sdb-cmp-table th{vertical-align:bottom}
[data-brand="juris-ivy"] .sdb-cmp-head{display:flex;flex-direction:column;gap:.4rem;min-width:9.5rem;padding:.15rem 0}
[data-brand="juris-ivy"] .sdb-cmp-thumb{width:100%;max-width:12rem;aspect-ratio:16/9;object-fit:cover;border-radius:8px;border:1px solid var(--line);filter:saturate(.92)}
[data-brand="juris-ivy"] .sdb-cmp-head a{color:var(--ink);text-decoration:none;font-family:var(--ji-display);font-size:1rem;line-height:1.25}
[data-brand="juris-ivy"] .sdb-cmp-head a:hover{color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-cmp-head small{color:var(--stone);font-weight:400;font-size:.78rem}
[data-brand="juris-ivy"] .sdb-cmp-meta{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
[data-brand="juris-ivy"] .sdb-tier-badge{display:inline-block;font-size:.66rem;letter-spacing:.09em;border:1px solid rgba(168,136,78,.55);color:#7a5f33;background:rgba(168,136,78,.1);border-radius:999px;padding:.08rem .55rem;white-space:nowrap}
[data-brand="juris-ivy"] .sdb-cmp-city{font-size:.74rem;color:var(--stone)}
[data-brand="juris-ivy"] .sdb-cmp-band{display:block;font-size:.72rem;color:var(--stone);font-weight:400}
[data-brand="juris-ivy"] .sdb-cmp-none{color:var(--stone);opacity:.55}
[data-brand="juris-ivy"] .sdb-cmp-table td.best{font-weight:700;color:var(--oxblood-deep,#4a1216)}
[data-brand="juris-ivy"] .sdb-best::before{content:"▲";font-size:.55em;color:#a8884e;margin-right:.3em;vertical-align:.25em;font-style:normal}
[data-brand="juris-ivy"] .sdb-src-arrow{font-size:.72em;color:#a8884e;text-decoration:none;vertical-align:super}
[data-brand="juris-ivy"] .sdb-src-arrow:hover{color:var(--oxblood)}
[data-brand="juris-ivy"] .sdb-cmp-foot{margin-top:1rem;font-size:.8rem;color:var(--stone);line-height:1.7;border-top:1px dashed var(--line);padding-top:.7rem}
/* 转化行动区:对比表下方,居左,primary(brass)/ghost 两级 */
[data-brand="juris-ivy"] .sdb-cmp-actions{margin:2.4rem 0 1rem;padding:1.6rem clamp(1.2rem,3vw,2.1rem);border:1px solid var(--line);border-left:3px solid #a8884e;border-radius:12px;background:#fffdf8}
[data-brand="juris-ivy"] .sdb-cmp-actions h2{font-family:var(--ji-display);font-size:clamp(1.2rem,2.2vw,1.5rem);margin:.2rem 0 .35rem;color:var(--ink)}
[data-brand="juris-ivy"] .sdb-cmp-actions p{margin:0 0 1rem;color:var(--stone);font-size:.93rem;max-width:44em}
[data-brand="juris-ivy"] .sdb-cmp-actions-btns{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:flex-start}
[data-brand="juris-ivy"] .sdb-cmp-actions-btns .sdb-btn-ghost{display:inline-block;margin-top:0;padding:.55rem 1.2rem;font-size:.92rem}
@media(max-width:560px){[data-brand="juris-ivy"] .sdb-cmp-head{min-width:7.5rem}[data-brand="juris-ivy"] .sdb-cmp-actions-btns{flex-direction:column;align-items:stretch}}
[data-brand="juris-ivy"] .sdb-cmp-head-sm{min-width:7rem;gap:.1rem}
[data-brand="juris-ivy"] .sdb-cmp-head-sm a{font-size:.92rem}

/* Rankings redesign styles recovered from the interrupted 2026-07-12 wave. */
/* ============================================================================
   法学院排名板块重做 · rr-* (2026-07-12)
   编辑式对比矩阵 + 单项榜单模板重做。沿用 Insights 既有 hub-* 色板(藏青 #0f2742 /
   古金 #a8884e / 古铜 #7e694f / 象牙 #f4eedf / 象牙纸底 + 衬线 var(--ji-display))。
   预览期追加在 site.css 快照末尾;审过后由指挥官整块搬进 src/site.css 的排名区。
   铁律落地:数值列 tabular-nums + white-space:nowrap(不断词)、右对齐 baseline 对齐;
   手机端 .rr-table-wrap 横滑 + 首列 sticky + 可见滚动提示;body 本身绝不横向滚动。
   ============================================================================ */

[data-brand="juris-ivy"] .rr-main{width:min(1280px,calc(100% - clamp(2rem,8vw,7rem)));margin:0 auto;padding:0 0 clamp(3rem,6vw,5rem)}
[data-brand="juris-ivy"] .rr-eyebrow{display:block;font-family:var(--ji-display);font-size:.72rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--hub-bronze);margin:0 0 .7rem}
[data-brand="juris-ivy"][lang^="zh"] .rr-eyebrow{letter-spacing:.36em}
[data-brand="juris-ivy"] .rr-eyebrow-gold{color:var(--hub-gold)}

/* ---------- 落地页 · 报头 ---------- */
[data-brand="juris-ivy"] .rr-hero{position:relative;overflow:hidden;margin:clamp(1rem,2.5vw,1.6rem) 0 0;padding:clamp(3rem,6.5vw,5rem) clamp(1.6rem,4.5vw,3.4rem) clamp(2.6rem,5vw,3.6rem);border-radius:var(--hub-r-band);color:var(--hub-ivory);background:radial-gradient(130% 150% at 12% 8%,#1b3a5c 0%,var(--hub-navy) 46%,var(--hub-navy-2) 78%,var(--hub-navy-3) 100%);box-shadow:var(--hub-shadow)}
[data-brand="juris-ivy"] .rr-hero-map{position:absolute;inset:0;background:url("/assets/brand/world-map-lite.svg") center/cover no-repeat;opacity:.09;mix-blend-mode:screen;pointer-events:none}
[data-brand="juris-ivy"] .rr-hero-veil{position:absolute;inset:0;background:linear-gradient(150deg,transparent 0%,rgba(8,21,39,.35) 70%,rgba(8,21,39,.6) 100%);pointer-events:none}
[data-brand="juris-ivy"] .rr-hero::after{content:"";position:absolute;inset:12px;border:1px solid rgba(168,136,78,.34);border-radius:calc(var(--hub-r-band) - 8px);pointer-events:none}
[data-brand="juris-ivy"] .rr-hero-in{position:relative;max-width:760px}
[data-brand="juris-ivy"] .rr-hero h1{font-family:var(--ji-display);font-weight:480;font-size:clamp(1.8rem,4vw,3rem);line-height:1.18;margin:0 0 .9rem;color:var(--hub-ivory);text-wrap:balance}
[data-brand="juris-ivy"] .rr-hero-lede{margin:0;max-width:60ch;color:rgba(244,238,223,.82);font-size:clamp(.95rem,1.4vw,1.05rem);line-height:1.72;text-wrap:pretty}
[data-brand="juris-ivy"] .rr-hero-meta{margin:1.5rem 0 0;display:inline-flex;font-family:var(--ji-display);font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--hub-gold);border-top:1px solid rgba(168,136,78,.4);padding-top:.9rem}

/* ---------- 导语 + 跳转 ---------- */
[data-brand="juris-ivy"] .rr-intro{margin:clamp(1.6rem,3.5vw,2.4rem) 0 0}
[data-brand="juris-ivy"] .rr-caveat{margin:0 0 1.4rem;padding:1rem 1.25rem;border-left:3px solid var(--hub-gold);background:var(--hub-ivory);border-radius:0 10px 10px 0;font-size:.86rem;line-height:1.72;color:var(--ink)}
[data-brand="juris-ivy"] .rr-jump{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem .9rem}
[data-brand="juris-ivy"] .rr-search{font-size:.86rem;border:1px solid var(--hub-hairline);border-radius:999px;padding:.5rem 1.15rem;min-width:15rem;background:var(--paper);color:var(--ink)}
[data-brand="juris-ivy"] .rr-search:focus{outline:none;border-color:var(--hub-gold)}
[data-brand="juris-ivy"] .rr-chips{display:flex;flex-wrap:wrap;gap:.45rem}
[data-brand="juris-ivy"] .rr-chip{font-family:var(--ji-display);font-size:.74rem;font-weight:600;letter-spacing:.08em;color:var(--hub-bronze);background:transparent;border:1px solid var(--hub-line-gold);border-radius:999px;padding:.4rem .95rem;text-decoration:none;transition:background var(--hub-t-text),color var(--hub-t-text),border-color var(--hub-t-text)}
[data-brand="juris-ivy"] .rr-chip:hover{background:var(--hub-navy);border-color:var(--hub-navy);color:var(--hub-ivory)}

/* ---------- 地区分区 ---------- */
[data-brand="juris-ivy"] .rr-region{margin:clamp(2.2rem,4.5vw,3.4rem) 0 0;scroll-margin-top:1.5rem}
[data-brand="juris-ivy"] .rr-region-head{display:flex;align-items:center;gap:.9rem;margin:0 0 1.05rem}
[data-brand="juris-ivy"] .rr-region-mark{font-family:var(--ji-display);font-size:clamp(2.2rem,5vw,3.1rem);font-weight:400;line-height:1;color:var(--hub-gold);opacity:.9;width:1.4em;text-align:center;flex:0 0 auto}
[data-brand="juris-ivy"] .rr-region-titles{display:flex;flex-direction:column;gap:.1rem;flex:0 0 auto}
[data-brand="juris-ivy"] .rr-region-cn{font-family:var(--ji-display);font-weight:500;font-size:clamp(1.15rem,2.2vw,1.5rem);letter-spacing:.06em;color:var(--ink);line-height:1.2}
[data-brand="juris-ivy"] .rr-region-en{font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--hub-bronze)}
[data-brand="juris-ivy"] .rr-region-rule{flex:1 1 auto;height:1px;background:linear-gradient(90deg,var(--hub-line-gold),transparent)}

/* ---------- 对比矩阵 · 表格 ---------- */
[data-brand="juris-ivy"] .rr-table-wrap{border:1px solid var(--hub-hairline);border-radius:var(--hub-r-card);background:var(--paper);overflow-x:auto;box-shadow:var(--hub-shadow-soft);-webkit-overflow-scrolling:touch}
[data-brand="juris-ivy"] .rr-table{width:100%;min-width:640px;border-collapse:separate;border-spacing:0;font-size:.9rem}
[data-brand="juris-ivy"] .rr-table thead th{background:var(--hub-navy);color:rgba(244,238,223,.92);font-family:var(--ji-display);font-weight:500;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid var(--hub-gold);padding:0;white-space:nowrap;vertical-align:middle}
[data-brand="juris-ivy"] .rr-table thead th.rr-num-th{position:relative}
[data-brand="juris-ivy"] .rr-sort{width:100%;display:inline-flex;align-items:center;gap:.3rem;background:transparent;border:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;padding:.72rem .85rem;cursor:pointer;justify-content:flex-end;white-space:nowrap}
[data-brand="juris-ivy"] .rr-name .rr-sort,[data-brand="juris-ivy"] .rr-name.rr-th .rr-sort{justify-content:flex-start;text-align:left}
[data-brand="juris-ivy"] th[data-sort-active] .rr-sort::after{content:"";display:inline-block;width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;margin-left:.2rem}
[data-brand="juris-ivy"] th[data-sort-active="asc"] .rr-sort::after{border-bottom:5px solid var(--hub-gold)}
[data-brand="juris-ivy"] th[data-sort-active="desc"] .rr-sort::after{border-top:5px solid var(--hub-gold)}
[data-brand="juris-ivy"] .rr-th-ext{position:absolute;top:50%;right:.25rem;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;color:rgba(244,238,223,.5);text-decoration:none;font-size:.72rem;transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .rr-th-ext:hover{color:var(--hub-gold)}

[data-brand="juris-ivy"] .rr-table tbody td,[data-brand="juris-ivy"] .rr-table tbody th{padding:.6rem .85rem;border-bottom:1px solid rgba(126,105,79,.12);vertical-align:middle;transition:background var(--hub-t-text)}
[data-brand="juris-ivy"] .rr-table tbody tr:nth-child(even) td,[data-brand="juris-ivy"] .rr-table tbody tr:nth-child(even) th{background:rgba(126,105,79,.045)}
[data-brand="juris-ivy"] .rr-table tbody tr:hover td,[data-brand="juris-ivy"] .rr-table tbody tr:hover th{background:rgba(168,136,78,.12)}
[data-brand="juris-ivy"] .rr-table tbody tr:last-child td,[data-brand="juris-ivy"] .rr-table tbody tr:last-child th{border-bottom:0}

/* 首列(校名):横滑时吸附;表头×首列交叉角 z-index 最高 */
[data-brand="juris-ivy"] .rr-name{position:sticky;left:0;z-index:1;text-align:left;background:var(--paper);box-shadow:6px 0 10px -8px rgba(20,15,8,.28);min-width:11.5rem;max-width:15rem}
[data-brand="juris-ivy"] .rr-table thead .rr-name{z-index:3;background:var(--hub-navy)}
[data-brand="juris-ivy"] .rr-table tbody tr:nth-child(even) th.rr-name{background:#f6efe0}
[data-brand="juris-ivy"] .rr-table tbody tr:hover th.rr-name{background:#f2e8d0}
[data-brand="juris-ivy"] .rr-name a{display:flex;flex-direction:column;gap:.08rem;text-decoration:none;color:inherit}
[data-brand="juris-ivy"] .rr-name a:hover .rr-name-cn{color:var(--hub-bronze)}
[data-brand="juris-ivy"] .rr-name-cn{font-weight:600;color:var(--ink);line-height:1.28;transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .rr-name-en{font-size:.68rem;color:var(--stone);line-height:1.3;letter-spacing:.01em}

/* 数值列:右对齐 · 衬线金数字 · tabular · 不断词 */
[data-brand="juris-ivy"] .rr-num{text-align:right;font-family:var(--ji-display);font-variant-numeric:tabular-nums;color:var(--hub-bronze);white-space:nowrap}
[data-brand="juris-ivy"] .rr-num a{color:inherit;text-decoration:none;border-bottom:1px solid var(--hub-line-gold);padding-bottom:.05em;transition:color var(--hub-t-text),border-color var(--hub-t-text)}
[data-brand="juris-ivy"] .rr-num a:hover{color:var(--ink);border-color:var(--ink)}
[data-brand="juris-ivy"] .rr-num-range{font-size:.82em;color:var(--stone)}
[data-brand="juris-ivy"] .rr-dash{color:rgba(126,105,79,.4)}
[data-brand="juris-ivy"] .rr-tui{color:var(--ink);font-weight:500}
[data-brand="juris-ivy"] .rr-tui-amt{font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .rr-tui-tag{margin-left:.25em;font-family:inherit;font-size:.68em;font-weight:400;color:var(--stone);letter-spacing:.02em}
[data-brand="juris-ivy"] .rr-linkcell{text-align:right;white-space:nowrap}
[data-brand="juris-ivy"] .rr-page{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--ji-display);font-size:.76rem;font-weight:600;letter-spacing:.06em;color:var(--hub-bronze);text-decoration:none;transition:color var(--hub-t-text)}
[data-brand="juris-ivy"] .rr-page::after{content:"→";transition:transform var(--hub-t)}
[data-brand="juris-ivy"] .rr-linkcell a.rr-page:hover{color:var(--ink)}
[data-brand="juris-ivy"] .rr-linkcell a.rr-page:hover::after{transform:translateX(4px)}

/* 横滑提示(手机端可见) */
[data-brand="juris-ivy"] .rr-scrollhint{display:none;margin:.55rem 0 0;text-align:center;font-family:var(--ji-display);font-size:.72rem;letter-spacing:.1em;color:var(--hub-bronze);transition:opacity .3s}

/* 图例 */
[data-brand="juris-ivy"] .rr-legend{margin:1.4rem 0 0;padding-top:1rem;border-top:1px solid var(--hub-hairline);font-size:.76rem;line-height:1.7;color:var(--stone)}

/* ---------- 更多榜单目录 ---------- */
[data-brand="juris-ivy"] .rr-more{margin:clamp(2.6rem,5vw,3.8rem) 0 0}
[data-brand="juris-ivy"] .rr-more-head{text-align:center;max-width:60ch;margin:0 auto clamp(1.6rem,3vw,2.2rem)}
[data-brand="juris-ivy"] .rr-more-head .rr-eyebrow{color:var(--hub-bronze)}
[data-brand="juris-ivy"] .rr-more-head h2{font-family:var(--ji-display);font-weight:480;font-size:clamp(1.4rem,2.6vw,1.95rem);letter-spacing:.05em;margin:.2rem 0 .5rem;color:var(--ink)}
[data-brand="juris-ivy"] .rr-more-lede{margin:0;color:var(--stone);font-size:.92rem;line-height:1.7}
[data-brand="juris-ivy"] .rr-more-group{margin:0 0 1.6rem}
[data-brand="juris-ivy"] .rr-more-grouplbl{display:block;font-family:var(--ji-display);font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--hub-bronze);border-bottom:1px solid var(--hub-hairline);padding-bottom:.5rem;margin:0 0 1rem}
[data-brand="juris-ivy"] .rr-more-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:1rem}
[data-brand="juris-ivy"] .rr-more-card{display:flex;flex-direction:column;gap:.5rem;min-height:8.5rem;background:var(--paper);border:1px solid var(--hub-hairline);border-top:3px solid var(--hub-gold);border-radius:var(--hub-r-card);padding:1.3rem 1.4rem;text-decoration:none;color:inherit;transition:transform var(--hub-t),box-shadow var(--hub-t),border-color var(--hub-t)}
[data-brand="juris-ivy"] .rr-more-card:hover{transform:translateY(-4px);box-shadow:var(--hub-shadow-soft);border-top-color:var(--hub-bronze)}
[data-brand="juris-ivy"] .rr-more-kick{font-family:var(--ji-display);font-size:.62rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--hub-bronze)}
[data-brand="juris-ivy"] .rr-more-title{font-family:var(--ji-display);font-weight:500;font-size:1.02rem;line-height:1.36;color:var(--ink)}
[data-brand="juris-ivy"] .rr-more-foot{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;padding-top:.7rem;border-top:1px solid var(--hub-hairline)}
[data-brand="juris-ivy"] .rr-more-n{font-size:.72rem;font-weight:600;letter-spacing:.06em;color:var(--stone)}
[data-brand="juris-ivy"] .rr-more-go{color:var(--hub-bronze);font-weight:700;transition:transform var(--hub-t)}
[data-brand="juris-ivy"] .rr-more-card:hover .rr-more-go{transform:translateX(5px)}

/* ---------- 页脚 ---------- */
[data-brand="juris-ivy"] .rr-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;width:min(1280px,calc(100% - clamp(2rem,8vw,7rem)));margin:clamp(2.5rem,5vw,4rem) auto 0;padding:1.4rem 0;border-top:1px solid var(--hub-hairline);font-family:var(--ji-display);font-size:.74rem;letter-spacing:.08em;color:var(--stone)}
[data-brand="juris-ivy"] .rr-foot-note{color:var(--hub-bronze)}

/* ============================================================================
   单项榜单页(13 页共用模板)
   ============================================================================ */
[data-brand="juris-ivy"] .rr-sub-hero{position:relative;overflow:hidden;margin:clamp(1rem,2.5vw,1.6rem) 0 0;border-radius:var(--hub-r-band);color:var(--hub-ivory);background:linear-gradient(160deg,var(--hub-navy) 0%,var(--hub-navy-2) 70%,var(--hub-navy-3) 100%);box-shadow:var(--hub-shadow-soft)}
[data-brand="juris-ivy"] .rr-grain{position:absolute;inset:0;opacity:.5;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:4px 4px;pointer-events:none}
[data-brand="juris-ivy"] .rr-sub-hero-in{position:relative;max-width:820px;margin:0 auto;padding:clamp(2.4rem,5vw,3.6rem) clamp(1.5rem,4vw,3rem) clamp(2rem,4vw,2.8rem);text-align:center;display:flex;flex-direction:column;align-items:center}
[data-brand="juris-ivy"] .rr-sub-hero .rr-eyebrow{color:var(--hub-gold)}
[data-brand="juris-ivy"] .rr-crumb{margin:0 0 .8rem;display:flex;align-items:baseline;gap:.55rem;font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,238,223,.6)}
[data-brand="juris-ivy"] .rr-crumb a{color:inherit;text-decoration:none}
[data-brand="juris-ivy"] .rr-crumb a:hover{color:var(--hub-gold)}
[data-brand="juris-ivy"] .rr-sub-hero h1{font-family:var(--ji-display);font-weight:480;font-size:clamp(1.5rem,3.2vw,2.35rem);line-height:1.24;margin:0;color:var(--hub-ivory);text-wrap:balance}
[data-brand="juris-ivy"] .rr-sub-meta{margin:.6rem 0 0;color:var(--hub-gold);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
[data-brand="juris-ivy"] .rr-sub-body{max-width:920px;margin:0 auto;padding:clamp(1.8rem,3.5vw,2.6rem) 0 0}

/* 关键事实条 */
[data-brand="juris-ivy"] .rr-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:0 0 1.6rem}
[data-brand="juris-ivy"] .rr-fact{display:flex;flex-direction:column;gap:.3rem;background:var(--paper);border:1px solid var(--hub-hairline);border-radius:var(--hub-r-card);padding:1.1rem 1.25rem}
[data-brand="juris-ivy"] .rr-fact-n{font-family:var(--ji-display);font-weight:500;font-size:1.5rem;line-height:1.1;color:var(--hub-navy);font-variant-numeric:tabular-nums}
[data-brand="juris-ivy"] .rr-fact-txt{font-size:.94rem;line-height:1.35;color:var(--ink)}
[data-brand="juris-ivy"] .rr-fact-l{font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--hub-bronze)}

/* 口径说明 */
[data-brand="juris-ivy"] .rr-note{margin:0 0 1.6rem;padding:1.1rem 1.3rem;border-left:3px solid var(--hub-gold);background:var(--hub-ivory);border-radius:0 12px 12px 0}
[data-brand="juris-ivy"] .rr-note-k{display:block;font-family:var(--ji-display);font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--hub-bronze);margin:0 0 .5rem}
[data-brand="juris-ivy"] .rr-note p{margin:0;font-size:.9rem;line-height:1.75;color:var(--ink)}
[data-brand="juris-ivy"] .rr-empty{margin:0 0 1.4rem;color:var(--stone);font-size:.95rem;line-height:1.7}

/* 榜单表格(名次徽章) */
[data-brand="juris-ivy"] .rr-sub-table{min-width:0;font-size:.94rem}
[data-brand="juris-ivy"] .rr-sub-wrap{overflow-x:visible}
[data-brand="juris-ivy"] .rr-sub-table thead th{padding:.7rem .95rem;text-align:left;letter-spacing:.14em}
[data-brand="juris-ivy"] .rr-sub-th-rank{width:4.5rem;text-align:center !important}
[data-brand="juris-ivy"] .rr-sub-th-rev,[data-brand="juris-ivy"] .rr-sub-th-link{text-align:right !important}
[data-brand="juris-ivy"] .rr-sub-rank{text-align:center;width:4.5rem}
[data-brand="juris-ivy"] .rr-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2em;height:2em;padding:0 .4em;font-family:var(--ji-display);font-weight:600;font-size:.9rem;font-variant-numeric:tabular-nums;color:var(--hub-bronze);background:rgba(126,105,79,.09);border-radius:999px}
[data-brand="juris-ivy"] .rr-badge-g{background:linear-gradient(145deg,#c9a75f,#a8884e);color:#fff8e8;box-shadow:0 2px 6px -2px rgba(168,136,78,.6)}
[data-brand="juris-ivy"] .rr-badge-s{background:linear-gradient(145deg,#cdd0d6,#a9adb6);color:#2b2f36}
[data-brand="juris-ivy"] .rr-badge-b{background:linear-gradient(145deg,#c48b5f,#a56a3f);color:#fff3e8}
[data-brand="juris-ivy"] .rr-sub-name .rr-sub-cn{display:block;font-weight:600;color:var(--ink);line-height:1.3}
[data-brand="juris-ivy"] .rr-sub-name .rr-sub-en{display:block;font-size:.72rem;color:var(--stone);line-height:1.3}
[data-brand="juris-ivy"] .rr-sub-rev{font-family:var(--ji-display);color:var(--ink);font-weight:500}
[data-brand="juris-ivy"] .rr-yoy{margin-left:.35em;font-size:.78em;font-weight:400;color:var(--stone)}
[data-brand="juris-ivy"] .rr-fold{margin:.6rem 0 0}
[data-brand="juris-ivy"] .rr-fold summary{cursor:pointer;list-style:none;font-family:var(--ji-display);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--hub-bronze);font-weight:600;padding:.85rem 0;border-top:1px solid var(--hub-hairline)}
[data-brand="juris-ivy"] .rr-fold summary::-webkit-details-marker{display:none}
[data-brand="juris-ivy"] .rr-fold summary::after{content:" ↓"}
[data-brand="juris-ivy"] .rr-fold[open] summary::after{content:" ↑"}

/* 归属 / 免责 / 返回 */
[data-brand="juris-ivy"] .rr-attrib{margin:1.4rem 0 0;display:flex;flex-wrap:wrap;gap:.3rem .8rem;align-items:baseline;font-size:.82rem;color:var(--stone)}
[data-brand="juris-ivy"] .rr-attrib a{color:var(--hub-bronze);text-decoration:none;border-bottom:1px solid var(--hub-line-gold);padding-bottom:.05em}
[data-brand="juris-ivy"] .rr-attrib a:hover{color:var(--ink);border-color:var(--ink)}
[data-brand="juris-ivy"] .rr-accessed{font-family:var(--ji-display);letter-spacing:.04em}
[data-brand="juris-ivy"] .rr-disc{margin:1rem 0 0;padding-top:.9rem;border-top:1px solid var(--hub-hairline);font-size:.78rem;line-height:1.7;color:var(--stone)}
[data-brand="juris-ivy"] .rr-back{margin:1rem 0 0;font-size:.82rem}
[data-brand="juris-ivy"] .rr-back a{color:var(--hub-bronze);font-weight:600;text-decoration:none}
[data-brand="juris-ivy"] .rr-back a:hover{color:var(--ink)}

/* ============================================================================
   响应式
   ============================================================================ */
@media(max-width:820px){
  [data-brand="juris-ivy"] .rr-facts{grid-template-columns:1fr}
  [data-brand="juris-ivy"] .rr-search{min-width:0;flex:1 1 100%}
}
@media(max-width:700px){
  [data-brand="juris-ivy"] .rr-scrollhint{display:block}
  [data-brand="juris-ivy"] .rr-table-wrap.rr-scrolled .rr-scrollhint{opacity:0}
  [data-brand="juris-ivy"] .rr-region-mark{font-size:2rem}
  [data-brand="juris-ivy"] .rr-name{min-width:9.5rem;max-width:11rem}
  [data-brand="juris-ivy"] .rr-more-grid{grid-template-columns:1fr}
}
@media(max-width:430px){
  [data-brand="juris-ivy"] .rr-hero{padding:2.4rem 1.3rem 2rem}
  [data-brand="juris-ivy"] .rr-hero h1{font-size:1.7rem}
  [data-brand="juris-ivy"] .rr-table{min-width:560px;font-size:.86rem}
  [data-brand="juris-ivy"] .rr-name{min-width:8.5rem;max-width:9.5rem}
  [data-brand="juris-ivy"] .rr-name-en{font-size:.64rem}
}

/* ==========================================================================
   Juris Ivy · AI companion + homepage intelligence band (2026-07-12)
   与洞察/选校库共用的编辑台语法：实景、深墨蒙版、象牙纸卡、古铜金发丝线。
   角色只标记 AI 择校功能；图片未落地时显示抽象的品牌光晕，不显示破图或 emoji。
   ========================================================================== */
[data-brand="juris-ivy"] .ai-companion-portrait,
[data-brand="juris-ivy"] .ai-companion-inline-portrait,
[data-brand="juris-ivy"] .fit-intro-companion{
  position:relative;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  overflow:hidden;
  border:1px solid rgba(168,136,78,.5);
  border-radius:50%;
  background:radial-gradient(circle at 46% 34%,rgba(255,250,238,.96) 0 24%,rgba(168,136,78,.2) 54%,rgba(110,29,36,.15) 100%);
  box-shadow:0 10px 30px rgba(8,21,39,.14),inset 0 0 0 5px rgba(255,253,248,.58);
  animation:ji-companion-breathe 4.8s ease-in-out infinite;
}
[data-brand="juris-ivy"] :is(.ai-companion-portrait,.ai-companion-inline-portrait,.fit-intro-companion) object{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
}
[data-brand="juris-ivy"] .ai-companion-fallback{
  display:block;
  width:42%;
  aspect-ratio:1;
  border-radius:54% 46% 48% 52%;
  background:var(--oxblood);
  box-shadow:0 0 0 5px rgba(168,136,78,.23),0 0 0 9px rgba(110,29,36,.08);
  transform:rotate(-8deg);
}
@keyframes ji-companion-breathe{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-2px) scale(1.018)}
}
[data-brand="juris-ivy"].is-user-scrolling :is(.ai-companion-portrait,.ai-companion-inline-portrait,.fit-intro-companion){animation-play-state:paused}

[data-brand="juris-ivy"] .home-intelligence-band{
  position:relative;
  isolation:isolate;
  width:min(1280px,calc(100% - clamp(2rem,8vw,7rem)));
  margin:clamp(2.4rem,6vw,5rem) auto;
  overflow:hidden;
  border-radius:var(--hub-r-band,22px);
  background:#081527;
  color:#f4eedf;
  box-shadow:var(--hub-shadow,0 28px 70px -34px rgba(8,21,39,.64));
}
[data-brand="juris-ivy"] .home-intelligence-photo,
[data-brand="juris-ivy"] .home-intelligence-veil{position:absolute;inset:0;width:100%;height:100%}
[data-brand="juris-ivy"] .home-intelligence-photo{z-index:-2;object-fit:cover;object-position:center 44%;filter:saturate(.82) contrast(1.04)}
[data-brand="juris-ivy"] .home-intelligence-veil{z-index:-1;background:linear-gradient(118deg,rgba(8,21,39,.94) 0%,rgba(10,30,51,.84) 56%,rgba(8,21,39,.9) 100%)}
[data-brand="juris-ivy"] .home-intelligence-inner{padding:clamp(2rem,5vw,4.2rem) clamp(1.15rem,4vw,3.2rem)}
[data-brand="juris-ivy"] .home-intelligence-head{max-width:46rem;margin:0 auto clamp(1.5rem,3vw,2.3rem);text-align:center}
[data-brand="juris-ivy"] .home-intelligence-kicker,
[data-brand="juris-ivy"] .home-intelligence-index{font-family:var(--ji-display);font-size:.64rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#c2a76e}
[data-brand="juris-ivy"] .home-intelligence-head h2{max-width:19ch;margin:.62rem auto .75rem;color:#f4eedf;font-family:var(--ji-display);font-size:clamp(1.75rem,4vw,3rem);font-weight:480;line-height:1.12;text-wrap:balance}
[data-brand="juris-ivy"] .home-intelligence-head>p:last-child{max-width:62ch;margin:0 auto;color:rgba(244,238,223,.72);font-size:.94rem;line-height:1.72}
[data-brand="juris-ivy"] .home-intelligence-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,calc((100% - 1.7rem) / 3));gap:.85rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-color:rgba(194,167,110,.65) rgba(244,238,223,.1);scrollbar-width:thin;padding:0 0 .72rem}
[data-brand="juris-ivy"] .home-intelligence-card{
  display:flex;
  min-width:0;
  min-height:14.25rem;
  flex-direction:column;
  padding:1.25rem 1.3rem;
  border:1px solid rgba(244,238,223,.2);
  border-radius:var(--hub-r-card,14px);
  background:rgba(8,21,39,.76);
  color:#f4eedf;
  text-decoration:none;
  backdrop-filter:blur(8px);
  transition:transform .28s ease,border-color .28s ease,background .28s ease;
  scroll-snap-align:start;
}
[data-brand="juris-ivy"] .home-intelligence-card:hover,
[data-brand="juris-ivy"] .home-intelligence-card:focus-visible{transform:translateY(-3px);border-color:rgba(194,167,110,.82);background:rgba(15,39,66,.94);outline:0}
[data-brand="juris-ivy"] .home-intelligence-card h3{margin:.72rem 0 .55rem;color:#f4eedf;font-family:var(--ji-display);font-size:1.18rem;font-weight:500;line-height:1.3}
[data-brand="juris-ivy"] .home-intelligence-card p{margin:0;color:rgba(244,238,223,.68);font-size:.84rem;line-height:1.65}
[data-brand="juris-ivy"] .home-intelligence-card strong{margin-top:auto;padding-top:1rem;border-top:1px solid rgba(244,238,223,.14);color:#c2a76e;font-family:var(--ji-display);font-size:.67rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
[data-brand="juris-ivy"] .home-intelligence-card-ai{display:grid;grid-template-columns:3.8rem minmax(0,1fr);gap:1rem;background:linear-gradient(145deg,rgba(168,136,78,.23),rgba(8,21,39,.82));border-color:rgba(194,167,110,.54)}
[data-brand="juris-ivy"] .home-intelligence-card-primary{background:linear-gradient(145deg,rgba(194,167,110,.3),rgba(8,21,39,.86));box-shadow:inset 0 1px rgba(255,255,255,.08),0 18px 42px rgba(4,12,23,.2)}
[data-brand="juris-ivy"] .home-intelligence-card-coming{position:relative;background:linear-gradient(152deg,rgba(244,238,223,.12),rgba(8,21,39,.72))}
[data-brand="juris-ivy"] .home-intelligence-card[aria-disabled="true"]{cursor:default}
[data-brand="juris-ivy"] .home-intelligence-card[aria-disabled="true"]:is(:hover,:focus-visible){transform:none;border-color:rgba(244,238,223,.2);background:linear-gradient(152deg,rgba(244,238,223,.12),rgba(8,21,39,.72))}
[data-brand="juris-ivy"] .home-intelligence-status{align-self:flex-start;margin-top:.85rem;padding:.28rem .58rem;border:1px solid rgba(194,167,110,.5);border-radius:999px;color:#dbc68f;font-size:.61rem;letter-spacing:.12em}
[data-brand="juris-ivy"] .home-ai-mark{display:grid;place-items:center;width:3.8rem;height:3.8rem;align-self:start;border:1px solid rgba(194,167,110,.62);border-radius:50%;color:#c2a76e;font-family:var(--ji-display);font-size:.78rem;letter-spacing:.12em;background:rgba(8,21,39,.5)}
[data-brand="juris-ivy"] .home-intelligence-card-copy{display:flex;min-width:0;flex-direction:column}
[data-brand="juris-ivy"] .home-intelligence-rail-note{margin:.2rem 0 0;color:rgba(244,238,223,.58);font-size:.7rem;letter-spacing:.08em;text-align:right}

@media(max-width:900px){
  [data-brand="juris-ivy"] .home-intelligence-rail{grid-auto-columns:minmax(260px,82%)}
}
@media(max-width:520px){
  [data-brand="juris-ivy"] .home-intelligence-band{width:calc(100% - 1.25rem);margin-block:2rem;border-radius:18px}
  [data-brand="juris-ivy"] .home-intelligence-inner{padding:2.1rem 1rem 1.45rem}
  [data-brand="juris-ivy"] .home-intelligence-rail{grid-auto-columns:minmax(270px,90%)}
  [data-brand="juris-ivy"] .home-intelligence-card{min-height:13.5rem}
  [data-brand="juris-ivy"] .home-intelligence-card-ai{grid-template-columns:3.25rem minmax(0,1fr)}
  [data-brand="juris-ivy"] .home-ai-mark{width:3.25rem;height:3.25rem}
}
@media(prefers-reduced-motion:reduce){
  [data-brand="juris-ivy"] :is(.ai-companion-portrait,.ai-companion-inline-portrait,.fit-intro-companion){animation:none}
  [data-brand="juris-ivy"] .home-intelligence-card{transition:none}
}

/* 首页精选法学院：学校平权、等宽等高横滑；桌面完整展示三张，手机展示一张并露出下一张。
   数据库退出深色浏览区，单独回到米黄呼吸区，和“精选浏览”承担不同任务。 */
[data-brand="juris-ivy"] .school-guides{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-top:0;
  background:#0b1d31;
  padding-top:clamp(4.4rem,8vw,7rem);
  padding-bottom:clamp(4.2rem,7vw,6.4rem);
  text-align:left;
}
[data-brand="juris-ivy"] .school-guides::before,
[data-brand="juris-ivy"] .school-guides::after{content:"";position:absolute;inset:0;z-index:-2}
[data-brand="juris-ivy"] .school-guides::before{z-index:-3;background:url("/assets/schools/responsive/hero-desktop/oxford.webp") center 38%/cover no-repeat;filter:saturate(.82)}
[data-brand="juris-ivy"] .school-guides::after{z-index:-1;background:linear-gradient(112deg,rgba(8,21,39,.97) 0%,rgba(8,21,39,.84) 52%,rgba(8,21,39,.94) 100%)}
[data-brand="juris-ivy"] .sg-background{position:absolute;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
[data-brand="juris-ivy"] .sg-background-photo{object-position:center 38%;filter:saturate(.82) contrast(1.02)}
[data-brand="juris-ivy"] .school-guides .sg-heading{max-width:1180px;margin:0 auto clamp(2rem,4vw,3rem);text-align:center}
[data-brand="juris-ivy"] .school-guides>.eyebrow{color:#c2a76e}
[data-brand="juris-ivy"] .school-guides .sg-heading>.eyebrow{color:#c2a76e}
[data-brand="juris-ivy"] .school-guides .sg-title{max-width:20ch;margin:.38rem auto .8rem;color:#f4eedf;font-size:clamp(2rem,4vw,3.2rem);font-weight:480;line-height:1.08;text-wrap:balance}
[data-brand="juris-ivy"] .school-guides .sg-intro{max-width:62ch;margin:0 auto;color:rgba(244,238,223,.72);font-size:.96rem;line-height:1.75}
[data-brand="juris-ivy"] .sg-carousel{display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;gap:.8rem;align-items:center;max-width:1180px;margin:0 auto}
[data-brand="juris-ivy"] .sg-rail{--sg-gap:1.25rem;display:flex;gap:var(--sg-gap);min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-inline:contain}
[data-brand="juris-ivy"] .sg-rail::-webkit-scrollbar{display:none}
[data-brand="juris-ivy"] .sg-card{display:flex;flex:0 0 calc((100% - (var(--sg-gap) * 2)) / 3);min-width:0;min-height:0;flex-direction:column;overflow:hidden;border:1px solid rgba(244,238,223,.24);border-radius:1rem;background:rgba(255,253,248,.97);box-shadow:0 20px 48px rgba(4,12,23,.24);scroll-snap-align:start;scroll-snap-stop:always;transition:transform .32s cubic-bezier(.2,.7,.2,1),border-color .24s ease,box-shadow .32s ease}
[data-brand="juris-ivy"] .sg-card:is(:hover,:focus-within){transform:translateY(-5px);border-color:rgba(220,198,148,.74);box-shadow:0 28px 62px rgba(4,12,23,.34)}
[data-brand="juris-ivy"] .sg-card-photo{display:block;overflow:hidden;aspect-ratio:16/10;background:#17293a}
[data-brand="juris-ivy"] .sg-card-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .3s ease}
[data-brand="juris-ivy"] .sg-card-placeholder{display:grid;width:100%;height:100%;place-content:center;place-items:center;background:radial-gradient(circle at 50% 42%,rgba(236,217,176,.18),transparent 38%),linear-gradient(145deg,#26394c,#101f31);color:#f3ead7;letter-spacing:.14em;text-transform:uppercase}
[data-brand="juris-ivy"] .sg-card-placeholder b{font-family:var(--ji-display);font-size:clamp(3.2rem,7vw,5.4rem);font-weight:420;line-height:.8}
[data-brand="juris-ivy"] .sg-card-placeholder small{margin-top:.75rem;color:#cdb77e;font-size:.6rem;letter-spacing:.42em}
[data-brand="juris-ivy"] .sg-card:is(:hover,:focus-within) .sg-card-photo img{transform:scale(1.035);filter:saturate(1.06)}
[data-brand="juris-ivy"] .sg-card-photo:focus-visible{outline:2px solid #dcc694;outline-offset:-3px}
[data-brand="juris-ivy"] .sg-card-copy{display:flex;min-height:0;flex:0 0 auto;flex-direction:column;padding:1rem 1.15rem 1.1rem}
[data-brand="juris-ivy"] .sg-card-copy small{min-height:2.5em;color:#766d66;font-size:.68rem;line-height:1.45;letter-spacing:.06em;text-transform:uppercase}
[data-brand="juris-ivy"] .sg-card-copy h3{display:-webkit-box;min-height:2.44em;margin:.38rem 0 .3rem;overflow:hidden;color:#1b1714;font-family:var(--ji-display);font-size:clamp(1.16rem,2vw,1.42rem);font-weight:480;line-height:1.22;-webkit-box-orient:vertical;-webkit-line-clamp:2}
[data-brand="juris-ivy"] .sg-card-copy p{display:-webkit-box;height:3.05em;margin:0;overflow:hidden;color:#6f6863;font-size:.78rem;line-height:1.525;-webkit-box-orient:vertical;-webkit-line-clamp:2}
[data-brand="juris-ivy"] .sg-card-copy>a{margin-top:.72rem;padding-top:.72rem;border-top:1px solid rgba(27,23,20,.13);color:#7b1f28;font-size:.78rem;letter-spacing:.04em;text-decoration:none;transition:color .2s ease,transform .2s ease}
[data-brand="juris-ivy"] .sg-card-copy>a:hover,
[data-brand="juris-ivy"] .sg-card-copy>a:focus-visible{color:#5f161e;transform:translateX(3px);text-decoration:underline;text-underline-offset:.25em}
[data-brand="juris-ivy"] .sg-arrow{display:grid;place-items:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid rgba(220,198,148,.62);border-radius:50%;background:rgba(8,21,39,.72);color:#f6efe0;font:400 1.45rem/1 var(--ji-display);cursor:pointer;transition:background .2s ease,border-color .2s ease,opacity .2s ease}
[data-brand="juris-ivy"] .sg-arrow:hover,
[data-brand="juris-ivy"] .sg-arrow:focus-visible{border-color:#dcc694;background:#132d49;outline:0}
[data-brand="juris-ivy"] .sg-arrow:disabled{opacity:.28;cursor:default}
[data-brand="juris-ivy"] .sg-directory-actions{display:flex;max-width:1180px;margin:clamp(1.8rem,3vw,2.5rem) auto 0;padding-top:clamp(1.25rem,2.5vw,1.8rem);align-items:center;justify-content:center;flex-direction:column;gap:1rem;border-top:1px solid rgba(220,198,148,.34);text-align:center}
[data-brand="juris-ivy"] .sg-directory-actions>p{margin:0;color:rgba(244,238,223,.67);font-family:var(--ji-display);font-size:.72rem;letter-spacing:.1em}
[data-brand="juris-ivy"] .sg-directory-actions>div{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap}
[data-brand="juris-ivy"] .sg-directory-actions .button{border-color:#c2a76e;background:#c2a76e;color:#111d29;box-shadow:0 12px 28px rgba(4,12,23,.22)}
[data-brand="juris-ivy"] .sg-directory-actions .button:hover,
[data-brand="juris-ivy"] .sg-directory-actions .button:focus-visible{border-color:#dcc694;background:#dcc694}
[data-brand="juris-ivy"] .sg-compare-link{color:rgba(244,238,223,.78);font-family:var(--ji-display);font-size:.75rem;letter-spacing:.06em;text-underline-offset:.24em}
[data-brand="juris-ivy"] .sg-compare-link:hover,
[data-brand="juris-ivy"] .sg-compare-link:focus-visible{color:#dcc694}
[data-brand="juris-ivy"] .sg-map-link{display:inline-flex;min-height:2.35rem;padding:.38rem .72rem;align-items:center;gap:.48rem;border:1px solid rgba(220,198,148,.42);border-radius:999px;background:rgba(8,21,39,.52);color:rgba(244,238,223,.82);font-family:var(--ji-display);font-size:.72rem;letter-spacing:.06em;text-decoration:none;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease}
[data-brand="juris-ivy"] .sg-map-link:hover,
[data-brand="juris-ivy"] .sg-map-link:focus-visible{border-color:#dcc694;background:rgba(19,45,73,.9);color:#fff7e5;transform:translateY(-1px);outline:0}
[data-brand="juris-ivy"] .sg-map-orbit{position:relative;display:grid;width:1.35rem;height:1.35rem;place-items:center}
[data-brand="juris-ivy"] .sg-map-orbit svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.25}
[data-brand="juris-ivy"] .sg-map-orbit i{position:absolute;top:.02rem;right:.02rem;width:.3rem;height:.3rem;border-radius:50%;background:#dcc694;box-shadow:0 0 0 0 rgba(220,198,148,.55);animation:sgMapPing 2.2s ease-out infinite}
@keyframes sgMapPing{0%,38%{box-shadow:0 0 0 0 rgba(220,198,148,.55)}72%,100%{box-shadow:0 0 0 .38rem rgba(220,198,148,0)}}
[data-brand="juris-ivy"] .home-db-section{padding:clamp(5.2rem,9vw,8rem) max(clamp(1rem,4vw,3rem),calc((100% - 1180px)/2));background:linear-gradient(180deg,#f8f2e7 0%,#fbf8f1 100%)}
[data-brand="juris-ivy"] .home-db-section .home-db-band{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(2rem,5vw,5rem);align-items:end;margin:0;padding:0 0 clamp(1.5rem,3vw,2.2rem);border:0;border-top:1px solid rgba(110,29,36,.4);border-bottom:1px solid rgba(27,23,20,.16);border-radius:0;background:transparent;box-shadow:none}
[data-brand="juris-ivy"] .home-db-section .home-db-band h2{max-width:22ch;margin:.75rem 0 .8rem;font-size:clamp(1.8rem,4vw,3rem);line-height:1.15}
[data-brand="juris-ivy"] .home-db-section .home-db-band p{font-size:.94rem;line-height:1.75}
[data-brand="juris-ivy"] .home-db-section .home-db-actions{justify-content:flex-end;max-width:25rem}
@media(max-width:820px){
  [data-brand="juris-ivy"] .sg-carousel{grid-template-columns:2.5rem minmax(0,1fr) 2.5rem;gap:.55rem}
  [data-brand="juris-ivy"] .sg-card{flex-basis:calc((100% - var(--sg-gap)) / 2)}
  [data-brand="juris-ivy"] .sg-arrow{width:2.5rem;height:2.5rem}
  [data-brand="juris-ivy"] .sg-directory-actions{align-items:center;flex-direction:column}
  [data-brand="juris-ivy"] .sg-directory-actions>div{justify-content:center}
  [data-brand="juris-ivy"] .home-db-section .home-db-band{grid-template-columns:1fr;align-items:start}
  [data-brand="juris-ivy"] .home-db-section .home-db-actions{justify-content:flex-start;margin-left:0}
}
@media(max-width:560px){
  [data-brand="juris-ivy"] .school-guides{padding:3.8rem 0 4.2rem}
  [data-brand="juris-ivy"] .school-guides .sg-heading{padding-inline:1rem}
  [data-brand="juris-ivy"] .school-guides .sg-heading{margin-bottom:1.65rem}
  [data-brand="juris-ivy"] .sg-carousel{display:block;max-width:none}
  [data-brand="juris-ivy"] .sg-rail{--sg-gap:.85rem;padding:0 1rem .5rem;scroll-padding-inline:1rem}
  [data-brand="juris-ivy"] .sg-card{flex-basis:86%;min-height:0}
  [data-brand="juris-ivy"] .sg-card-copy{min-height:0}
  [data-brand="juris-ivy"] .sg-arrow{display:none}
  [data-brand="juris-ivy"] .sg-directory-actions{margin-inline:1rem}
  [data-brand="juris-ivy"] .sg-directory-actions>div{display:grid;width:100%;justify-items:center}
  [data-brand="juris-ivy"] .sg-directory-actions .button{width:100%;text-align:center}
  [data-brand="juris-ivy"] .home-db-section{padding:4.5rem 1rem}
  [data-brand="juris-ivy"] .home-db-section .home-db-actions{display:grid;width:100%;max-width:none;grid-template-columns:1fr}
  [data-brand="juris-ivy"] .home-db-section .home-db-actions .button{width:100%;text-align:center}
}
@media(prefers-reduced-motion:reduce){
  [data-brand="juris-ivy"] .sg-rail{scroll-behavior:auto}
  [data-brand="juris-ivy"] .sg-card,
  [data-brand="juris-ivy"] .sg-card-photo img,
  [data-brand="juris-ivy"] .sg-card-copy>a,
  [data-brand="juris-ivy"] .sg-arrow{transition:none}
  [data-brand="juris-ivy"] .sg-card:is(:hover,:focus-within),
  [data-brand="juris-ivy"] .sg-card:is(:hover,:focus-within) .sg-card-photo img,
  [data-brand="juris-ivy"] .sg-card-copy>a:is(:hover,:focus-visible){transform:none}
}

/* 2026-07-12 · Homepage launch cover
   Modern Eastern ink-wash atmosphere with an editorial, evidence-first hierarchy. */
[data-brand="juris-ivy"] body.landing-page main{overflow:clip}
[data-brand="juris-ivy"] .landing-page .masthead{
  position:relative;
  display:flex;
  width:min(1380px,calc(100% - clamp(1.5rem,4vw,4rem)));
  min-height:clamp(34rem,70vh,46rem);
  margin:clamp(.75rem,2vw,1.5rem) auto 0;
  padding:0;
  overflow:hidden;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:clamp(1.15rem,2.6vw,2.35rem) clamp(1.15rem,2.6vw,2.35rem) clamp(2.3rem,5vw,4.2rem) clamp(1.35rem,3vw,2.8rem);
  background:#0b1720;
  box-shadow:0 22px 48px rgba(12,23,31,.12),0 0 32px rgba(247,243,234,.32) inset;
  text-align:center;
  isolation:isolate;
}
[data-brand="juris-ivy"] .landing-page .masthead::before{
  content:"";
  position:absolute;
  inset:-1rem;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(ellipse 19% 11% at 3% 100%,rgba(248,244,236,.88) 0 37%,transparent 72%),
    radial-gradient(ellipse 15% 9% at 31% 102%,rgba(248,244,236,.68) 0 32%,transparent 74%),
    radial-gradient(ellipse 23% 12% at 71% 101%,rgba(248,244,236,.56) 0 32%,transparent 74%),
    radial-gradient(ellipse 15% 10% at 98% 99%,rgba(248,244,236,.82) 0 36%,transparent 72%),
    linear-gradient(180deg,transparent 86%,rgba(248,244,236,.28) 100%);
  filter:blur(7px);
  opacity:.74;
}
[data-brand="juris-ivy"] .landing-page .masthead .hero-bg{
  inset:0;
  width:100%;
  height:100%;
  opacity:.9;
  object-fit:cover;
  object-position:center 48%;
  filter:saturate(.7) contrast(1.04);
  -webkit-mask-image:none;
  mask-image:none;
  transform:scale(1.015);
}
[data-brand="juris-ivy"] .landing-page .masthead-veil{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,rgba(5,15,23,.94) 0%,rgba(7,18,27,.78) 42%,rgba(8,19,28,.2) 76%),
    linear-gradient(0deg,rgba(6,16,24,.92) 0%,rgba(6,16,24,.1) 58%,rgba(6,16,24,.35) 100%);
}
[data-brand="juris-ivy"] .landing-page .masthead::after{
  content:"";
  position:absolute;
  inset:auto -8% -42% 38%;
  z-index:2;
  height:72%;
  pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(226,213,181,.14),transparent 66%);
  filter:blur(16px);
}
[data-brand="juris-ivy"] .landing-page .masthead-copy{
  position:relative;
  z-index:3;
  width:min(64rem,100%);
  margin:0 auto;
  padding:clamp(4.5rem,9vw,8.5rem) clamp(2rem,6vw,5.5rem) clamp(3.5rem,6vw,5.25rem);
  text-align:center;
}
[data-brand="juris-ivy"] .landing-page .masthead .eyebrow{
  margin-bottom:clamp(1rem,2vw,1.5rem);
  color:#d8bf83;
  letter-spacing:.2em;
}
[data-brand="juris-ivy"] .landing-page .masthead-title{
  max-width:17ch;
  margin:0 auto clamp(1.25rem,2vw,1.75rem);
  color:#f8f3e8;
  font-size:clamp(3rem,6.2vw,6.3rem);
  font-weight:430;
  line-height:.98;
  letter-spacing:0;
  text-wrap:balance;
  text-shadow:0 2px 28px rgba(0,0,0,.24);
}
[data-brand="juris-ivy"] .landing-page .masthead .lede{
  max-width:50rem;
  margin:0 auto;
  color:rgba(248,243,232,.8);
  font-size:clamp(1rem,1.35vw,1.2rem);
  line-height:1.75;
  text-wrap:pretty;
}
[data-brand="juris-ivy"] .landing-page .masthead .hero-actions{
  display:flex;
  gap:.75rem;
  margin-top:clamp(1.65rem,3vw,2.5rem);
  flex-wrap:wrap;
  justify-content:center;
}
[data-brand="juris-ivy"] .landing-page .masthead .button{
  position:relative;
  overflow:hidden;
  min-height:3.15rem;
  padding:.84rem 1.35rem;
  border-color:#d5b66d;
  border-radius:999px;
  background:#d5b66d;
  color:#18140d;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
  transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,border-color .22s ease,color .22s ease;
}
[data-brand="juris-ivy"] .landing-page .masthead .button::after{
  content:"";
  position:absolute;
  top:-70%;
  bottom:-70%;
  left:-42%;
  width:26%;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.44),transparent);
  transform:skewX(-18deg) translateX(-230%);
  transition:transform .58s cubic-bezier(.2,.7,.2,1);
}
[data-brand="juris-ivy"] .landing-page .masthead .button:hover,
[data-brand="juris-ivy"] .landing-page .masthead .button:focus-visible{transform:translateY(-2px);border-color:#ead59f;background:#dfc27b;box-shadow:0 15px 34px rgba(0,0,0,.24)}
[data-brand="juris-ivy"] .landing-page .masthead .button:hover::after,
[data-brand="juris-ivy"] .landing-page .masthead .button:focus-visible::after{transform:skewX(-18deg) translateX(610%)}
[data-brand="juris-ivy"] .landing-page .masthead .button:active{transform:translateY(0);box-shadow:0 8px 20px rgba(0,0,0,.18)}
[data-brand="juris-ivy"] .landing-page .masthead .button.secondary{
  border-color:rgba(248,243,232,.48);
  background:rgba(7,18,27,.32);
  color:#f8f3e8;
  box-shadow:none;
  backdrop-filter:blur(8px);
}
[data-brand="juris-ivy"] .landing-page .masthead .button.secondary:hover,
[data-brand="juris-ivy"] .landing-page .masthead .button.secondary:focus-visible{border-color:#d8bf83;background:rgba(7,18,27,.55);color:#fff8e8;box-shadow:0 12px 28px rgba(0,0,0,.18)}
@keyframes mastheadReveal{0%{opacity:0;transform:translateY(18px)}100%{opacity:1;transform:none}}
[data-brand="juris-ivy"] .landing-page .masthead-reveal{animation:mastheadReveal .72s cubic-bezier(.22,.8,.28,1) both}
[data-brand="juris-ivy"] .landing-page .masthead-copy>.masthead-reveal:nth-child(1){animation-delay:.08s}
[data-brand="juris-ivy"] .landing-page .masthead-copy>.masthead-reveal:nth-child(2){animation-delay:.2s}
[data-brand="juris-ivy"] .landing-page .masthead-copy>.masthead-reveal:nth-child(3){animation-delay:.34s}
[data-brand="juris-ivy"] .landing-page .masthead-copy>.masthead-reveal:nth-child(4){animation-delay:.48s}
[data-brand="juris-ivy"] .landing-page .masthead-folio{
  position:absolute;
  top:clamp(2rem,4vw,3.5rem);
  right:clamp(1.75rem,4vw,3.75rem);
  z-index:3;
  display:grid;
  min-height:9rem;
  justify-items:center;
  color:rgba(248,243,232,.68);
  font-family:var(--ji-body);
  font-size:.62rem;
  letter-spacing:.22em;
  writing-mode:vertical-rl;
}
[data-brand="juris-ivy"] .landing-page .masthead-folio i{
  width:1px;
  min-height:2.8rem;
  margin:.7rem 0;
  background:rgba(213,182,109,.68);
}
[data-brand="juris-ivy"] .landing-page .masthead-folio b{color:#d8bf83;font-weight:600}

[data-brand="juris-ivy"] .landing-page .stats-strip{
  position:relative;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0;
  width:min(1180px,calc(100% - clamp(3rem,12vw,9rem)));
  margin:0 auto;
  padding:clamp(2.1rem,4vw,3rem) 0 1.2rem;
  border-top:0;
  border-bottom:1px solid rgba(168,136,78,.55);
}
[data-brand="juris-ivy"] .landing-page .stat{
  display:flex;
  flex-direction:column;
  min-height:6.9rem;
  padding:0 clamp(.85rem,2vw,1.45rem);
  align-items:center;
  justify-content:center;
  border-left:1px solid rgba(34,28,22,.15);
  text-align:center;
}
[data-brand="juris-ivy"] .landing-page .stat:first-child{padding-left:0;border-left:0}
[data-brand="juris-ivy"] .landing-page .stat-num{
  font-size:clamp(2.15rem,4vw,3.6rem);
  line-height:1;
  white-space:nowrap;
}
[data-brand="juris-ivy"] .landing-page .stat-scholarship .stat-num{
  font-size:clamp(2.15rem,3.15vw,2.8rem);
  letter-spacing:0;
}
[data-brand="juris-ivy"] .landing-page .stat-num>span{
  margin-left:.12em;
  font-family:var(--ji-body);
  font-size:.34em;
  font-weight:600;
  letter-spacing:.08em;
}
[data-brand="juris-ivy"] .landing-page .stat-label{
  max-width:15ch;
  font-size:.67rem;
  line-height:1.55;
  text-align:center;
}
[data-brand="juris-ivy"] .landing-page .record-school-row{
  grid-column:1/-1;
  display:block;
  margin-top:.35rem;
  padding-top:1.15rem;
  border-top:1px solid rgba(34,28,22,.15);
}
[data-brand="juris-ivy"] .landing-page .record-school-kicker{
  color:var(--oxblood);
  font-family:"Times New Roman",Times,"Noto Serif SC",serif;
  font-size:.69rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  white-space:nowrap;
}
[data-brand="juris-ivy"] .landing-page .record-school-list{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.55rem;
  margin:.75rem 0 0;
  padding:0;
  list-style:none;
  color:var(--stone);
  font-size:.75rem;
  line-height:1.55;
}
[data-brand="juris-ivy"] .landing-page .record-school-list li{
  display:grid;
  min-width:0;
  min-height:6.4rem;
  padding:.55rem .55rem .5rem;
  place-items:center;
  border:1px solid rgba(34,28,22,.11);
  border-radius:.45rem;
  background:rgba(255,253,248,.62);
  white-space:nowrap;
}
[data-brand="juris-ivy"] .landing-page .record-school-logo-list img{
  display:block;
  width:100%;
  height:3.8rem;
  object-fit:contain;
  filter:saturate(.88) contrast(.96);
}
[data-brand="juris-ivy"] .landing-page .record-school-logo-list span{
  color:#574f48;
  font-size:.68rem;
  letter-spacing:.035em;
}
[data-brand="juris-ivy"] .landing-page .stats-source{
  grid-column:1/-1;
  margin:.85rem 0 0;
  color:rgba(74,67,61,.72);
  font-size:.66rem;
  letter-spacing:.06em;
  text-align:right;
}

[data-brand="juris-ivy"] .landing-page .docket{
  grid-template-columns:minmax(22rem,.94fr) minmax(0,1.06fr);
  width:min(1180px,calc(100% - clamp(3rem,12vw,9rem)));
  margin:clamp(3.75rem,6vw,5.5rem) auto clamp(3.25rem,5vw,4.5rem);
  border-top:0;
  column-gap:clamp(2.75rem,6vw,5.5rem);
}
[data-brand="juris-ivy"] .landing-page .docket-overview{grid-column:1;min-width:0}
[data-brand="juris-ivy"] .landing-page .docket-services{grid-column:2;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));min-width:0}
[data-brand="juris-ivy"] .landing-page .docket-heading{
  align-self:start;
  padding-top:.35rem;
  position:static;
}
[data-brand="juris-ivy"] .landing-page .docket-heading .eyebrow{margin-bottom:1.1rem}
[data-brand="juris-ivy"] .landing-page .docket-heading h2{
  max-width:22ch;
  margin:0 0 1rem;
  color:var(--ink);
  font-family:var(--ji-display);
  font-size:clamp(2rem,3.5vw,3.4rem);
  font-weight:450;
  line-height:1.08;
  text-wrap:balance;
  word-break:keep-all;
}
[data-brand="juris-ivy"] .landing-page .docket-heading>p:last-child{
  max-width:43ch;
  margin:0;
  color:var(--stone);
  line-height:1.7;
}
[data-brand="juris-ivy"] .landing-page .docket-principles{align-self:start;margin-top:clamp(1.25rem,2.2vw,1.8rem);border-top:1px solid rgba(34,28,22,.18)}
[data-brand="juris-ivy"] .landing-page .docket-principle{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.85rem;padding:1rem 0;border-bottom:1px solid rgba(34,28,22,.18)}
[data-brand="juris-ivy"] .landing-page .docket-principle>span{padding-top:.18rem;color:#a27627;font-family:var(--ji-display);font-size:.68rem;letter-spacing:.08em}
[data-brand="juris-ivy"] .landing-page .docket-principle h3{margin:0 0 .35rem;color:var(--ink);font-family:var(--ji-display);font-size:1rem;font-weight:520;line-height:1.3}
[data-brand="juris-ivy"] .landing-page .docket-principle p{margin:0;color:var(--stone);font-size:.78rem;line-height:1.65}
[data-brand="juris-ivy"] .landing-page .docket-item{
  grid-template-columns:3rem minmax(0,1fr);
  gap:1rem;
  min-height:0;
  padding:clamp(1.25rem,2.2vw,1.7rem) 0;
  border-top:1px solid rgba(34,28,22,.18);
  border-bottom:0;
}
[data-brand="juris-ivy"] .landing-page .docket-item:last-child{border-bottom:1px solid rgba(34,28,22,.18)}
[data-brand="juris-ivy"] .landing-page .docket-body{display:grid;min-width:0}
[data-brand="juris-ivy"] .landing-page .docket-item h2{
  grid-column:auto;
  margin:0 0 .6rem;
  font-size:clamp(1.35rem,2vw,1.7rem);
}
[data-brand="juris-ivy"] .landing-page .docket-item p{
  grid-column:auto;
  max-width:60ch;
  margin:0;
  font-size:.94rem;
  line-height:1.75;
}
[data-brand="juris-ivy"] .landing-page .docket-note{
  margin-top:1rem;
  color:var(--oxblood);
  font-size:.65rem;
  font-weight:650;
  letter-spacing:.12em;
  text-transform:uppercase;
}
[data-brand="juris-ivy"] .landing-page .roman{padding-top:.08rem;color:#a27627;font-size:1rem}

@media(max-width:900px){
  [data-brand="juris-ivy"] .landing-page .masthead-copy{width:min(44rem,88%)}
  [data-brand="juris-ivy"] .landing-page .docket{column-gap:2.5rem}
}
@media(max-width:680px){
  [data-brand="juris-ivy"] .landing-page .masthead{
    width:calc(100% - 1rem);
    min-height:39rem;
    margin-top:.5rem;
  }
  [data-brand="juris-ivy"] .landing-page .masthead .hero-bg{object-position:60% center;opacity:.78}
  [data-brand="juris-ivy"] .landing-page .masthead-veil{
    background:linear-gradient(0deg,rgba(5,15,23,.98) 0%,rgba(6,17,26,.86) 52%,rgba(6,17,26,.22) 100%);
  }
  [data-brand="juris-ivy"] .landing-page .masthead-copy{
    width:100%;
    padding:8rem 1.4rem 2.1rem;
  }
  [data-brand="juris-ivy"] .landing-page .masthead-title{max-width:12ch;font-size:clamp(2.45rem,12vw,4rem)}
  [data-brand="juris-ivy"] .landing-page .masthead .lede{font-size:.95rem;line-height:1.68}
  [data-brand="juris-ivy"] .landing-page .masthead-folio{top:1.5rem;right:1.2rem;min-height:6.5rem}
  [data-brand="juris-ivy"] .landing-page .masthead .hero-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
  [data-brand="juris-ivy"] .landing-page .masthead .button{display:grid;min-width:0;padding:.76rem .65rem;place-items:center;font-size:.76rem;text-align:center}
  [data-brand="juris-ivy"] .landing-page .stats-strip{
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:calc(100% - 2rem);
    padding-top:2rem;
  }
  [data-brand="juris-ivy"] .landing-page .stat{
    min-height:5.7rem;
    padding:0 .8rem 1.15rem;
    border-bottom:1px solid rgba(34,28,22,.15);
  }
  [data-brand="juris-ivy"] .landing-page .stat-scholarship .stat-label{max-width:none}
  [data-brand="juris-ivy"] .landing-page .record-school-row{margin-top:0;padding-top:1.2rem}
  [data-brand="juris-ivy"] .landing-page .record-school-list{grid-template-columns:repeat(12,minmax(8rem,38vw));overflow-x:auto;padding-bottom:.45rem;scroll-snap-type:x mandatory;scrollbar-width:thin}
  [data-brand="juris-ivy"] .landing-page .record-school-list li{scroll-snap-align:start}
  [data-brand="juris-ivy"] .landing-page .stats-source{text-align:left;line-height:1.5}
  [data-brand="juris-ivy"] .landing-page .docket{
    grid-template-columns:1fr;
    width:calc(100% - 2rem);
    margin:3.75rem auto 3.5rem;
  }
  [data-brand="juris-ivy"] .landing-page .docket-overview,
  [data-brand="juris-ivy"] .landing-page .docket-services{grid-column:1}
  [data-brand="juris-ivy"] .landing-page .docket-services{grid-template-rows:none}
  [data-brand="juris-ivy"] .landing-page .docket-heading{position:static;grid-row:auto;margin-bottom:1.5rem}
  [data-brand="juris-ivy"] .landing-page .docket-heading h2{max-width:22ch}
  [data-brand="juris-ivy"] .landing-page .docket-item{grid-template-columns:2.2rem minmax(0,1fr)}
  [data-brand="juris-ivy"] .landing-page .docket-principles{margin-top:1.2rem;margin-bottom:1.25rem}
}
@media(prefers-reduced-motion:reduce){
  [data-brand="juris-ivy"] .landing-page .masthead .hero-bg{transform:none}
  [data-brand="juris-ivy"] .landing-page .masthead-reveal{animation:none}
  [data-brand="juris-ivy"] .landing-page .masthead .button,
  [data-brand="juris-ivy"] .landing-page .masthead .button::after{transition:none}
  [data-brand="juris-ivy"] .landing-page .masthead .button:is(:hover,:focus-visible,:active){transform:none}
  [data-brand="juris-ivy"] .landing-page .masthead .button::after{display:none}
  [data-brand="juris-ivy"] .sg-map-orbit i{animation:none}
}

/* Online Draft mirror -----------------------------------------------------
   site.js only mounts this marker on the authenticated review hostname.
   It is intentionally compact and fixed so the current status remains clear
   on long school pages without becoming part of the public page composition. */
.review-mode-badge{
  position:fixed;
  z-index:1200;
  top:max(.7rem,env(safe-area-inset-top));
  right:max(.7rem,env(safe-area-inset-right));
  width:min(31rem,calc(100vw - 1.4rem));
  font-family:var(--ji-sans,Arial,sans-serif);
  font-size:.7rem;
  line-height:1;
  letter-spacing:.035em;
}
.review-mode-toolbar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.45rem;
  min-height:2.35rem;
  padding:.38rem .45rem;
  border:1px solid rgba(255,248,234,.68);
  border-radius:999px;
  background:rgba(88,18,29,.96);
  box-shadow:0 .55rem 1.5rem rgba(23,12,14,.2);
  color:#fffaf0;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.review-mode-badge__state{
  display:grid;
  min-height:1.55rem;
  padding:0 .58rem;
  place-items:center;
  border-radius:999px;
  background:#fff8ea;
  color:#741c29;
  font-family:"Times New Roman",Times,serif;
  font-size:.67rem;
  font-weight:700;
  letter-spacing:.14em;
}
.review-mode-badge__copy{white-space:nowrap}
.review-mode-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:1.75rem;
  padding:0 .62rem;
  border:1px solid rgba(255,248,234,.34);
  border-radius:999px;
  background:rgba(255,248,234,.08);
  color:#fffaf0;
  font:inherit;
  font-weight:650;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
}
.review-mode-action:hover,.review-mode-action:focus-visible{border-color:#fff8ea;background:rgba(255,248,234,.18);outline:none}
.review-mode-panel{
  width:min(28rem,calc(100vw - 1.4rem));
  max-height:min(31rem,calc(100vh - 5.2rem));
  margin:.55rem 0 0 auto;
  padding:1rem;
  overflow:auto;
  border:1px solid rgba(116,28,41,.2);
  border-radius:18px;
  background:rgba(255,253,248,.98);
  box-shadow:0 1.2rem 3rem rgba(23,12,14,.22);
  color:#241b18;
  line-height:1.45;
  letter-spacing:0;
}
.review-mode-panel[hidden]{display:none}
.review-mode-panel__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.65rem;border-bottom:1px solid rgba(116,28,41,.14)}
.review-mode-panel__head strong{font-family:var(--ji-display,Georgia,serif);font-size:1rem;color:#741c29}
.review-mode-panel__head small,.review-mode-panel__summary,.review-mode-panel__status{color:#6a615c}
.review-mode-panel__summary,.review-mode-panel__status{margin:.7rem 0;font-size:.76rem;line-height:1.65}
.review-mode-preview-list{display:grid;gap:.42rem;margin:.75rem 0;padding:0;list-style:none}
.review-mode-preview-list li{display:grid;gap:.4rem;padding:.65rem .7rem;border:1px solid rgba(116,28,41,.12);border-radius:10px;background:#fff}
.review-mode-preview-list li.is-reviewed{border-color:rgba(48,104,72,.28);background:#f2f7f1}
.review-mode-preview-list a,.review-mode-full-site{color:#741c29;font-weight:650;text-decoration:none}
.review-mode-preview-list p{margin:0;color:#6a615c;font-size:.66rem;line-height:1.55}
.review-mode-preview-meta,.review-mode-preview-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.review-mode-preview-meta span{display:inline-flex;padding:.15rem .45rem;border-radius:999px;background:#f3e9e5;color:#741c29;font-size:.56rem;font-weight:700;letter-spacing:.06em}
.review-mode-preview-meta small{color:#7b726c;font-size:.58rem}
.review-mode-preview-actions code{max-width:15rem;overflow:hidden;color:#8a817b;font-size:.56rem;text-overflow:ellipsis;white-space:nowrap}
.review-mode-preview-actions button{min-height:1.7rem;padding:0 .55rem;border:1px solid rgba(116,28,41,.18);border-radius:999px;background:#fff;color:#741c29;font:600 .58rem/1 var(--ji-sans,Arial,sans-serif);cursor:pointer}
.review-mode-preview-list li.is-reviewed .review-mode-preview-actions button{border-color:rgba(48,104,72,.24);color:#306848}
.review-mode-full-site{display:flex;min-height:2.35rem;align-items:center;justify-content:center;margin-top:.7rem;border-radius:999px;background:#741c29;color:#fff8ea}
@media(max-width:640px){
  .review-mode-badge{
    top:max(.45rem,env(safe-area-inset-top));
    right:max(.45rem,env(safe-area-inset-right));
    width:calc(100vw - .9rem);
  }
  .review-mode-toolbar{min-height:2rem;padding:.28rem .35rem}
  .review-mode-badge__state{min-height:1.45rem;padding:0 .5rem}
  .review-mode-badge__copy{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .review-mode-panel{width:100%;max-height:calc(100vh - 4.3rem)}
  .review-mode-action{min-height:2rem}
}
