/* Case-only composition; module/table internals retain their public owners. */
body.case-detail-v1-page { min-width: 0; }
.case-detail-v1 { background: var(--ui-color-page, #fff); }
.case-detail-v1__breadcrumb-bar { background: var(--ui-color-surface, #fff); }
.case-detail-v1__hero,
.case-detail-v1__project_snapshot,
.case-detail-v1__project_highlight,
.case-detail-v1__case_story,
.case-detail-v1__delivered_system,
.case-detail-v1__navigation { padding-block: clamp(36px, 5vw, 72px); }
.case-detail-v1__hero {
  --page-module-page-background:
    radial-gradient(circle at 82% 12%, color-mix(in srgb, var(--ui-color-accent) 30%, transparent), transparent 36%),
    linear-gradient(135deg, #071426 0%, #10283e 58%, #0b1b2d 100%);
}
.case-detail-v1 > .page-module:not(.case-detail-v1__hero):not(#case-detail-cta) {
  --page-module-page-background: var(--ui-section-bg-ambient-wash);
}
.case-detail-v1 > .page-module + .page-module {
  border-top: 1px solid color-mix(
    in srgb,
    var(--ui-color-accent, #06b6d4) 14%,
    var(--ui-color-border, #e2e8f0)
  );
}
.case-detail-v1 > .page-module:is(
  #case-detail-project-highlight,
  #case-detail-delivered-system,
  #case-detail-navigation
) {
  --ui-section-ambient-x: 12%;
  --ui-section-ambient-y: 12%;
}
.case-detail-v1 > .page-module:is(
  #case-detail-project-snapshot,
  #case-detail-case-story,
  #case-detail-faq,
  #case-detail-related-entities
) {
  --ui-section-ambient-x: 88%;
  --ui-section-ambient-y: 10%;
}
.case-detail-v1__hero-layout { max-width: 1120px; }
.case-detail-v1__hero-copy { text-align: var(--page-module-title-align, left); }
.case-detail-v1__taxonomy { margin-bottom: var(--ui-space-5, 20px); }
.case-detail-v1__title { max-width: 22em; text-wrap: balance; overflow-wrap: break-word; }
.case-detail-v1__meta { display: flex; margin-top: 24px; flex-wrap: wrap; gap: 8px 22px; color: var(--ui-color-text-muted, #64748b); font-size: var(--ui-text-sm, 14px); line-height: 1.6; }
.case-detail-v1__hero[data-foreground="light"] .case-detail-v1__meta { color: #cbd5e1; }
.case-detail-v1__hero[data-title-align="center"] .case-detail-v1__hero-layout { margin-inline: auto; }
.case-detail-v1__hero[data-title-align="right"] .case-detail-v1__hero-layout { margin-inline: auto 0; }
.case-detail-v1__hero[data-title-align="center"] .case-detail-v1__meta { justify-content: center; }
.case-detail-v1__hero[data-title-align="right"] .case-detail-v1__meta { justify-content: flex-end; }
.case-detail-v1__facts { color: var(--page-module-title-color, inherit); }
.case-detail-v1__delivered_system > .ui-container > h2 { text-align: var(--page-module-title-align, left); }
.case-detail-v1__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
.case-detail-v1__facts > .ui-information-matrix__row { display: flex; min-width: 0; }
.case-detail-v1__facts > .ui-information-matrix__row > .ui-information-matrix__cell { flex: 1; min-width: 0; }
.case-detail-v1__facts dt { margin: 0 0 8px; }
.case-detail-v1__facts dd { margin: 0; line-height: 1.8; }
.case-detail-v1__reading-layout {
  --case-detail-reading-column: 920px;
  display: grid;
  grid-template-columns: minmax(0, var(--case-detail-reading-column)) minmax(190px, 230px);
  justify-content: space-between;
  align-items: start;
  gap: clamp(36px, 4vw, 64px);
}
.case-detail-v1__case_story[data-reading-measure="narrow"] .case-detail-v1__reading-layout { --case-detail-reading-column: 760px; }
.case-detail-v1__case_story[data-reading-measure="wide"] .case-detail-v1__reading-layout { --case-detail-reading-column: 1040px; }
.case-detail-v1__case_story[data-desktop-toc="hide"] .case-detail-v1__reading-layout { grid-template-columns: minmax(0, var(--case-detail-reading-column)); }
.case-detail-v1__reading-layout .ui-content-document--measure {
  grid-column: 1;
  grid-row: 1;
  max-width: var(--case-detail-reading-column);
  margin-inline: 0;
}
.case-detail-v1__toc-rail {
  position: sticky;
  top: calc(var(--site-fixed-header-safe-area, 81px) + 15px);
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  max-height: calc(100vh - var(--site-fixed-header-safe-area, 81px) - 47px);
}
.case-detail-v1__toc-rail nav {
  max-height: calc(100vh - var(--site-fixed-header-safe-area, 81px) - 47px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  padding: var(--ui-space-5, 20px) var(--ui-space-4, 16px);
  background: transparent;
  border: 1px solid var(--ui-color-border, #e2e8f0);
  border-radius: var(--ui-radius-md, 16px);
}
.case-detail-v1__toc-rail strong {
  display: block;
  margin-bottom: var(--ui-space-5, 20px);
  color: var(--ui-color-text-strong, #0f172a);
  font-size: var(--ui-text-lg, 18px);
  font-weight: var(--ui-weight-bold, 700);
}
.case-detail-v1__toc-rail ol, .case-detail-v1__toc-mobile ol { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.case-detail-v1__toc-rail li[data-heading-level="3"], .case-detail-v1__toc-mobile li[data-heading-level="3"] { padding-inline-start: 14px; }
.case-detail-v1__toc-rail a, .case-detail-v1__toc-mobile a {
  display: block;
  padding: 4px 6px;
  color: var(--ui-color-text-muted, #64748b);
  border-radius: var(--ui-radius-xs, 4px);
  font-size: 13px;
  line-height: 1.45;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: color var(--ui-duration, 220ms) var(--ui-ease, ease), background-color var(--ui-duration, 220ms) var(--ui-ease, ease);
}
.case-detail-v1__toc-rail li[data-heading-level="2"] > a,
.case-detail-v1__toc-mobile li[data-heading-level="2"] > a {
  color: var(--ui-color-text-strong, #0f172a);
  font-size: 15px;
  font-weight: var(--ui-weight-semibold, 600);
}
.case-detail-v1__toc-rail a:hover, .case-detail-v1__toc-mobile a:hover {
  color: var(--ui-color-accent-deep, #0891b2);
  background: color-mix(in srgb, var(--ui-color-accent, #06b6d4) 6%, transparent);
}
.case-detail-v1__toc-rail a:focus-visible, .case-detail-v1__toc-mobile a:focus-visible {
  outline: 2px solid var(--ui-color-accent, #06b6d4);
  outline-offset: 3px;
}
.case-detail-v1__toc-mobile { display: none; }
@media (min-width: 1025px) {
  .case-detail-v1__case_story[data-reading-measure="wide"]:not([data-desktop-toc="hide"])
    .case-detail-v1__reading-layout {
    grid-template-columns: minmax(0, var(--case-detail-reading-column)) minmax(152px, 160px);
    gap: clamp(24px, 1.5vw, 28px);
  }
}
@media (max-width: 1024px) {
  .case-detail-v1__reading-layout {
    grid-template-columns: minmax(0, 1fr) 200px;
    gap: 36px;
  }
}
@media (max-width: 900px) {
  .case-detail-v1__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .case-detail-v1__reading-layout { display: block; }
  .case-detail-v1__toc-rail { display: none; }
  .case-detail-v1__toc-mobile {
    display: block;
    margin-bottom: var(--ui-space-7, 28px);
    background: transparent;
    border: 1px solid var(--ui-color-border, #e2e8f0);
    border-radius: var(--ui-radius-md, 16px);
  }
  .case-detail-v1__toc-mobile summary {
    padding: var(--ui-space-4, 16px) var(--ui-space-5, 20px);
    color: var(--ui-color-text-strong, #0f172a);
    font-size: var(--ui-text-lg, 18px);
    font-weight: var(--ui-weight-bold, 700);
    cursor: pointer;
  }
  .case-detail-v1__toc-mobile nav { padding: 0 var(--ui-space-5, 20px) var(--ui-space-5, 20px); }
}
@media (max-width: 767px) {
  .case-detail-v1__hero-copy, .case-detail-v1__delivered_system > .ui-container > h2 { text-align: var(--page-module-mobile-title-align, left); }
  
  .case-detail-v1__hero[data-mobile-title-align="center"] .case-detail-v1__meta { justify-content: center; }
  .case-detail-v1__hero[data-mobile-title-align="left"] .case-detail-v1__meta { justify-content: flex-start; }
  .case-detail-v1__facts { grid-template-columns: minmax(0, 1fr); }
}

/* Mobile H1 scale: preserve smaller editor values; desktop/tablet stay unchanged. */
@media (max-width: 767px) {
  .case-detail-v1__title.page-module__title {
    font-size: min(var(--page-module-title-size, 50px), 22px);
  }
}

@media (max-width: 360px) {
  .case-detail-v1__title.page-module__title {
    font-size: min(var(--page-module-title-size, 50px), 22px);
  }
}
