/* Hancheng interior design system V2.1. Homepage is intentionally excluded. */
body.inner-route {
  --inner-ink: #0a1b35;
  --inner-muted: #5d6b7f;
  --inner-line: #d8e0ea;
  --inner-paper: #ffffff;
  --inner-soft: #f4f7fa;
  --inner-blue: #0d5bd7;
  --inner-navy: #0a3265;
  color: var(--inner-ink);
  background: var(--inner-paper);
}

body.inner-route main { overflow: clip; background: var(--inner-paper); }
body.inner-route main :where(.content-shell,.br-wrap,.pw-wrap,.mb-wrap,.tm-wrap,.case-archive-shell) {
  width: min(1180px, calc(100% - 64px));
  margin-inline: auto;
}

body.inner-route :where(.button,button[class*="-link"],button[class*="-jump"]) {
  border-radius: 4px;
  box-shadow: none;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease;
}
body.inner-route :where(.button,button[class*="-link"],button[class*="-jump"]):active { transform: translateY(1px); }

/* Shared editorial hero */
body.inner-route .page-hero {
  min-height: 420px;
  padding: 42px max(32px, calc((100% - 1180px) / 2)) 64px;
  border-bottom: 1px solid var(--inner-line);
  background: var(--inner-soft);
}
body.inner-route .page-hero-grid {
  min-height: 290px;
  grid-template-columns: minmax(0, 760px) 1fr;
  gap: 80px;
}
body.inner-route .page-hero h1 {
  max-width: 900px;
  margin-top: 56px;
  color: var(--inner-ink);
  font-size: clamp(48px, 4.6vw, 70px);
  font-weight: 760;
  line-height: 1.06;
  letter-spacing: -.055em;
}
body.inner-route .page-hero p {
  max-width: 680px;
  margin-top: 24px;
  color: var(--inner-muted);
  font-size: 17px;
  line-height: 1.8;
}
body.inner-route .breadcrumbs { color: #77859a; font-size: 12px; }
body.inner-route .page-symbol {
  width: 260px;
  height: 220px;
  color: var(--inner-blue);
  opacity: .9;
}
body.inner-route .page-symbol::before {
  width: 220px;
  height: 170px;
  border: 0;
  border-radius: 0;
  transform: none;
  background:
    linear-gradient(90deg, transparent 49.5%, rgba(13,91,215,.14) 50%, transparent 50.5%),
    linear-gradient(transparent 49.5%, rgba(13,91,215,.14) 50%, transparent 50.5%);
  background-size: 42px 42px;
  box-shadow: none;
}
body.inner-route .page-symbol::after,
body.inner-route .page-symbol span { display: none; }
body.inner-route .page-symbol svg { filter: none; }
body.inner-route .page-symbol-chart { width: 420px; height: 250px; }
body.inner-route .page-symbol-chart img { mask-image: none; -webkit-mask-image: none; mix-blend-mode: multiply; }

/* Products overview opens with a photographic brand field, not a blank title panel. */
body.inner-route[data-route="products"] .page-hero {
  min-height: 500px;
  color: #fff;
  border-bottom: 0;
  background:
    linear-gradient(90deg, rgba(4,25,52,.94) 0%, rgba(4,34,70,.82) 42%, rgba(5,40,82,.38) 72%, rgba(5,40,82,.18) 100%),
    url("./images/products-hero-architecture-v1.jpg") center 57% / cover no-repeat;
}
body.inner-route[data-route="products"] .page-hero-grid {
  min-height: 360px;
  grid-template-columns: minmax(0,780px) 1fr;
}
body.inner-route[data-route="products"] .page-hero h1 { color: #fff; }
body.inner-route[data-route="products"] .page-hero p { color: rgba(235,242,252,.86); }
body.inner-route[data-route="products"] .page-hero .breadcrumbs { color: rgba(224,235,249,.72); }
body.inner-route[data-route="products"] .page-symbol { display: none; }
body.inner-route[data-route="products"] .page-hero::after { display: none; }

/* Photography-led product heroes */
body.inner-route :where(.annual-focus-hero,.br-hero,.pw-hero,.mb-hero,.tm-hero,.diagnosis-hero) {
  min-height: 520px;
  height: 520px;
  border-bottom: 1px solid rgba(255,255,255,.18);
  background: var(--inner-navy);
}
body.inner-route :where(.annual-focus-hero,.br-hero,.pw-hero,.mb-hero,.tm-hero,.diagnosis-hero) > img {
  filter: saturate(.78) contrast(1.03);
}
body.inner-route :where(.annual-focus-hero,.br-hero,.pw-hero,.mb-hero,.tm-hero,.diagnosis-hero)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(4,27,58,.92) 0%, rgba(4,27,58,.73) 42%, rgba(4,27,58,.18) 72%, rgba(4,27,58,.08));
  pointer-events: none;
}
body.inner-route :where(.annual-focus-hero .content-shell,.br-hero .br-wrap,.pw-hero .pw-wrap,.mb-hero .mb-wrap,.tm-hero-copy,.diagnosis-hero-copy) {
  position: relative;
  z-index: 2;
  width: min(1180px, calc(100% - 64px));
  margin-inline: auto;
}
body.inner-route :where(.annual-focus-hero h1,.br-hero h1,.pw-hero h1,.mb-hero h1,.tm-hero h1,.diagnosis-hero h1) {
  max-width: 720px;
  font-size: clamp(52px, 5vw, 72px);
  font-weight: 760;
  line-height: 1.05;
  letter-spacing: -.055em;
}
body.inner-route :where(.annual-focus-hero p,.br-hero p,.pw-hero p,.mb-hero p,.tm-hero p,.diagnosis-hero p) {
  max-width: 650px;
  font-size: 18px;
  line-height: 1.75;
}
body.inner-route :where(.br-hero-note,.pw-hero .pw-wrap > div,.mb-hero .mb-wrap > div) { max-width: 650px; }
body.inner-route :where(.br-hero-link,.pw-jump,.mb-hero button,.tm-hero-link) { display: none; }

