/* ============================================================
   SFM 卓越元素解码 · 中文会客厅 V3
   UI Polish — Apple-inspired warmth & restraint
   ============================================================ */

/* --- Design Tokens --- */
:root {
  /* Palette */
  --bg:       #faf8f3;
  --bg-warm:  #f7f3ec;
  --ink:      #1d1b16;
  --ink-soft: #3a362e;
  --muted:    #7a7468;
  --muted-lt: #a39e94;
  --line:     #e8e2d8;
  --line-lt:  #f0ebe3;
  --gold:     #a07c2e;
  --gold-lt:  #c9a84e;
  --green:    #6b7f5e;
  --green-lt: #8fa07e;
  --card:     #ffffff;
  --card-alt: #fdfbf7;

  /* Surfaces */
  --glass:    rgba(255,253,247,.78);
  --glass-b:  rgba(255,253,247,.92);

  /* Shadows — layered, Apple-style */
  --sh-sm:    0 1px 3px rgba(28,24,16,.04), 0 1px 2px rgba(28,24,16,.03);
  --sh-md:    0 4px 14px rgba(28,24,16,.06), 0 2px 6px rgba(28,24,16,.03);
  --sh-lg:    0 12px 40px rgba(28,24,16,.08), 0 4px 12px rgba(28,24,16,.04);
  --sh-xl:    0 24px 64px rgba(28,24,16,.10), 0 8px 20px rgba(28,24,16,.05);

  /* Radii */
  --r-sm:  10px;
  --r-md:  16px;
  --r-lg:  22px;
  --r-xl:  28px;
  --r-pill: 999px;

  /* Layout */
  --max: 1120px;
  --gutter: 48px;

  /* Transitions */
  --ease: cubic-bezier(.25,.1,.25,1);
  --t-fast: .18s var(--ease);
  --t-med:  .32s var(--ease);
  --t-slow: .48s var(--ease);
}

/* --- Reset & Base --- */
*, *::before, *::after { box-sizing: border-box; margin: 0; }

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  background: var(--bg);
  color: var(--ink-soft);
  font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", Georgia, "Times New Roman", serif;
  font-size: 17px;
  line-height: 1.78;
  overflow-x: hidden;
}

/* Subtle top gradient glow */
body::before {
  content: '';
  position: fixed;
  top: -120px; left: -80px;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(160,124,46,.07) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
::selection { background: rgba(160,124,46,.15); }

/* --- Layout --- */
.wrap {
  width: min(var(--max), calc(100% - var(--gutter)));
  margin: 0 auto;
  position: relative;
}

/* --- Topbar / Navigation --- */
.topbar {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--glass-b);
  backdrop-filter: blur(24px) saturate(1.6);
  -webkit-backdrop-filter: blur(24px) saturate(1.6);
  border-bottom: 1px solid var(--line-lt);
  transition: background var(--t-med);
}

.nav {
  min-height: 68px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.brand {
  display: flex;
  gap: 12px;
  align-items: center;
  font-weight: 800;
  font-size: 15px;
  letter-spacing: .01em;
  color: var(--ink);
  transition: opacity var(--t-fast);
}
.brand:hover { opacity: .75; }

.mark {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: conic-gradient(from 135deg, var(--gold), var(--gold-lt), var(--green), var(--green-lt), var(--gold));
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(160,124,46,.18);
}

.brand small {
  display: block;
  color: var(--muted-lt);
  font-size: 10.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  margin-top: 1px;
}

.links {
  display: flex;
  gap: 4px;
  align-items: center;
}

.nav-main {
  padding: 8px 14px;
  border-radius: var(--r-pill);
  font-weight: 700;
  font-size: 14px;
  color: var(--ink-soft);
  letter-spacing: .01em;
  transition: background var(--t-fast), color var(--t-fast);
}
.nav-main:hover {
  background: rgba(160,124,46,.08);
  color: var(--gold);
}

.drop { position: relative; }

.menu {
  position: absolute;
  right: 0; top: calc(100% + 6px);
  width: 260px;
  background: var(--card);
  border: 1px solid var(--line-lt);
  border-radius: var(--r-lg);
  box-shadow: var(--sh-lg);
  padding: 10px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px) scale(.98);
  transition: opacity var(--t-fast), transform var(--t-fast), visibility var(--t-fast);
}
.drop:hover .menu,
.drop:focus-within .menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}
.menu b {
  display: block;
  padding: 8px 12px 6px;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted-lt);
  font-weight: 700;
}
.menu a {
  display: block;
  padding: 9px 12px;
  border-radius: var(--r-sm);
  font-weight: 700;
  font-size: 14px;
  transition: background var(--t-fast);
}
.menu a:hover { background: var(--bg-warm); }

.mobile-guide { display: none; }

/* --- Hero --- */
.hero {
  padding: 100px 0 64px;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 52px;
  align-items: center;
}

.eyebrow, .kicker {
  font-size: 11.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 800;
}

h1 {
  font-size: clamp(38px, 5.6vw, 68px);
  line-height: 1.06;
  margin: 14px 0 22px;
  letter-spacing: -.04em;
  color: var(--ink);
  font-weight: 900;
}
h1 span {
  display: block;
  color: var(--gold);
}

.lead {
  font-size: 19px;
  color: var(--muted);
  max-width: 680px;
  line-height: 1.72;
}

/* --- Buttons --- */
.btn-row, .cta-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 26px;
}

.btn {
  display: inline-flex;
  align-items: center;
  padding: 11px 20px;
  border-radius: var(--r-pill);
  border: 1px solid var(--line);
  background: var(--card);
  font-weight: 800;
  font-size: 14px;
  letter-spacing: .01em;
  color: var(--ink-soft);
  transition: all var(--t-fast);
  cursor: pointer;
  white-space: nowrap;
}
.btn:hover {
  border-color: var(--gold);
  color: var(--gold);
  box-shadow: var(--sh-sm);
  transform: translateY(-1px);
}

.btn.primary {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.btn.primary:hover {
  background: #2e2a22;
  box-shadow: var(--sh-md);
  transform: translateY(-1px);
}

/* --- Section & Headings --- */
section { padding: 64px 0; }

.section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 28px;
  margin-bottom: 28px;
}

.section-head h2 {
  font-size: clamp(28px, 3.8vw, 44px);
  line-height: 1.12;
  margin: 6px 0 0;
  letter-spacing: -.02em;
  color: var(--ink);
}

.section-head p {
  color: var(--muted);
  max-width: 400px;
  line-height: 1.7;
}

h2 {
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.15;
  letter-spacing: -.02em;
  color: var(--ink);
}

h3 {
  font-size: 21px;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: var(--ink);
}

/* --- Grids --- */
.grid { display: grid; gap: 18px; }
.two  { grid-template-columns: repeat(2, 1fr); }
.three{ grid-template-columns: repeat(3, 1fr); }
.four { grid-template-columns: repeat(4, 1fr); }

/* --- Cards --- */
.card, .panel, .article {
  background: var(--card);
  border: 1px solid var(--line-lt);
  border-radius: var(--r-xl);
  padding: 28px;
  box-shadow: var(--sh-sm);
  transition: box-shadow var(--t-med), transform var(--t-med);
}

.panel {
  box-shadow: var(--sh-md);
}

