.dounuri-case {
  --gm-blue: #0e5a47;
  --gm-blue-dark: #083f34;
  --gm-green: #4f947a;
  --gm-orange: #d95c7b;
  --gm-yellow: #e7b75f;
}

.dounuri-case .case-hero {
  background:
    radial-gradient(circle at 83% 15%, rgba(217, 92, 123, .17), transparent 26%),
    linear-gradient(135deg, #faf5f1 0%, #eef6f1 56%, #e3f0ea 100%);
}

.dounuri-case .workflow-visual li:nth-child(2) i { background: #d95c7b; }
.dounuri-case .workflow-visual li:nth-child(3) i { background: #d49338; }
.dounuri-case .workflow-visual li:nth-child(4) i { background: #4f947a; }
.dounuri-case .case-hero h1 { font-size: clamp(2.65rem, 4.8vw, 4.35rem); line-height: 1.12; }
.dounuri-case .section-heading h2 { font-size: clamp(2rem, 3.7vw, 3.25rem); line-height: 1.2; }
.dounuri-case .problem-grid h3,
.dounuri-case .next-grid h3 { font-size: 1.22rem; line-height: 1.35; }
.dounuri-case .problem-grid p,
.dounuri-case .next-grid p,
.dounuri-case .lens-grid p,
.dounuri-case .step-main > p:not(.step-question),
.dounuri-case .outputs-grid li p { font-size: 1rem; line-height: 1.75; }
.dounuri-case .step-title h3 { font-size: 1.3rem; line-height: 1.35; }
.dounuri-case .step-main dd { font-size: .95rem; line-height: 1.6; }
.dounuri-case .manual-list span { font-size: 1rem; line-height: 1.65; }
.customer-grid { grid-template-columns: repeat(3, 1fr); }
.manual-section { padding-top: clamp(80px, 10vw, 140px); padding-bottom: clamp(80px, 10vw, 140px); }
.manual-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 40px; }
.manual-list span { padding: 20px 22px; border: 1px solid rgba(255,255,255,.17); border-radius: 16px; background: rgba(255,255,255,.07); color: rgba(255,255,255,.87); line-height: 1.55; }
.manual-list span:last-child { grid-column: 1 / -1; }
.case-photo-story { padding: clamp(70px, 9vw, 120px) 0; background: #fff; }
.photo-story-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: clamp(34px, 6vw, 86px); align-items: center; }
.photo-story-grid figure { margin: 0; overflow: hidden; border-radius: 28px; aspect-ratio: 16 / 10; background: #e7eee9; }
.photo-story-grid img { width: 100%; height: 100%; object-fit: cover; display: block; }
.partner-wordmark { margin: 14px 0 24px; color: var(--gm-blue); font-size: clamp(1.6rem, 3vw, 2.5rem); line-height: 1.05; letter-spacing: -.04em; }
.partner-wordmark strong { font-size: .72em; font-weight: 750; letter-spacing: -.02em; }
.photo-story-grid h2 { margin: 0 0 18px; color: #13251f; font-size: clamp(1.75rem, 3.5vw, 3rem); line-height: 1.18; letter-spacing: -.045em; }
.photo-story-grid p:not(.case-kicker):not(.partner-wordmark) { color: #53635d; line-height: 1.8; }
.photo-story-grid small { display: block; margin-top: 18px; color: #7a8883; line-height: 1.55; }

@media (max-width: 760px) {
  .customer-grid, .manual-list { grid-template-columns: 1fr; }
  .manual-list span:last-child { grid-column: auto; }
  .photo-story-grid { grid-template-columns: 1fr; }
  .dounuri-case .case-hero h1 { font-size: clamp(2.25rem, 10vw, 2.9rem); }
  .dounuri-case .section-heading h2 { font-size: clamp(1.85rem, 8vw, 2.45rem); }
  .dounuri-case .step-title h3 { font-size: 1.2rem; }
}
