.dnb-page { --mint: #a1ebd5; }
.mint { color: var(--mint); }
.dnb-page .case-hero h1 { font-size: clamp(2.4rem,7.3vw,7.4rem); }
.dnb-page .phase-nav { margin-top: 4rem; }
.dnb-page .phase-nav a[aria-current] { color: var(--mint); border-bottom-color: var(--mint); }
.teal-section { background: #075e54; color: #fff; }
.brief-question { margin-block: 4rem; padding-left: clamp(1.5rem,4vw,4rem); border-left: 4px solid #087a66; }
.brief-question blockquote { margin: 0; font-family: var(--display); font-size: clamp(1.7rem,3.1vw,3rem); line-height: 1.2; letter-spacing: -.04em; }
.brief-details { border-block: 1px solid #0b102040; }
.brief-details summary { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 1rem; list-style: none; cursor: pointer; padding: 1.5rem 0; font-size: 1.1rem; font-weight: 600; }
.brief-details summary::-webkit-details-marker { display: none; }
.brief-details summary::marker { content: ""; }
.brief-page-count { display: inline-block; font-size: .875rem; font-weight: 400; margin-left: 1rem; }
.brief-details summary > .arrow-icon { width: 1.2rem; height: 1.2rem; transition: transform .2s ease; }
.brief-details[open] summary > .arrow-icon { transform: rotate(180deg); }
.brief-images { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding-block: 1rem 2rem; }
.image-open { border: 0; padding: 0; background: transparent; color: inherit; display: block; width: 100%; cursor: zoom-in; }
.process-list { list-style: none; padding: 0; margin: 3rem 0 0; }
.process-list li { display: grid; grid-template-columns: .25fr 1fr; gap: 2rem; border-top: 1px solid #ffffff55; padding: 2rem 0; }
.process-list li > span { font-family: var(--display); font-size: 2rem; color: var(--mint); }
.process-list p { max-width: 50rem; margin-bottom: 0; }
.plan-timeline { list-style: none; padding: 0; margin: 4rem 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }
.plan-timeline li { border-top: 3px solid #087a66; padding: 1.7rem 1.5rem 0 0; }
.plan-timeline h3 { font-size: clamp(1.4rem,2vw,1.9rem); }
.plan-timeline .kicker { font-size: .875rem; min-height: 3rem; }
.plan-resources { background: #d9eae3; display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; padding: clamp(1.5rem,4vw,3rem); }
.budget-number { font-family: var(--display); font-size: clamp(2rem,3.8vw,3.5rem); line-height: 1.1 !important; letter-spacing: -.04em; margin: .5rem 0 1.5rem; }
.budget-number span { font-size: .5em; }
.value-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; margin-top: 4rem; }
.value-grid article { border-top: 1px solid #0b102040; padding-top: 2rem; }
.deck-intro { margin-bottom: 3rem; }
.deck { border: 1px solid #ffffff40; padding: clamp(.75rem,2vw,1.5rem); max-width: 1000px; margin-inline: auto; }
.deck-toolbar, .deck-controls, .dialog-toolbar, .dialog-pagination { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.deck-toolbar { margin-bottom: 1rem; }
.deck-status { font-size: .95rem; margin: 0; }
.deck-slide { margin-bottom: 0 !important; }
.deck-slide img { display: block; width: 100%; height: auto; max-height: min(50vh, 500px); max-height: min(50svh, 500px); object-fit: contain; background: white; }
.deck-slide figcaption { opacity: 1; padding-top: .5rem; font-size: 1rem; }
.deck-slide figcaption p { color: var(--muted); margin-block: .5rem 0; }
.deck-controls { flex-wrap: wrap; margin-bottom: 1rem; }
.deck-toolbar, .dialog-pagination { flex-wrap: wrap; }
.ui-button { background: transparent; color: inherit; border: 1px solid currentColor; padding: .65rem 1rem; min-height: 44px; cursor: pointer; font: inherit; font-size: .9rem; border-radius: 3px; }
.ui-button:hover:not(:disabled) { background: #ffffff18; }
.ui-button:disabled { opacity: .35; cursor: default; }
.case-page button:focus-visible, .case-page summary:focus-visible, .deck:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 4px; }
.slide-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: .25rem; }
.slide-numbers button { min-width: 38px; min-height: 44px; border: 1px solid transparent; color: inherit; background: transparent; font: inherit; font-size: .875rem; cursor: pointer; }
.slide-numbers button[aria-current] { background: var(--mint); color: var(--ink); }
.presentation-result { padding-top: 3rem; border-top: 1px solid #ffffff40; margin-top: 4rem; }
.presentation-result h3 { color: var(--mint); font-size: clamp(1.8rem,3.5vw,3.4rem); }
.presentation-result p:last-child { max-width: 40rem; font-size: 1.125rem; }
.image-dialog { width: calc(100vw - 2rem); max-width: 1600px; height: calc(100vh - 2rem); height: calc(100dvh - 2rem); max-height: none; border: 1px solid #ffffff50; padding: 1rem; background: var(--ink); color: var(--paper); }
.image-dialog[open] { display: flex; flex-direction: column; }
.image-dialog::backdrop { background: #05080eeb; }
.dialog-toolbar { flex-shrink: 0; }
.dialog-toolbar p { margin: 0; }
.dialog-toolbar > div { display: flex; flex-wrap: wrap; gap: .6rem; }
.dialog-image-area { flex: 1; min-height: 0; overflow: auto; margin-block: 1rem; text-align: center; }
.dialog-image-area img { display: block; width: 100%; height: 100%; object-fit: contain; }
.dialog-image-area.is-zoomed img { width: max(1190px,100%); height: auto; max-width: none; }
.dialog-pagination { flex-shrink: 0; }
.case-page [hidden] { display: none !important; }
.case-page.dialog-open { overflow: hidden; }
@media (max-width: 1000px) { .plan-timeline { grid-template-columns: 1fr 1fr; gap: 2rem; } .slide-numbers { order: 3; flex-basis: 100%; } }
@media (max-width: 760px) {
  .dnb-page .case-hero h1 { font-size: clamp(2.3rem,9vw,3.6rem); }
  .brief-images, .value-grid, .plan-resources { grid-template-columns: 1fr; gap: 2rem; }
  .process-list li { grid-template-columns: 2rem 1fr; gap: 1rem; }
  .plan-timeline { grid-template-columns: 1fr; gap: 0; }
  .plan-timeline li { border-top: 0; border-left: 3px solid #087a66; padding: .5rem 0 1.5rem 1.5rem; }
  .plan-timeline .kicker { min-height: 0; margin-bottom: .7rem; }
  .image-dialog { width: 100vw; height: 100vh; height: 100dvh; margin: 0; padding: .75rem; }
  .dialog-toolbar { flex-wrap: wrap; }
  .dialog-toolbar p { font-size: .875rem; }
  .slide-numbers { min-width: 0; max-width: 100%; flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; padding-bottom: .25rem; }
  .slide-numbers button { min-width: 44px; flex: 0 0 44px; }
}
.brief-images > *, .plan-resources > *, .value-grid > *, .process-list li > * { min-width: 0; }
@media (max-width: 380px) { .plan-timeline { grid-template-columns: 1fr; } .dialog-toolbar { gap: .5rem; } }