a.card {
  transition: box-shadow var(--t-med), transform var(--t-med), border-color var(--t-med);
}
a.card:hover {
  box-shadow: var(--sh-lg);
  transform: translateY(-3px);
  border-color: var(--line);
}

.card h3 {
  font-size: 22px;
  margin: 0 0 10px;
  line-height: 1.22;
}

.card p, .article p {
  color: var(--muted);
  line-height: 1.72;
}

.more {
  font-weight: 800;
  font-size: 14px;
  color: var(--gold);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap var(--t-fast);
}
.more:hover { gap: 8px; }

.num {
  font-size: 12px;
  color: var(--gold);
  font-weight: 900;
  letter-spacing: .14em;
}

/* --- Breadcrumb --- */
.breadcrumb {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 20px 0 0;
  color: var(--muted-lt);
  font-size: 13px;
}
.breadcrumb a {
  color: var(--gold);
  font-weight: 700;
  transition: opacity var(--t-fast);
}
.breadcrumb a:hover { opacity: .7; }

/* --- Page Hero --- */
.page-hero {
  padding: 64px 0 40px;
  border-bottom: 1px solid var(--line-lt);
}
.page-hero h1 {
  font-size: clamp(32px, 4.5vw, 52px);
}

/* --- Museum Card (hero aside) --- */
.museum-card {
  padding: 32px;
}
.museum-card h3 {
  font-size: 26px;
  margin: 8px 0 14px;
}
.museum-card p {
  color: var(--muted);
  line-height: 1.82;
}
.museum-card b {
  color: var(--ink);
}

/* --- Flow Steps (courses page) --- */
.flow { display: grid; gap: 14px; }

.step {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 16px;
  background: var(--card);
  border: 1px solid var(--line-lt);
  border-radius: var(--r-lg);
  padding: 22px;
  transition: box-shadow var(--t-med), transform var(--t-med);
}
.step:hover {
  box-shadow: var(--sh-md);
  transform: translateX(4px);
}

.dot {
  width: 42px; height: 42px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--ink);
  color: #fff;
  font-weight: 900;
  font-size: 14px;
  letter-spacing: .02em;
}

/* --- Article Grid & Cards --- */
.article-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 20px;
}

.article-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px;
  border: 1px solid var(--line-lt);
  border-radius: var(--r-lg);
  background: var(--card);
  box-shadow: var(--sh-sm);
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--t-med), transform var(--t-med), border-color var(--t-med);
}
.article-card:hover {
  box-shadow: var(--sh-lg);
  transform: translateY(-3px);
  border-color: var(--line);
}
.article-card strong {
  font-size: 1.02rem;
  color: var(--ink);
  line-height: 1.4;
}
.article-card small {
  color: var(--muted);
  line-height: 1.7;
  font-size: 14px;
}

.tag {
  width: max-content;
  border-radius: var(--r-pill);
  background: rgba(160,124,46,.08);
  color: var(--gold);
  padding: 3px 10px;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .06em;
}

/* --- Route Grid & Cards (library) --- */
.route-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 20px;
}

.route-card {
  display: grid;
  gap: 8px;
  padding: 22px;
  border: 1px solid var(--line-lt);
  border-radius: var(--r-lg);
  background: var(--card-alt);
  box-shadow: var(--sh-sm);
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--t-med), transform var(--t-med), border-color var(--t-med);
}
.route-card:hover {
  box-shadow: var(--sh-lg);
  transform: translateY(-3px);
  border-color: var(--line);
}
.route-card strong { font-size: 1.02rem; color: var(--ink); }
.route-card span  { color: var(--muted); line-height: 1.7; font-size: 14px; }

/* --- Return / CTA Section --- */
.return, .return-card {
  background: linear-gradient(135deg, #faf6ee, #f2f4ed);
  border: 1px solid var(--line-lt);
  border-radius: var(--r-xl);
  padding: 32px;
}
.return h2, .return-card h2 {
  margin-bottom: 8px;
}
.return p, .return-card p {
  color: var(--muted);
  margin-bottom: 4px;
}

/* --- Warm Panel --- */
.warm {
  background: linear-gradient(135deg, rgba(250,246,238,.96), rgba(255,255,255,.90));
}

/* --- Content / Article Reading --- */
.content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  gap: 32px;
  align-items: start;
}

.article { padding: 36px; }

.article h2 {
  font-size: 30px;
  margin: 28px 0 12px;
  padding-top: 8px;
}

.article h3 {
  font-size: 22px;
  margin: 24px 0 10px;
}

.article p {
  color: var(--ink-soft);
  line-height: 1.82;
  margin-bottom: 14px;
}

.article ul, .article ol {
  margin: 8px 0 16px 20px;
  color: var(--ink-soft);
  line-height: 1.82;
}

.article li { margin-bottom: 4px; }

.article .quote-box,
.article .practice-box {
  padding: 20px 24px;
  border-radius: var(--r-lg);
  background: rgba(160,124,46,.06);
  border: 1px solid rgba(160,124,46,.12);
  margin: 22px 0;
  color: var(--ink-soft);
  line-height: 1.82;
}
.article .practice-box {
  background: rgba(255,255,255,.85);
  border-color: var(--line);
}

.article .next-read {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}
.article .next-read a {
  display: block;
  padding: 18px;
  border-radius: var(--r-md);
  background: var(--card);
  border: 1px solid var(--line-lt);
  text-decoration: none;
  color: inherit;
  font-weight: 700;
  font-size: 14px;
  transition: box-shadow var(--t-med), transform var(--t-med);
}
.article .next-read a:hover {
  box-shadow: var(--sh-md);
  transform: translateY(-2px);
}

.article picture img,
.article figure img {
  max-width: 100%;
  border-radius: var(--r-md);
  border: 1px solid var(--line-lt);
}

.article figure { margin: 28px 0; }

.article figcaption {
  color: var(--muted-lt);
  font-size: .88rem;
  text-align: center;
  margin-top: 10px;
}

/* Code cards inside articles */
.article pre.code-card {
  background: #f5f2ec;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 18px 20px;
  overflow-x: auto;
  font-size: 14px;
  line-height: 1.7;
  margin: 18px 0;
}
.article pre.code-card code {
  font-family: "SF Mono", "Fira Code", "Source Code Pro", monospace;
  color: var(--ink-soft);
}

/* --- Side / TOC --- */
.side {
  position: sticky;
  top: 96px;
  display: grid;
  gap: 14px;
}

.toc {
  padding: 18px;
  background: var(--card);
  border: 1px solid var(--line-lt);
  border-radius: var(--r-md);
  box-shadow: var(--sh-sm);
}
.toc h3 {
  font-size: 13px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted-lt);
  margin-bottom: 10px;
}
.toc a {
  display: block;
  padding: 7px 0;
  border-bottom: 1px solid var(--line-lt);
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.55;
  text-decoration: none;
  transition: color var(--t-fast);
}
.toc a:last-child { border-bottom: none; }
.toc a:hover { color: var(--gold); }

.note {
  font-size: 13px;
  color: var(--muted);
  background: rgba(160,124,46,.05);
  border: 1px solid rgba(160,124,46,.1);
  border-radius: var(--r-md);
  padding: 14px;
  line-height: 1.72;
}