/* Spacing and heading system */
body.inner-route :where(.annual-focus-section,.br-section,.pw-section,.mb-section,.tm-section) { padding-block: 96px; }
body.inner-route :where(.annual-focus-section,.br-section,.pw-section,.mb-section,.tm-section):not(:first-child) { border-top: 1px solid var(--inner-line); }
body.inner-route :where(.content-shell,.ai-page,.about-page,.contact-layout) { padding-top: 72px; padding-bottom: 104px; }
body.inner-route :where(.product-logic-head,.model-heading,.annual-focus-section header,.br-heading,.pw-heading,.mb-heading,.tm-heading,.diagnosis-product-page header,.case-archive-section-head) {
  display: block;
  margin-bottom: 44px;
  text-align: left;
}
body.inner-route :where(.product-logic-head,.model-heading,.annual-focus-section header,.br-heading,.pw-heading,.mb-heading,.tm-heading,.diagnosis-product-page header) > :where(div,p) {
  max-width: 720px;
  margin-left: 0;
}
body.inner-route :where(.product-logic-head,.model-heading,.annual-focus-section header,.br-heading,.pw-heading,.mb-heading,.tm-heading,.diagnosis-product-page header) h2 {
  max-width: 850px;
  margin: 8px 0 0;
  color: var(--inner-ink);
  font-size: clamp(34px, 3.4vw, 50px);
  font-weight: 730;
  line-height: 1.16;
  letter-spacing: -.04em;
}
body.inner-route :where(.product-logic-head,.model-heading,.annual-focus-section header,.br-heading,.pw-heading,.mb-heading,.tm-heading,.diagnosis-product-page header) p {
  max-width: 720px;
  margin: 18px 0 0;
  color: var(--inner-muted);
  font-size: 15px;
  line-height: 1.8;
}
body.inner-route :where(.product-logic-head,.model-heading,.annual-focus-section header,.br-heading,.pw-heading,.mb-heading,.tm-heading,.diagnosis-product-page header) :where(small,span:first-child) {
  color: var(--inner-blue);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
}

/* Replace generic cards with editorial grouping */
body.inner-route :where(.fact-strip,.content-panel,.architecture-main,.architecture-ai,.two-products article,.role-split article,.service-levels,.cooperation-grid > article,.case-feature-panel,.case-card,.asset-grid article,.related-case) {
  border-radius: 2px;
  box-shadow: none;
}
body.inner-route .fact-strip {
  margin-top: 0;
  border: 0;
  border-top: 2px solid var(--inner-ink);
  border-bottom: 1px solid var(--inner-line);
  background: transparent;
}
body.inner-route .fact-strip article { min-height: 190px; padding: 32px 26px; background: transparent; }
body.inner-route .fact-icon { border-radius: 2px; box-shadow: none; background: transparent; }
body.inner-route .content-panel { padding: 38px 0; border: 0; border-top: 1px solid var(--inner-line); background: transparent; }
body.inner-route .panel-title { margin-bottom: 30px; font-size: 26px; }

