.case-detail-page {background:var(--cream);}
.case-detail-hero {padding:62px 0 74px;border-bottom:1px solid var(--line);}
.case-back {display:inline-flex;align-items:center;gap:12px;font-size:15px;font-weight:600;color:var(--blue);margin-bottom:58px;}
.case-back .icon {width:18px;height:18px;transform:rotate(180deg);}
.case-back:hover,.case-all-link:hover {color:var(--navy);text-decoration:underline;text-underline-offset:4px;}
.case-detail-hero-inner {display:block;}
.case-detail-category {font:13px/1.7 var(--mono);letter-spacing:.035em;text-transform:uppercase;color:var(--blue);}
.case-detail-hero h1 {font-size:clamp(2.45rem,4.3vw,4.2rem);line-height:1.15;letter-spacing:-.06em;max-width:970px;}
.case-detail-subtitle {max-width:760px;margin-top:27px;font:500 clamp(1.1rem,1.8vw,1.4rem)/1.6 var(--body);}
.case-detail-category {margin-top:26px;}
.case-facts {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px;margin:58px 0 0;padding-top:24px;border-top:1px solid var(--line);}
.case-facts>div {display:grid;grid-template-columns:95px minmax(0,1fr);gap:20px;padding:12px 0;}
.case-facts dt {font:600 13px/1.7 var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--navy);}
.case-facts dd {margin:0;font-size:16px;font-weight:500;line-height:1.65;}
.case-detail-layout {display:grid;grid-template-columns:240px minmax(0,1fr);gap:92px;padding-top:98px;padding-bottom:136px;align-items:start;}
.case-toc {position:sticky;top:110px;max-height:calc(100vh - 130px);overflow:auto;scrollbar-width:thin;}
.case-toc summary {font:600 15px/1.5 var(--heading);letter-spacing:-.025em;list-style:none;cursor:default;margin-bottom:19px;}
.case-toc summary::-webkit-details-marker {display:none;}
.case-toc nav {display:flex;flex-direction:column;align-items:stretch;border-left:1px solid var(--line);}
.case-toc nav a {padding:8px 14px;font-size:14px;line-height:1.55;color:var(--blue);border-left:2px solid transparent;margin-left:-1px;}
.case-toc nav a:hover,.case-toc nav a[aria-current="location"] {color:var(--navy);border-left-color:var(--navy);font-weight:600;}
.case-article {max-width:790px;min-width:0;font-size:17px;line-height:1.85;}
.case-article h2,.case-article h3 {font-family:var(--heading);font-weight:600;letter-spacing:-.045em;line-height:1.28;scroll-margin-top:115px;}
.case-article h2 {font-size:clamp(1.9rem,2.7vw,2.55rem);margin-top:78px;margin-bottom:25px;}
.case-article h2:first-child {margin-top:0;}
.case-article h3 {font-size:clamp(1.35rem,2vw,1.75rem);margin-top:50px;margin-bottom:18px;}
.case-article p {margin:0 0 22px;}
.case-article strong {font-weight:600;}
.case-article ul,.case-article ol {margin:0 0 28px;padding-left:26px;}
.case-article li {padding-left:6px;margin-bottom:8px;}
.case-article li::marker {color:var(--blue);}
.case-article hr {border:0;border-top:1px solid var(--line);margin:60px 0;}
.case-article blockquote {margin:34px 0;padding:24px 30px;border-left:4px solid var(--yellow);background:var(--ice);font-weight:600;}
.case-article code {font-family:var(--mono);font-size:.85em;}
.case-article a {text-decoration:underline;text-underline-offset:3px;}
.case-table-scroll {overflow-x:auto;margin:26px 0 34px;}
.case-article table {border-collapse:collapse;width:100%;min-width:480px;font-size:15px;line-height:1.6;}
.case-article th,.case-article td {text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:13px 15px;}
.case-article th {font-family:var(--heading);font-weight:600;background:var(--ice);}
.case-article .case-highlights {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:26px 0 42px;padding:0;list-style:none;}
.case-article .case-highlights li {display:flex;flex-direction:column;gap:15px;min-height:185px;margin:0;padding:25px 23px 27px;border:1px solid var(--line);border-radius:28px;background:var(--ice);}
.case-highlight-value {display:block;font:600 clamp(1.25rem,2vw,1.6rem)/1.25 var(--heading);letter-spacing:-.045em;}
.case-highlight-description {display:block;font-size:14px;line-height:1.6;}
.case-next {padding:72px 0 88px;background:var(--ice);}
.case-next p {font:13px/1.7 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--blue);margin-bottom:18px;}
.case-next a:not(.case-all-link) {display:flex;justify-content:space-between;align-items:center;gap:30px;max-width:900px;font:600 clamp(1.7rem,3vw,2.75rem)/1.3 var(--heading);letter-spacing:-.05em;}
.case-next a:not(.case-all-link):hover {color:var(--blue);}
.case-next .icon {width:28px;height:28px;}
.case-all-link {display:inline-block;margin-top:42px;font-weight:600;color:var(--blue);}
@media(max-width:1000px) {
  .case-detail-layout {grid-template-columns:200px minmax(0,1fr);gap:45px;}
}
@media(max-width:720px) {
  .case-detail-hero {padding:44px 0 60px;}
  .case-back {margin-bottom:40px;}
  .case-detail-hero h1 {font-size:clamp(2rem,9vw,3rem);}
  .case-facts {grid-template-columns:1fr;margin-top:40px;}
  .case-detail-layout {display:flex;flex-direction:column;gap:48px;padding-top:58px;padding-bottom:90px;}
  .case-toc {position:static;width:100%;max-height:none;overflow:visible;}
  .case-toc details {border:1px solid var(--line);border-radius:3px;}
  .case-toc summary {cursor:pointer;list-style:revert;margin:0;padding:15px 20px;}
  .case-toc nav {max-height:48vh;overflow:auto;margin:0 20px 18px;}
  .case-article {width:100%;font-size:16px;line-height:1.8;}
  .case-article h2 {margin-top:60px;}
  .case-article h3 {margin-top:40px;}
  .case-article .case-highlights {grid-template-columns:1fr;gap:12px;}
  .case-article .case-highlights li {min-height:0;padding:22px 24px;border-radius:24px;}
  .case-next {padding:60px 0 72px;}
}

