/* Scoped to this solution. Header scroll padding is already supplied by the site. */
.corporate-template :is(#profile-process, #profile-checks, #profile-performance, #profile-reference) { scroll-margin-top: 73px; padding-block: clamp(48px, 4.5vw, 66px); }
.profile-hero-visual { border-color: #afc9d940; background: #eef5fa; box-shadow: 0 18px 54px #00172525; }
.profile-hero-visual img { aspect-ratio: 960 / 660; }
.profile-hero-visual figcaption { font-size: 11px; padding: 14px 24px; color: #507084; }
.profile-process-card { padding: 26px; background: linear-gradient(155deg, var(--surface), var(--alt)); box-shadow: none; }
.profile-stage-heading > span { width: 30px; height: 30px; display: grid; place-items: center; background: var(--soft); border-radius: 7px; flex: 0 0 auto; }
.profile-process-card > svg { border-radius: 8px; background: var(--alt); padding: 10px; box-sizing: border-box; }
.profile-reference-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.profile-reference-stage { position: relative; min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-panel); padding: 24px; background: var(--surface); }
.profile-reference-stage:not(:last-child)::after { content: '→'; position: absolute; right: -21px; top: 47%; z-index: 1; width: 18px; color: var(--accent); font-size: 21px; }
.profile-reference-stage-heading { display: flex; align-items: center; gap: 14px; padding-bottom: 20px; border-bottom: 1px solid var(--line); margin-bottom: 20px; }
.profile-reference-stage-heading > span { width: 36px; height: 36px; border-radius: 9px; background: var(--soft); color: var(--accent); display: grid; place-items: center; font-size: 12px; flex: 0 0 auto; }
.profile-reference-stage-heading p { margin: 0 0 3px; font-size: 9px; letter-spacing: .12em; color: var(--muted); }
.profile-reference-stage-heading h3 { font-size: 20px; font-weight: 600; line-height: 1.4; margin: 0; }
.profile-reference-stage figure { margin: 0; }
.profile-reference-stage figure + figure { margin-top: 20px; }
.profile-source-view { display: block; width: 100%; height: 150px; background: #f1f6fa; border: 1px solid var(--line); border-radius: 7px; box-sizing: border-box; }
.profile-reference-stage figcaption { font-size: 12px; line-height: 1.6; color: var(--muted); margin-top: 10px; }
.profile-rack-source { padding: 24px 10px; }
.profile-original-reference { margin-top: 24px; }
.profile-original-reference summary { display: inline-flex; align-items: center; gap: 12px; cursor: pointer; font-size: 13px; min-height: 44px; color: var(--accent); list-style: none; }
.profile-original-reference summary::-webkit-details-marker { display: none; }
.profile-original-reference summary::after { content: '+'; font-size: 20px; font-weight: 400; }
.profile-original-reference[open] summary::after { content: '−'; }
.profile-original-reference summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; border-radius: 3px; }
.profile-original-reference .profile-reference { margin-top: 16px; }
@media (max-width: 999px) {
  .profile-reference-board { gap: 16px; }
  .profile-reference-stage { padding: 18px; }
  .profile-reference-stage:not(:last-child)::after { right: -16px; font-size: 17px; }
  .profile-reference-stage-heading { gap: 10px; }
  .profile-reference-stage-heading h3 { font-size: 18px; }
  .profile-reference-stage-heading > span { width: 28px; height: 32px; }
}
@media (max-width: 639px) {
  .corporate-template :is(#profile-process, #profile-checks, #profile-performance, #profile-reference) { scroll-margin-top: 69px; padding-block: 40px; }
  .profile-hero-visual figcaption { padding: 12px 18px; }
  .profile-reference-board { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .profile-reference-stage { padding: 22px; }
  .profile-reference-stage:not(:last-child)::after { content: '↓'; right: 50%; top: auto; bottom: -27px; font-size: 20px; }
  .profile-reference-stage-heading h3 { font-size: 20px; }
  .profile-source-view { height: 175px; }
}