/* --- Site Map / Map Zone --- */
.map-zone {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 20px;
  background: var(--card);
  border: 1px solid var(--line-lt);
  border-radius: var(--r-xl);
  padding: 26px;
  box-shadow: var(--sh-sm);
  margin-bottom: 16px;
}
.map-zone h2 { font-size: 26px; margin: 4px 0 10px; }
.map-zone p  { color: var(--muted); }

.map-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.map-links a, .list-link {
  display: flex;
  justify-content: space-between;
  border: 1px solid var(--line-lt);
  background: var(--card-alt);
  border-radius: var(--r-md);
  padding: 12px 14px;
  font-weight: 750;
  font-size: 14px;
  transition: all var(--t-fast);
}
.map-links a:hover, .list-link:hover {
  border-color: var(--gold);
  color: var(--gold);
  box-shadow: var(--sh-sm);
}

/* --- Terms --- */
.term {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 14px;
}

/* --- Host Care Panel --- */
.host-care {
  padding: 36px;
}
.host-care .lead {
  font-size: 17px;
}

/* --- Library Page --- */
.library-wrap { padding: 56px 0 80px; }
.library-wrap > section { width: 100%; }
.library-wrap [id] { scroll-margin-top: 100px; }
.library-wrap .panel { margin-top: 24px; }
.library-wrap .return-card { margin-top: 24px; }
.library-hero { padding: 36px 0 32px; }

/* --- Credentials / Proof --- */
.trust-list { display: grid; gap: 12px; margin-top: 20px; }
.trust-list div {
  padding: 18px;
  border-radius: var(--r-lg);
  background: var(--card);
  border: 1px solid var(--line-lt);
  box-shadow: var(--sh-sm);
}
.trust-list b { display: block; color: var(--gold); margin-bottom: 6px; }
.trust-list span { color: var(--muted); line-height: 1.75; }

.credential-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.credential-card {
  padding: 24px;
  border-radius: var(--r-lg);
  background: var(--card);
  border: 1px solid var(--line-lt);
  box-shadow: var(--sh-sm);
  transition: box-shadow var(--t-med), transform var(--t-med);
}
.credential-card:hover {
  box-shadow: var(--sh-md);
  transform: translateY(-2px);
}
.credential-card span {
  display: grid;
  place-items: center;
  width: 40px; height: 40px;
  border-radius: var(--r-sm);
  background: rgba(160,124,46,.08);
  color: var(--gold);
  font-weight: 900;
  margin-bottom: 14px;
}
.credential-card h3 { margin: 0 0 8px; }
.credential-card p  { color: var(--muted); line-height: 1.75; }

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

.proof-card {
  margin: 0;
  padding: 20px;
  border-radius: var(--r-xl);
  background: var(--card);
  border: 1px solid var(--line-lt);
  box-shadow: var(--sh-sm);
}
.proof-card img {
  width: 100%;
  border-radius: var(--r-md);
  border: 1px solid var(--line-lt);
  background: var(--bg-warm);
}
.proof-card figcaption {
  display: grid; gap: 4px; margin-top: 14px;
}
.proof-card figcaption strong { color: var(--ink); }
.proof-card figcaption span  { color: var(--muted); font-size: .9rem; }

.hero-proof {
  margin: 0;
  padding: 24px;
  border-radius: var(--r-xl);
  background: linear-gradient(135deg, rgba(255,255,255,.90), rgba(248,245,239,.96));
  border: 1px solid var(--line-lt);
  box-shadow: var(--sh-md);
}
.hero-proof img {
  display: block;
  width: min(820px, 100%);
  margin: 0 auto;
  border-radius: var(--r-lg);
  border: 1px solid var(--line-lt);
  box-shadow: var(--sh-lg);
  background: var(--bg-warm);
}
.hero-proof figcaption {
  display: grid; gap: 5px; text-align: center; margin-top: 16px;
}
.hero-proof figcaption strong { font-size: 1.02rem; color: var(--ink); }
.hero-proof figcaption span  { color: var(--muted); }

.soft-note {
  margin-top: 20px;
  padding: 18px 20px;
  border-radius: var(--r-lg);
  background: rgba(160,124,46,.06);
  color: var(--muted);
  border: 1px solid rgba(160,124,46,.1);
  line-height: 1.75;
}

.source-panel {
  padding: 30px;
  border-radius: var(--r-xl);
  background: linear-gradient(135deg, rgba(255,255,255,.86), rgba(248,245,239,.94));
  border: 1px solid var(--line-lt);
}

.source-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 20px;
}
.source-grid a {
  display: grid; gap: 8px;
  padding: 20px;
  border-radius: var(--r-lg);
  background: var(--card);
  border: 1px solid var(--line-lt);
  text-decoration: none; color: inherit;
  transition: box-shadow var(--t-med), transform var(--t-med);
}
.source-grid a:hover {
  box-shadow: var(--sh-md);
  transform: translateY(-2px);
}
.source-grid span { color: var(--muted); line-height: 1.68; }