.case-detail-feature {margin-top:64px;margin-bottom:0;}
.case-detail-feature img {display:block;width:100%;height:auto;border-radius:4px;}
.case-detail-feature figcaption {margin-top:12px;color:var(--blue);font-size:13px;line-height:1.5;}
@media(max-width:720px) {.case-detail-feature {margin-top:40px;}}

.case-category-graphic {margin:38px 0 54px;}
.case-category-graphic svg {display:block;width:100%;height:auto;border-radius:4px;}
.case-category-graphic figcaption {margin-top:12px;color:var(--blue);font-size:13px;line-height:1.5;}
.case-category-graphic-mobile {display:none;}
@media(max-width:600px) {.case-category-graphic-desktop {display:none;}.case-category-graphic-mobile {display:block;}}

.case-live-figure {margin:38px 0 54px;}
.case-live-figure img {display:block;width:100%;height:auto;border-radius:4px;}
.case-live-figure figcaption {display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:12px;color:var(--blue);font-size:14px;line-height:1.6;}
.case-live-figure a {color:var(--navy);font-size:15px;font-weight:600;}

.case-inline-figure {margin:38px 0 54px;}
.case-inline-figure img {display:block;width:100%;height:auto;border-radius:4px;}
.case-inline-figure figcaption {margin-top:12px;color:var(--blue);font-size:13px;line-height:1.5;}

.case-tools-tabs {margin-top:32px;border:1px solid var(--line);background:#fff;}
.case-tools-tablist {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line);}
.case-tools-tablist button {appearance:none;border:0;border-right:1px solid var(--line);background:transparent;color:var(--navy);padding:18px 12px;font:600 17px/1.4 var(--heading);cursor:pointer;}
.case-tools-tablist button:last-child {border-right:0;}
.case-tools-tablist button:hover {background:var(--ice);}
.case-tools-tablist button[aria-selected="true"] {background:var(--navy);color:#fff;}
.case-tools-tablist button:focus-visible {outline:3px solid var(--blue);outline-offset:-3px;position:relative;z-index:1;}
.case-tools-tabs [role="tabpanel"] {padding:30px 38px 34px;}
.case-tools-tabs [role="tabpanel"][hidden] {display:none;}
.case-tools-tabs [role="tabpanel"] p {margin:0 0 4px;}
.case-tools-tabs [role="tabpanel"] ul {margin:0 0 22px;padding-left:24px;}
.case-tools-tabs [role="tabpanel"] li {margin-bottom:0;}
.case-tools-tabs [role="tabpanel"] ul:last-child {margin-bottom:0;}
@media(max-width:600px) {
  .case-tools-tablist {grid-template-columns:repeat(4,minmax(96px,1fr));overflow-x:auto;}
  .case-tools-tablist button {font-size:15px;padding:15px 10px;}
  .case-tools-tabs [role="tabpanel"] {padding:25px 22px 28px;}
}