body.inner-route :where(.product-situation-section,.product-problem-section,.product-service-scope,.ip-module-map,.governance-grid,.service-role-grid,.cooperation-grid) article {
  border-radius: 2px;
  box-shadow: none;
}
body.inner-route :where(.product-situation-section,.product-problem-section,.product-service-scope,.ip-module-map) > div:last-child {
  gap: 0;
  border-top: 2px solid var(--inner-ink);
  border-bottom: 1px solid var(--inner-line);
}
body.inner-route :where(.product-situation-section,.product-problem-section,.product-service-scope,.ip-module-map) article {
  background: transparent;
  border: 0;
  border-right: 1px solid var(--inner-line);
}
body.inner-route :where(.product-situation-section,.product-problem-section,.product-service-scope,.ip-module-map) article:last-child { border-right: 0; }

body.inner-route :where(.annual-editorial-photo,.product-editorial-photo,.mb-project-scene,.tm-practice-layout figure,.scene-grid,.case-photo) {
  border-radius: 2px;
  box-shadow: none;
}
body.inner-route :where(.annual-editorial-photo,.product-editorial-photo,.mb-project-scene) img { filter: saturate(.82); }

/* Tables stay dense, but read like consulting documents */
body.inner-route :where(.br-table-scroll,.pw-table-scroll,.tm-table-scroll,.mb-table-scroll,.output-system-table,.ip-product-table) {
  border-radius: 0;
  box-shadow: none;
}
body.inner-route :where(.br-table,.pw-table,.tm-table,.mb-table) {
  border-collapse: collapse;
  background: white;
}
body.inner-route :where(.br-table,.pw-table,.tm-table,.mb-table) thead { background: var(--inner-navy); }
body.inner-route :where(.br-table,.pw-table,.tm-table,.mb-table) th,
body.inner-route :where(.br-table,.pw-table,.tm-table,.mb-table) td {
  padding: 17px 16px;
  border-color: var(--inner-line);
  line-height: 1.65;
}
body.inner-route :where(.br-table,.pw-table,.tm-table,.mb-table) tbody tr:nth-child(even) { background: #f6f8fb; }
body.inner-route :where(.br-table,.pw-table,.tm-table,.mb-table) tbody tr:hover { background: #edf3fb; }

/* Flatten repeated chains while retaining their logic */
body.inner-route :where(.br-failure-chain,.pw-failure-chain,.tm-failure-track,.mb-failure-chain,.br-meeting-stages,.br-transfer,.pw-workshop-route,.tm-change-list,.mb-change-list,.br-outcome-rows) {
  gap: 0;
  border-top: 2px solid var(--inner-ink);
  border-bottom: 1px solid var(--inner-line);
}
body.inner-route :where(.br-failure-chain,.pw-failure-chain,.tm-failure-track,.mb-failure-chain,.br-meeting-stages,.br-transfer,.pw-workshop-route,.tm-change-list,.mb-change-list,.br-outcome-rows) > * {
  border-radius: 0;
  box-shadow: none;
  border-top: 0;
  border-bottom: 0;
  border-right: 1px solid var(--inner-line);
}
body.inner-route :where(.br-failure-chain,.pw-failure-chain,.tm-failure-track,.mb-failure-chain,.br-meeting-stages,.br-transfer,.pw-workshop-route,.tm-change-list,.mb-change-list,.br-outcome-rows) > *:last-child { border-right: 0; }

/* Keep method graphics as the visual focus */
body.inner-route :where(.annual-focus-logic,.br-method,.pw-blueprint,.mb-method-stage,.tm-growth-map,.diagnosis-method-grid,.mb-project-route,.tm-project-route) {
  border-radius: 2px;
  box-shadow: none;
}
body.inner-route :where(.pw-blueprint,.tm-growth-map,.mb-project-route) { background: #f7f9fc; }
body.inner-route :where(.annual-focus-section,.br-section,.pw-section,.mb-section,.tm-section):nth-of-type(even) { background: var(--inner-soft); }
body.inner-route :where(.annual-focus-section,.br-section,.pw-section,.mb-section,.tm-section):nth-of-type(odd) { background: var(--inner-paper); }

/* Intentional brand chapters retain a single solid dark field. */
body.inner-route :where(.annual-focus-outcome,.br-failure,.br-outcomes,.pw-failure,.pw-results,.mb-problems,.mb-outcomes,.tm-failure,.tm-outcome) {
  color: #fff;
  background: var(--inner-navy) !important;
  border-color: rgba(255,255,255,.14) !important;
}
body.inner-route :where(.annual-focus-outcome,.br-failure,.br-outcomes,.pw-failure,.pw-results,.mb-problems,.mb-outcomes,.tm-failure,.tm-outcome)
  :where(h2,h3,strong) { color: #fff; }
body.inner-route :where(.annual-focus-outcome,.br-failure,.br-outcomes,.pw-failure,.pw-results,.mb-problems,.mb-outcomes,.tm-failure,.tm-outcome)
  :where(p,small) { color: #c4d2e5; }
body.inner-route :where(.annual-focus-outcome,.br-failure,.br-outcomes,.pw-failure,.pw-results,.mb-problems,.mb-outcomes,.tm-failure,.tm-outcome)
  :where(.br-heading,.pw-heading,.mb-heading,.tm-heading) :where(small,span:first-child) { color: #82b7ff; }

/* Products and case library */
body.inner-route .product-system-shell { padding-top: 80px; }
body.inner-route .product-system-page :where(.unified-solution-section,.product-service-operating) {
  margin-top: 96px;
  padding-top: 0;
}
body.inner-route .product-system-page .product-chapter-rail {
  overflow: hidden;
  border-radius: 2px;
  box-shadow: none;
}
body.inner-route .product-system-page :where(.solution-system-map,.solution-insight-board) {
  border-radius: 2px;
  background: #fff;
  box-shadow: none;
}
body.inner-route .product-system-page .solution-growth-core {
  background: #f4f7fb;
  box-shadow: none;
}
body.inner-route .product-system-page .product-editorial-photo { border-radius: 2px; }
body.inner-route .product-system-page :where(.solution-delivery-cluster,.organization-build-cluster) {
  margin-top: 36px;
  padding: 32px 0;
  border: 0;
  border-top: 2px solid var(--inner-ink);
  border-bottom: 1px solid var(--inner-line);
  border-radius: 0;
  box-shadow: none;
}
body.inner-route .product-system-page :where(.product-entry-rail,.compact-layer-rail,.organization-cascade-map,.implementation-assurance-band) {
  border-radius: 2px;
  box-shadow: none;
}
body.inner-route .product-system-page .method-execution-cluster :where(.diagnosis-entry,.process-panel) {
  border-radius: 2px;
  box-shadow: none;
}
body.inner-route .product-system-page .ai-compact-section .ai-direction-map.ai-direction-compact {
  border-radius: 0;
  background: #f7f9fc;
  box-shadow: none;
}
body.inner-route .case-archive-hero {
  min-height: 430px;
  padding: 82px max(32px, calc((100% - 1180px) / 2));
  background: var(--inner-soft);
  border-bottom: 1px solid var(--inner-line);
}
body.inner-route .case-archive-hero h1 { color: var(--inner-ink); font-size: clamp(48px, 4.6vw, 70px); }
body.inner-route .case-archive-hero p { color: var(--inner-muted); }
body.inner-route .case-archive-hero aside { border-color: var(--inner-line); }
body.inner-route .case-archive-hero aside article { border-color: var(--inner-line); }
body.inner-route .case-archive-hero aside strong { color: var(--inner-ink); }
body.inner-route .case-archive-hero aside span { color: var(--inner-muted); }
body.inner-route .case-library-grid { gap: 24px; }
body.inner-route .case-library-card { border-radius: 2px; box-shadow: none; }

/* Closing areas use one solid brand field, never a gradient */
body.inner-route .cta-section {
  padding: 76px max(32px, calc((100% - 1180px) / 2));
  background: var(--inner-navy);
}
body.inner-route .cta-section h2 { font-size: clamp(32px, 3vw, 44px); letter-spacing: -.035em; }
body.inner-route :where(.br-close,.pw-close,.mb-close,.tm-close) { border-radius: 2px; box-shadow: none; }

@media (max-width: 900px) {
  body.inner-route main :where(.content-shell,.br-wrap,.pw-wrap,.mb-wrap,.tm-wrap,.case-archive-shell),
  body.inner-route :where(.annual-focus-hero .content-shell,.br-hero .br-wrap,.pw-hero .pw-wrap,.mb-hero .mb-wrap,.tm-hero-copy,.diagnosis-hero-copy) {
    width: min(100% - 36px, 1180px);
  }
  body.inner-route .page-hero { min-height: 360px; padding: 32px 18px 50px; }
  body.inner-route .page-hero-grid { min-height: 260px; grid-template-columns: 1fr; gap: 0; }
  body.inner-route .page-hero h1 { margin-top: 38px; font-size: 44px; }
  body.inner-route .page-symbol { display: none; }
  body.inner-route[data-route="products"] .page-hero {
    min-height: 440px;
    background-position: 62% center;
    background-image:
      linear-gradient(90deg, rgba(4,25,52,.94), rgba(4,34,70,.7)),
      url("./images/products-hero-architecture-v1.jpg");
  }
  body.inner-route[data-route="products"] .page-hero-grid { min-height: 330px; }
  body.inner-route :where(.annual-focus-hero,.br-hero,.pw-hero,.mb-hero,.tm-hero,.diagnosis-hero) { min-height: 560px; height: 560px; }
  body.inner-route :where(.annual-focus-hero,.br-hero,.pw-hero,.mb-hero,.tm-hero,.diagnosis-hero)::after {
    background: linear-gradient(90deg, rgba(4,27,58,.9), rgba(4,27,58,.58));
  }
  body.inner-route :where(.annual-focus-hero h1,.br-hero h1,.pw-hero h1,.mb-hero h1,.tm-hero h1,.diagnosis-hero h1) { font-size: 48px; }
  body.inner-route :where(.annual-focus-section,.br-section,.pw-section,.mb-section,.tm-section) { padding-block: 72px; }
  body.inner-route :where(.content-shell,.ai-page,.about-page,.contact-layout) { padding-top: 56px; padding-bottom: 80px; }
  body.inner-route :where(.fact-strip,.product-situation-section > div:last-child,.product-problem-section > div:last-child,.product-service-scope > div:last-child,.ip-module-map > div:last-child) { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 600px) {
  body.inner-route .page-hero { min-height: 320px; }
  body.inner-route .page-hero h1 { font-size: 38px; line-height: 1.12; }
  body.inner-route .page-hero p { font-size: 15px; }
  body.inner-route :where(.annual-focus-hero,.br-hero,.pw-hero,.mb-hero,.tm-hero,.diagnosis-hero) { min-height: 520px; height: 520px; }
  body.inner-route :where(.annual-focus-hero h1,.br-hero h1,.pw-hero h1,.mb-hero h1,.tm-hero h1,.diagnosis-hero h1) { font-size: 42px; }
  body.inner-route :where(.annual-focus-hero p,.br-hero p,.pw-hero p,.mb-hero p,.tm-hero p,.diagnosis-hero p) { font-size: 16px; }
  body.inner-route :where(.product-logic-head,.model-heading,.annual-focus-section header,.br-heading,.pw-heading,.mb-heading,.tm-heading,.diagnosis-product-page header) h2 { font-size: 32px; }
  body.inner-route :where(.fact-strip,.product-situation-section > div:last-child,.product-problem-section > div:last-child,.product-service-scope > div:last-child,.ip-module-map > div:last-child) { grid-template-columns: 1fr; }
  body.inner-route .fact-strip article,
  body.inner-route :where(.product-situation-section,.product-problem-section,.product-service-scope,.ip-module-map) article { border-right: 0; border-bottom: 1px solid var(--inner-line); }
  body.inner-route :where(.product-situation-section,.product-problem-section,.product-service-scope,.ip-module-map) article:last-child { border-bottom: 0; }
  body.inner-route .cta-section { align-items: flex-start; padding: 58px 18px; }
}

@media (prefers-reduced-motion: reduce) {
  body.inner-route *, body.inner-route *::before, body.inner-route *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