.boundary-box {
  padding: 32px;
  border-radius: var(--r-xl);
  background: rgba(160,124,46,.04);
  border: 1px solid rgba(160,124,46,.12);
}
.boundary-box h2 { color: #7a4e14; }
.boundary-box p  { color: #6b5a3d; line-height: 1.85; }

/* --- Tables --- */
.table-wrap {
  overflow-x: auto;
  margin: 22px 0;
  border: 1px solid var(--line-lt);
  border-radius: var(--r-lg);
  background: var(--card);
  box-shadow: var(--sh-sm);
}

table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.68; }
th, td { padding: 12px 16px; border-bottom: 1px solid var(--line-lt); vertical-align: top; text-align: left; }
th {
  background: rgba(160,124,46,.06);
  color: var(--ink);
  font-weight: 700;
  white-space: nowrap;
  font-size: 13px;
  letter-spacing: .04em;
}
tr:last-child td { border-bottom: none; }
td:first-child { white-space: nowrap; color: var(--muted); }

/* --- Footer --- */
.footer {
  padding: 36px 0;
  border-top: 1px solid var(--line-lt);
  color: var(--muted-lt);
  font-size: 13.5px;
}

.footer-grid {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 900px) {
  :root { --gutter: 32px; }

  .links { display: none; }
  .mobile-guide { display: inline-flex; }
  .hero-grid,
  .two, .three, .four,
  .content, .map-zone,
  .term,
  .route-grid { grid-template-columns: 1fr; }
  .map-links   { grid-template-columns: 1fr; }
  .section-head { display: block; }
  .hero { padding: 56px 0 40px; }
  .side { position: static; }
  .brand small { display: none; }
  h1 { font-size: 38px; }
  .lead { font-size: 17px; }
  .article-grid { grid-template-columns: 1fr; }
  .credential-grid, .proof-grid, .source-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  :root { --gutter: 24px; }
  section { padding: 44px 0; }
  .hero { padding: 40px 0 28px; }
  .page-hero { padding: 40px 0 28px; }
  .library-wrap { padding: 28px 0 48px; }
  .library-hero { padding: 20px 0 22px; }
  .library-wrap [id] { scroll-margin-top: 140px; }
  .article .next-read { grid-template-columns: 1fr; }
  .nav { min-height: 56px; }
  .article { padding: 24px; }
  .btn-row, .cta-row { gap: 8px; }
  .btn { padding: 10px 16px; font-size: 13px; }
  .step { grid-template-columns: 44px 1fr; padding: 18px; }
}

/* ============================================================
   Print
   ============================================================ */
@media print {
  .topbar, .mobile-guide, .toc, .side, .footer { display: none; }
  body::before { display: none; }
  body { background: #fff; color: #000; }
  .panel, .card, .article { box-shadow: none; border: 1px solid #ddd; }
}

/* ============================================================
   Mobile-first Experience Layer — 学员手机端浏览优化
   ============================================================ */
:root{
  --bottom-nav-h: 72px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:16px;top:12px;width:auto;height:auto;z-index:9999;background:var(--ink);color:#fff;padding:10px 14px;border-radius:999px}
.mobile-bottom-nav{display:none}
.mobile-quick{display:none}

@media(max-width:900px){
  body{padding-bottom:calc(var(--bottom-nav-h) + var(--safe-bottom));font-size:16.5px;line-height:1.78}
  body::before{width:420px;height:420px;top:-160px;left:-160px;opacity:.9}
  .wrap{width:min(100% - 28px,var(--max))}
  .topbar{top:0;background:rgba(250,248,243,.94)}
  .nav{min-height:58px}
  .brand{font-size:14px;min-width:0;gap:9px}
  .brand span:last-child{max-width:calc(100vw - 150px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mark{width:30px;height:30px}
  .mobile-guide{display:inline-flex;min-height:40px;align-items:center;padding:9px 13px;font-size:13px}

  .hero{padding:42px 0 30px}
  .page-hero{padding:34px 0 26px}
  h1{font-size:clamp(34px,10vw,42px);line-height:1.12;letter-spacing:-.03em;margin:12px 0 16px}
  h2{font-size:clamp(25px,7vw,34px)}
  h3{font-size:20px}
  .lead{font-size:17px;line-height:1.75;max-width:none}
  section{padding:38px 0}
  .section-head{margin-bottom:18px}
  .section-head p{max-width:none;margin-top:8px}

  .btn-row,.cta-row{display:grid;grid-template-columns:1fr;gap:10px;margin-top:20px}
  .btn{min-height:46px;justify-content:center;padding:11px 16px;font-size:14px;white-space:normal;text-align:center;line-height:1.35}
  .hero .btn-row,.page-hero .btn-row,.hero .cta-row,.page-hero .cta-row{grid-template-columns:1fr}

  .card,.panel,.article,.return,.return-card{border-radius:22px;padding:20px;box-shadow:var(--sh-sm)}
  a.card:hover,.article-card:hover,.route-card:hover,.step:hover{transform:none;box-shadow:var(--sh-sm)}
  .grid{gap:12px}
  .card h3{font-size:20px}
  .card p{font-size:15.5px}

  .article-grid,.route-grid,.credential-grid,.proof-grid,.source-grid,.map-links{grid-template-columns:1fr;gap:12px}
  .article-card,.route-card{min-height:92px;padding:18px;border-radius:20px}
  .article-card strong,.route-card strong{font-size:16.5px}
  .article-card small,.route-card span{font-size:14px}
  .tag{font-size:12px;padding:4px 9px}

  .content{grid-template-columns:1fr;gap:18px}
  .article{padding:22px 18px;border-radius:22px}
  .article h2{font-size:24px;line-height:1.25;margin:28px 0 12px;scroll-margin-top:82px}
  .article h3{font-size:19px;line-height:1.35;margin:22px 0 10px}
  .article p{font-size:16.5px;line-height:1.9;margin-bottom:14px;color:var(--ink-soft)}
  .article ul,.article ol{margin-left:18px;line-height:1.9;font-size:16.2px}
  .article li{margin-bottom:8px}
  .article .quote-box,.article .practice-box{padding:16px;border-radius:18px;margin:18px 0;font-size:16px}
  .article .next-read{grid-template-columns:1fr}
  .article .next-read a{min-height:54px;display:flex;align-items:center}
  .article pre.code-card{font-size:13px;padding:14px;border-radius:16px}

  .side{position:static;display:block}
  .side .toc{display:none}
  .note{font-size:14px;line-height:1.75;margin-top:12px}

  .breadcrumb{font-size:12px;line-height:1.6;margin-top:10px;max-height:3.4em;overflow:hidden}
  .eyebrow,.kicker{font-size:11px;letter-spacing:.16em;line-height:1.6}

  .flow{gap:12px}
  .step{grid-template-columns:44px 1fr;gap:12px;padding:16px;border-radius:20px}
  .dot{width:38px;height:38px;font-size:13px}
  .step p{font-size:15.5px}

  .table-wrap{border-radius:18px;margin:18px -2px;box-shadow:none}
  table{font-size:13.5px;min-width:620px}
  th,td{padding:10px 12px}

  .footer{padding:28px 0 calc(28px + var(--safe-bottom));font-size:12.5px;text-align:center}
  .footer-grid{justify-content:center}

  .mobile-bottom-nav{
    position:fixed;left:0;right:0;bottom:0;z-index:200;display:grid;
    grid-template-columns:repeat(5,1fr);gap:0;
    min-height:calc(var(--bottom-nav-h) + var(--safe-bottom));
    padding:7px 8px calc(7px + var(--safe-bottom));
    background:rgba(255,253,247,.94);
    border-top:1px solid var(--line-lt);
    backdrop-filter:blur(22px) saturate(1.45);
    -webkit-backdrop-filter:blur(22px) saturate(1.45);
    box-shadow:0 -8px 28px rgba(28,24,16,.06)
  }
  .mobile-bottom-nav a{
    min-height:56px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    color:var(--muted);font-size:11px;font-weight:800;line-height:1.1;letter-spacing:.01em
  }
  .mobile-bottom-nav a::before{font-size:18px;line-height:1}
  .mobile-bottom-nav a:nth-child(1)::before{content:'厅'}
  .mobile-bottom-nav a:nth-child(2)::before{content:'课'}
  .mobile-bottom-nav a:nth-child(3)::before{content:'藏'}
  .mobile-bottom-nav a:nth-child(4)::before{content:'词'}
  .mobile-bottom-nav a:nth-child(5)::before{content:'图'}
  .mobile-bottom-nav a:hover,.mobile-bottom-nav a:focus{background:rgba(160,124,46,.08);color:var(--gold)}
  .mobile-bottom-nav a.is-active{background:rgba(160,124,46,.10);color:var(--gold)}

  .mobile-quick{display:flex;gap:8px;overflow-x:auto;padding:10px 0 2px;margin-top:14px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .mobile-quick::-webkit-scrollbar{display:none}
  .mobile-quick a{flex:0 0 auto;min-height:40px;display:inline-flex;align-items:center;padding:8px 13px;border-radius:999px;background:var(--card);border:1px solid var(--line-lt);font-size:13px;font-weight:800;color:var(--ink-soft);scroll-snap-align:start}

  .library-wrap{padding:24px 0 52px}
  .library-wrap .panel{margin-top:16px}
  .library-wrap [id]{scroll-margin-top:76px}
}

@media(max-width:420px){
  .wrap{width:calc(100% - 22px)}
  .brand{font-size:13.5px}
  .brand span:last-child{max-width:calc(100vw - 138px)}
  .mobile-guide{padding:8px 11px;font-size:12px}
  h1{font-size:clamp(31px,9.2vw,38px)}
  .lead{font-size:16.5px}
  .article{padding:20px 16px}
  .article p{font-size:16px}
  .card,.panel,.return,.return-card{padding:18px}
  .mobile-bottom-nav a{font-size:10.5px;border-radius:14px}
}

@media(min-width:901px){
  .mobile-bottom-nav{display:none!important}
}


/* Robert Dilts visual bookshelf */
.bookshelf-hero{padding:78px 0 42px;background:radial-gradient(circle at 18% 0%,rgba(160,124,46,.12),transparent 34%),linear-gradient(180deg,#fbf8f1,#f4efe6);border-bottom:1px solid var(--line-lt)}
.bookshelf-hero h1{font-size:clamp(42px,7vw,76px)}
.shelf-intro{padding-top:8px}
.bookshelf-section{padding-top:42px}
.shelf-room{position:relative;padding:34px 26px 42px;border-radius:34px;background:linear-gradient(180deg,#ebe1d1,#d7c4a9 54%,#b69368);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 26px 70px rgba(62,43,22,.18);overflow:hidden}
.shelf-room:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.28),transparent 32%),linear-gradient(90deg,rgba(70,42,18,.08),transparent 18%,transparent 82%,rgba(70,42,18,.08));pointer-events:none}
.shelf-rail{height:18px;border-radius:999px;background:linear-gradient(180deg,#8c6338,#5d3e22);box-shadow:0 8px 20px rgba(54,32,16,.24),inset 0 1px 0 rgba(255,255,255,.25);margin:0 0 26px}.shelf-rail.bottom{margin:30px 0 0}
.bookshelf-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:22px 18px;align-items:end}
.shelf-book{min-height:248px;position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:18px 16px 18px 24px;border-radius:9px 18px 18px 9px;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--book),#fff 8%),color-mix(in srgb,var(--book),#000 12%));box-shadow:12px 18px 34px rgba(45,28,14,.26),inset 8px 0 18px rgba(0,0,0,.18),inset -1px 0 0 rgba(255,255,255,.18);overflow:hidden;transform:translateY(0);animation:shelfIn .55s var(--ease) both;animation-delay:var(--delay)}
.shelf-book:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.16),transparent 20%,transparent 72%,rgba(0,0,0,.12)),radial-gradient(circle at 70% 16%,rgba(255,255,255,.18),transparent 24%);pointer-events:none}.shelf-book:hover{transform:translateY(-8px) rotate(-1deg);box-shadow:14px 26px 48px rgba(45,28,14,.34),inset 8px 0 18px rgba(0,0,0,.18)}
.book-spine{position:absolute;left:0;top:0;bottom:0;width:12px;background:rgba(0,0,0,.22);box-shadow:inset -1px 0 rgba(255,255,255,.18)}.book-year{position:absolute;top:14px;right:14px;font-size:12px;font-weight:900;opacity:.72}.shelf-book strong{font-size:17px;line-height:1.18;letter-spacing:-.02em}.shelf-book em{font-style:normal;font-size:14px;line-height:1.35;opacity:.92}.shelf-book small{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.76}.book-tags{font-size:12px;line-height:1.45;opacity:.86;border-top:1px solid rgba(255,255,255,.22);padding-top:9px}
@keyframes shelfIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:900px){.bookshelf-hero{padding:42px 0 30px}.shelf-room{margin:0 -2px;padding:22px 14px 28px;border-radius:26px}.bookshelf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.shelf-book{min-height:214px;padding:16px 12px 16px 20px;border-radius:8px 16px 16px 8px}.shelf-book:hover{transform:none}.shelf-book strong{font-size:15.5px}.shelf-book em{font-size:13px}.book-tags{font-size:11.5px}.shelf-rail{height:14px;margin-bottom:18px}}
@media(max-width:390px){.bookshelf-grid{grid-template-columns:1fr 1fr;gap:12px 10px}.shelf-book{min-height:205px}}


/* real cover bookshelf mode */
.bookshelf-grid.cover-mode{grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:28px 20px;align-items:stretch}.cover-book{position:relative;display:flex;flex-direction:column;gap:14px;padding:0;color:inherit;animation:shelfIn .55s var(--ease) both;animation-delay:var(--delay)}.cover-book:hover .real-cover,.cover-book:hover .synthetic-cover{transform:translateY(-8px) rotate(-1.4deg);box-shadow:18px 28px 52px rgba(45,28,14,.34)}.real-cover,.synthetic-cover{position:relative;display:block;width:100%;aspect-ratio:2/3;border-radius:10px 18px 18px 10px;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--book),#fff 8%),color-mix(in srgb,var(--book),#000 12%));box-shadow:12px 18px 34px rgba(45,28,14,.24),inset 7px 0 16px rgba(0,0,0,.18);transition:transform var(--t-med),box-shadow var(--t-med)}.real-cover:after,.synthetic-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.18),transparent 18%,transparent 72%,rgba(0,0,0,.12));pointer-events:none}.real-cover img{width:100%;height:100%;object-fit:cover}.synthetic-cover{display:flex;flex-direction:column;justify-content:flex-end;padding:18px 14px 18px 24px;color:#fff}.synthetic-cover strong{font-size:17px;line-height:1.18}.synthetic-cover em{font-style:normal;font-size:13px;line-height:1.35;opacity:.92}.cover-info{display:grid;gap:4px;padding:0 4px}.cover-info strong{font-size:15px;line-height:1.35;color:var(--ink)}.cover-info em{font-style:normal;font-size:13px;line-height:1.45;color:var(--muted)}.cover-info small{font-size:11px;color:var(--gold);font-weight:800;letter-spacing:.04em}.cover-info span{font-size:12px;color:var(--muted);line-height:1.45}.cover-book.no-cover .cover-info:before{content:'暂用本站仿书封';width:max-content;border-radius:999px;background:rgba(160,124,46,.1);color:var(--gold);font-size:11px;font-weight:800;padding:2px 8px;margin-bottom:2px}
@media(max-width:900px){.bookshelf-grid.cover-mode{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.cover-book:hover .real-cover,.cover-book:hover .synthetic-cover{transform:none}.cover-info strong{font-size:14px}.cover-info em{font-size:12.5px}.cover-info span{font-size:11.5px}}


/* course rich pages */
.course-hall-hero,.course-detail-hero{padding:72px 0 48px;background:radial-gradient(circle at 12% 0%,rgba(160,124,46,.12),transparent 35%),linear-gradient(180deg,#fbf8f1,#f4efe6);border-bottom:1px solid var(--line-lt)}
.course-hero-grid,.course-detail-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}.course-hero-books{display:flex;align-items:flex-end;justify-content:center;gap:14px;margin:0;padding:24px;border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(238,229,214,.76));border:1px solid var(--line-lt);box-shadow:var(--sh-md)}.course-hero-books img{width:31%;max-width:150px;border-radius:8px 15px 15px 8px;box-shadow:12px 18px 34px rgba(45,28,14,.22)}.course-hero-books img:nth-child(2){transform:translateY(-16px)}.course-hero-books figcaption{position:absolute;bottom:10px;font-size:12px;color:var(--muted);text-align:center}.course-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.course-card-rich{display:flex;flex-direction:column;gap:9px;padding:18px;border-radius:26px;background:var(--card);border:1px solid var(--line-lt);box-shadow:var(--sh-sm);transition:transform var(--t-med),box-shadow var(--t-med)}.course-card-rich:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}.course-cover{display:block;aspect-ratio:2/3;border-radius:9px 18px 18px 9px;overflow:hidden;box-shadow:10px 16px 30px rgba(45,28,14,.20);background:#eee}.course-cover img{width:100%;height:100%;object-fit:cover}.course-meta{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:900}.course-card-rich strong{font-size:20px;line-height:1.25;color:var(--ink)}.course-card-rich em{font-style:normal;font-size:13px;line-height:1.35;color:var(--muted)}.course-card-rich p{font-size:14px;line-height:1.65;color:var(--ink-soft)}.course-card-rich small{font-size:12px;line-height:1.55;color:var(--muted);border-top:1px solid var(--line-lt);padding-top:8px}.rich-flow .step{background:linear-gradient(135deg,#fff,#fbf7ef)}.course-book-figure{margin:0;justify-self:center;width:min(310px,82%);padding:22px;border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(238,229,214,.88));border:1px solid var(--line-lt);box-shadow:var(--sh-md);text-align:center}.course-book-figure img{width:100%;border-radius:10px 20px 20px 10px;box-shadow:16px 24px 48px rgba(45,28,14,.28)}.course-book-figure figcaption{margin-top:14px;color:var(--ink);font-weight:800;line-height:1.35}.course-book-figure figcaption span{font-size:13px;color:var(--muted);font-weight:500}@media(max-width:900px){.course-hero-grid,.course-detail-grid{grid-template-columns:1fr;gap:24px}.course-hall-hero,.course-detail-hero{padding:38px 0 30px}.course-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.course-card-rich:hover{transform:none}.course-hero-books{padding:18px}.course-hero-books img{max-width:120px}.course-book-figure{width:min(260px,78%)}}@media(max-width:430px){.course-card-grid{grid-template-columns:1fr}.course-card-rich{display:grid;grid-template-columns:88px 1fr;gap:10px;align-items:start}.course-cover{grid-row:1/6}.course-card-rich strong{font-size:18px}.course-card-rich p{font-size:13.5px}.course-card-rich small{grid-column:2}.course-hero-books img{max-width:96px}}


/* launch polish pages */
.launch-home-hero,.launch-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 18% 0%,rgba(160,124,46,.15),transparent 30%),radial-gradient(circle at 82% 12%,rgba(107,127,94,.12),transparent 28%),linear-gradient(180deg,#fbf8f1,#f2eadf);border-bottom:1px solid var(--line-lt)}.launch-home-hero:before,.launch-hero:before{content:'';position:absolute;inset:auto 8% -90px auto;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.28);filter:blur(20px)}.home-hero-stage{min-height:620px;display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;padding:86px 0 70px}.home-hero-copy h1{font-size:clamp(42px,6.2vw,72px);line-height:1.05;max-width:850px}.home-trust-line{margin-top:22px;color:var(--muted);font-size:14px;letter-spacing:.04em}.home-path-card{justify-self:end;width:min(420px,100%);padding:28px;border-radius:34px;background:rgba(255,255,255,.72);border:1px solid var(--line-lt);box-shadow:var(--sh-xl);backdrop-filter:blur(18px)}.home-path-card a{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line-lt)}.home-path-card a:last-child{border-bottom:0}.home-path-card span{font-size:12px;color:var(--gold);font-weight:900;letter-spacing:.12em}.home-path-card strong{font-size:22px;color:var(--ink)}.first-visit-hero,.boundary-hero{padding:86px 0 54px}.first-visit-hero h1,.boundary-hero h1{font-size:clamp(42px,6.5vw,72px)}.launch-route .route-card{background:linear-gradient(135deg,#fff,#fbf7ef)}@media(max-width:900px){.home-hero-stage{min-height:auto;grid-template-columns:1fr;padding:44px 0 34px;gap:24px}.home-hero-copy h1{font-size:clamp(34px,10vw,44px)}.home-path-card{justify-self:stretch;width:100%;border-radius:26px;padding:20px}.home-path-card a{grid-template-columns:62px 1fr;padding:13px 0}.home-path-card strong{font-size:19px}.first-visit-hero,.boundary-hero{padding:42px 0 30px}}


/* refined desktop home hero — front door polish */
@media (min-width: 901px){
  .refined-home-hero{
    padding:0;
    min-height:calc(100vh - 68px);
    display:flex;
    align-items:center;
    background:
      radial-gradient(circle at 18% 18%, rgba(160,124,46,.115), transparent 28%),
      radial-gradient(circle at 84% 20%, rgba(107,127,94,.105), transparent 30%),
      linear-gradient(115deg,#fbf8f1 0%,#f7f0e4 54%,#eee4d5 100%);
  }
  .refined-home-hero:after{
    content:'';
    position:absolute;
    inset:32px 34px;
    border:1px solid rgba(160,124,46,.14);
    border-radius:38px;
    pointer-events:none;
  }
  .refined-home-hero .home-hero-stage{
    min-height:calc(100vh - 68px);
    grid-template-columns:minmax(0,1.02fr) 440px;
    gap:76px;
    padding:56px 0 68px;
  }
  .refined-home-hero .home-hero-copy{max-width:760px;}
  .refined-home-hero .eyebrow{margin-bottom:18px;color:#92712d;letter-spacing:.24em;}
  .refined-home-hero .home-hero-copy h1{
    max-width:760px;
    font-size:clamp(56px,5.25vw,82px);
    line-height:1.02;
    letter-spacing:-.055em;
    margin:0 0 24px;
  }
  .refined-home-hero .lead{
    max-width:690px;
    font-size:20px;
    line-height:1.9;
    color:#665f53;
  }
  .refined-home-hero .hero-actions{margin-top:34px;gap:12px;}
  .refined-home-hero .btn{padding:13px 23px;box-shadow:0 8px 22px rgba(28,24,16,.045);}
  .refined-home-hero .btn.ghost{background:rgba(255,255,255,.52);border-color:rgba(160,124,46,.22)}
  .refined-home-hero .home-trust-line{
    margin-top:30px;
    display:flex;
    align-items:center;
    gap:13px;
    color:#8a8275;
    font-size:13.5px;
    letter-spacing:.04em;
  }
  .refined-home-hero .home-trust-line i{width:34px;height:1px;background:rgba(160,124,46,.35);display:inline-block;}
  .home-salon-card{
    position:relative;
    padding:30px;
    border-radius:34px;
    background:linear-gradient(145deg,rgba(255,253,247,.86),rgba(246,239,228,.74));
    border:1px solid rgba(160,124,46,.18);
    box-shadow:0 30px 80px rgba(44,31,16,.13), inset 0 1px 0 rgba(255,255,255,.7);
    backdrop-filter:blur(20px) saturate(1.25);
  }
  .home-salon-card:before{
    content:'';
    position:absolute;
    inset:12px;
    border:1px solid rgba(255,255,255,.72);
    border-radius:25px;
    pointer-events:none;
  }
  .salon-card-top{display:flex;align-items:center;gap:16px;margin-bottom:18px;}
  .seal{
    width:58px;height:58px;border-radius:50%;display:grid;place-items:center;
    color:#fff;font-weight:900;font-size:15px;letter-spacing:.08em;
    background:conic-gradient(from 140deg,#9b7628,#c8a450,#6b7f5e,#9b7628);
    box-shadow:0 10px 26px rgba(160,124,46,.22);
  }
  .salon-card-top strong{display:block;font-size:26px;color:var(--ink);letter-spacing:-.04em;line-height:1.1;margin-top:3px;}
  .home-salon-card p{font-size:15px;line-height:1.8;color:#756d61;margin:0 0 18px;}
  .salon-routes{display:grid;gap:10px;margin-top:20px;}
  .salon-routes a{
    display:grid;grid-template-columns:64px 1fr;grid-template-rows:auto auto;column-gap:14px;
    padding:15px 16px;border-radius:20px;background:rgba(255,255,255,.62);border:1px solid rgba(232,226,216,.82);
    transition:transform var(--t-med), background var(--t-med), box-shadow var(--t-med);
  }
  .salon-routes a:hover{transform:translateY(-2px);background:rgba(255,255,255,.86);box-shadow:var(--sh-md)}
  .salon-routes span{grid-row:1/3;color:#a07c2e;font-weight:900;font-size:12px;letter-spacing:.12em;align-self:center;}
  .salon-routes strong{font-size:20px;color:var(--ink);line-height:1.2;}
  .salon-routes em{font-style:normal;font-size:12.5px;color:#8c8579;margin-top:2px;}
  .salon-book-link{display:block;margin-top:14px;padding:17px 18px;border-radius:22px;background:linear-gradient(135deg,rgba(107,127,94,.12),rgba(160,124,46,.10));border:1px solid rgba(160,124,46,.16)}
  .salon-book-link span{display:block;font-size:12px;color:#8f6d28;font-weight:900;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px;}
  .salon-book-link strong{font-size:16px;line-height:1.45;color:var(--ink);}
}
@media (min-width:901px) and (max-width:1180px){
  .refined-home-hero .home-hero-stage{grid-template-columns:1fr 380px;gap:42px;}
  .refined-home-hero .home-hero-copy h1{font-size:58px;}
}
@media (max-width:900px){
  .home-salon-card{display:none;}
}

/* Robert Dilts academic map: 31 books / 7 lines */
.academic-count-strip{
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1.35fr;
  gap:12px;
  align-items:center;
  margin:24px 0 30px;
  padding:18px;
  border-radius:24px;
  background:linear-gradient(135deg,rgba(250,246,238,.96),rgba(242,244,237,.92));
  border:1px solid rgba(160,124,46,.16);
}
.academic-count-strip div{
  min-height:88px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  border:1px solid var(--line-lt);
}
.academic-count-strip strong{
  font-size:clamp(28px,4vw,42px);
  line-height:1;
  color:var(--gold);
  letter-spacing:-.04em;
}
.academic-count-strip span{
  margin-top:7px;
  color:var(--muted);
  font-size:13px;
  font-weight:800;
}
.academic-count-strip i{
  font-style:normal;
  color:rgba(160,124,46,.62);
  font-weight:900;
}
.academic-lines{
  display:grid;
  gap:16px;
  margin:22px 0 34px;
}
.academic-line-card{
  padding:22px 24px;
  border-radius:26px;
  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(250,246,238,.78));
  border:1px solid var(--line-lt);
  box-shadow:var(--sh-sm);
}
.academic-line-card.highlight{
  background:linear-gradient(135deg,rgba(107,127,94,.12),rgba(160,124,46,.09),rgba(255,255,255,.9));
  border-color:rgba(160,124,46,.24);
}
.line-head{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:14px;
  align-items:start;
  margin-bottom:12px;
}
.line-head>span{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:#2f3a2c;
  color:#f7ecd6;
  font-weight:900;
  letter-spacing:.04em;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);
}
.academic-line-card.highlight .line-head>span{background:var(--gold)}
.article .line-head h3{
  margin:0 0 5px;
  font-size:21px;
}
.article .line-head p{
  margin:0;
  font-size:14px;
  color:var(--muted);
  line-height:1.55;
}
.article .book-list{
  margin:10px 0 0 68px;
  display:grid;
  gap:7px;
  color:var(--ink-soft);
}
.article .book-list li{
  margin:0;
  padding:8px 10px;
  border-radius:14px;
  background:rgba(255,255,255,.62);
  border:1px solid rgba(222,212,194,.62);
  line-height:1.55;
}
.article .book-list b{
  display:inline-block;
  min-width:82px;
  color:var(--gold);
  font-weight:900;
}
.academic-flow{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin:22px 0 30px;
}
.academic-flow div{
  min-height:104px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:7px;
  padding:16px;
  border-radius:20px;
  background:rgba(255,255,255,.78);
  border:1px solid var(--line-lt);
  position:relative;
}
.academic-flow div:not(:last-child):after{
  content:'→';
  position:absolute;
  right:-11px;
  top:50%;
  transform:translateY(-50%);
  color:rgba(160,124,46,.55);
  font-weight:900;
}
.academic-flow span{
  width:max-content;
  padding:3px 9px;
  border-radius:999px;
  background:rgba(160,124,46,.09);
  color:var(--gold);
  font-size:12px;
  font-weight:900;
}
.academic-flow strong{
  color:var(--ink);
  line-height:1.35;
  font-size:14px;
}
@media(max-width:900px){
  .academic-count-strip{grid-template-columns:1fr;gap:8px;padding:14px}.academic-count-strip i{display:none}.academic-count-strip div{min-height:74px}
  .line-head{grid-template-columns:44px 1fr}.line-head>span{width:44px;height:44px;border-radius:15px}.article .book-list{margin-left:0}.article .book-list b{display:block;min-width:0;margin-bottom:2px}.academic-flow{grid-template-columns:1fr}.academic-flow div{min-height:auto}.academic-flow div:not(:last-child):after{content:'↓';right:18px;top:auto;bottom:-17px;transform:none}
}

/* Host page: My Five Passions */
.passion-module{
  margin-top:34px;
  padding:26px;
  border-radius:30px;
  background:
    radial-gradient(circle at 12% 0%,rgba(160,124,46,.16),transparent 28%),
    linear-gradient(135deg,rgba(250,246,238,.96),rgba(242,244,237,.88));
  border:1px solid rgba(160,124,46,.16);
  box-shadow:var(--sh-sm);
}
.passion-intro{
  max-width:760px;
  margin-bottom:18px;
}
.article .passion-intro h3{
  margin:6px 0 8px;
  font-size:27px;
  letter-spacing:-.02em;
}
.article .passion-intro p{
  margin:0;
  color:var(--ink-soft);
}
.passion-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  margin-top:20px;
}
.passion-card{
  min-height:232px;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:20px 18px;
  border-radius:24px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(222,212,194,.72);
  box-shadow:0 10px 26px rgba(45,28,14,.06);
  transition:transform var(--t-med), box-shadow var(--t-med), border-color var(--t-med);
}
.passion-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--sh-md);
  border-color:rgba(160,124,46,.28);
}
.passion-icon{
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  margin-bottom:4px;
  border-radius:22px;
  color:#6b7f5e;
  background:linear-gradient(135deg,rgba(107,127,94,.13),rgba(160,124,46,.10));
  border:1px solid rgba(107,127,94,.14);
}
.passion-icon svg{
  width:42px;
  height:42px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.passion-card strong{
  color:var(--ink);
  font-size:19px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.passion-card em{
  color:var(--gold);
  font-style:normal;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  line-height:1.35;
}
.article .passion-card p{
  margin:4px 0 0;
  font-size:14px;
  line-height:1.72;
  color:var(--muted);
}
@media(max-width:1100px){
  .passion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .passion-card{min-height:210px}
}
@media(max-width:900px){
  .passion-module{padding:20px 16px;border-radius:24px;margin-top:26px}
  .article .passion-intro h3{font-size:23px}
  .passion-grid{grid-template-columns:1fr;gap:10px}
  .passion-card{min-height:auto;padding:16px;display:grid;grid-template-columns:58px 1fr;column-gap:13px;align-items:start}
  .passion-icon{grid-row:1/4;width:54px;height:54px;border-radius:19px}.passion-icon svg{width:36px;height:36px}
  .passion-card:hover{transform:none}
  .article .passion-card p{grid-column:2;font-size:14px}
}

/* Host page: Robert Dilts handwritten note */
.dilts-note-card{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:26px;
  align-items:center;
  padding:26px;
  border-radius:32px;
  background:
    radial-gradient(circle at 8% 0%,rgba(160,124,46,.14),transparent 30%),
    linear-gradient(135deg,rgba(250,246,238,.96),rgba(255,255,255,.84));
  border:1px solid rgba(160,124,46,.16);
  box-shadow:var(--sh-md);
}
.dilts-note-card figure{
  margin:0;
  padding:14px;
  border-radius:26px;
  background:#fffaf1;
  border:1px solid rgba(160,124,46,.18);
  box-shadow:0 20px 45px rgba(45,28,14,.12);
  transform:rotate(-.7deg);
}
.dilts-note-card img{
  width:100%;
  display:block;
  border-radius:18px;
  border:1px solid rgba(222,212,194,.72);
}
.dilts-note-card figcaption{
  margin-top:10px;
  color:var(--muted);
  font-size:13px;
  text-align:center;
  line-height:1.45;
}
.note-translation{
  padding:8px 4px;
}
.note-translation blockquote{
  margin:10px 0 24px;
  padding:22px 24px;
  border-left:4px solid var(--gold);
  border-radius:0 22px 22px 0;
  background:rgba(255,255,255,.72);
  color:var(--ink);
  font-size:21px;
  line-height:1.65;
  font-family:Georgia,'Times New Roman',serif;
}
.note-translation p{
  color:var(--ink-soft);
  line-height:1.85;
  margin:0 0 10px;
  font-size:17px;
}
.note-translation .translation-note{
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid var(--line-lt);
  color:var(--muted);
  font-size:13px;
}
@media(max-width:900px){
  .dilts-note-card{grid-template-columns:1fr;padding:18px;border-radius:26px;gap:18px}
  .dilts-note-card figure{transform:none;padding:10px;border-radius:22px}
  .note-translation blockquote{font-size:18px;padding:18px;line-height:1.6}
  .note-translation p{font-size:16px}
}

/* Host page: moments with Robert Dilts */
.dilts-moment-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  padding:24px;
  border-radius:32px;
  background:linear-gradient(135deg,rgba(250,246,238,.94),rgba(242,244,237,.88));
  border:1px solid rgba(160,124,46,.14);
  box-shadow:var(--sh-sm);
}
.dilts-moment-grid figure{
  margin:0;
  padding:12px;
  border-radius:26px;
  background:rgba(255,255,255,.78);
  border:1px solid var(--line-lt);
  box-shadow:0 16px 34px rgba(45,28,14,.10);
}
.dilts-moment-grid img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
  border-radius:20px;
  border:1px solid rgba(222,212,194,.72);
}
.dilts-moment-grid figcaption{
  margin-top:10px;
  color:var(--muted);
  text-align:center;
  font-size:13px;
  line-height:1.5;
}
@media(max-width:900px){
  .dilts-moment-grid{grid-template-columns:1fr;padding:16px;border-radius:26px;gap:16px}
  .dilts-moment-grid figure{padding:10px;border-radius:22px}
  .dilts-moment-grid img{border-radius:18px}
}

/* Host page: final 3E vision */
.host-vision-section{padding-top:20px}
.host-vision-panel{
  position:relative;
  overflow:hidden;
  padding:42px;
  border-radius:36px;
  background:
    radial-gradient(circle at 12% 0%,rgba(160,124,46,.18),transparent 30%),
    radial-gradient(circle at 88% 12%,rgba(107,127,94,.16),transparent 34%),
    linear-gradient(135deg,#fbf7ee 0%,#f3f5ee 52%,#fffaf2 100%);
  border:1px solid rgba(160,124,46,.18);
  box-shadow:var(--sh-md);
}
.host-vision-panel:before{
  content:'3E';
  position:absolute;
  right:34px;
  top:18px;
  font-size:112px;
  line-height:1;
  font-weight:900;
  letter-spacing:-.08em;
  color:rgba(160,124,46,.075);
  pointer-events:none;
}
.vision-kicker{
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.host-vision-panel h2{
  max-width:820px;
  font-size:clamp(30px,4vw,48px);
  line-height:1.16;
  letter-spacing:-.04em;
  margin:0 0 16px;
}
.vision-lead{
  max-width:940px;
  color:var(--ink-soft);
  font-size:17px;
  line-height:1.9;
  margin:0 0 12px;
}
.vision-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:28px;
}
.vision-card{
  position:relative;
  min-height:250px;
  padding:24px 22px;
  border-radius:28px;
  background:rgba(255,255,255,.74);
  border:1px solid rgba(222,212,194,.76);
  box-shadow:0 16px 38px rgba(45,28,14,.08);
}
.vision-card span{
  display:inline-grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:14px;
  background:#2f3a2c;
  color:#f7ecd6;
  font-size:13px;
  font-weight:900;
  margin-bottom:18px;
}
.vision-card h3{
  margin:0 0 4px;
  color:var(--ink);
  font-size:24px;
  letter-spacing:-.03em;
}
.vision-card strong{
  display:block;
  color:var(--gold);
  font-size:17px;
  margin-bottom:10px;
}
.vision-card p{
  color:var(--muted);
  line-height:1.76;
  font-size:15px;
  margin:0;
}
.vision-closing{
  margin-top:22px;
  padding:22px 24px;
  border-radius:24px;
  background:rgba(47,58,44,.92);
  color:#fff8ea;
  display:grid;
  gap:6px;
}
.vision-closing strong{font-size:18px;line-height:1.45}
.vision-closing span{color:rgba(255,248,234,.78);line-height:1.65}
@media(max-width:900px){
  .host-vision-panel{padding:26px 18px;border-radius:28px}.host-vision-panel:before{font-size:76px;right:18px;top:16px}.vision-lead{font-size:16px}.vision-card-grid{grid-template-columns:1fr;gap:12px}.vision-card{min-height:auto;padding:20px;border-radius:24px}.vision-closing{padding:18px;border-radius:20px}
}
