/* fitur-alur-tanda-tangan: page-local styles (approvals & e-signature) */

/* hero: five stations sitting on the line */
.stations-wrap { position: relative; }
.stations {
  position: absolute; left: 0; right: calc(100% / 12 + 40px); top: 50%; z-index: 4;
  display: flex; justify-content: space-between; transform: translateY(-50%);
  pointer-events: none;
}
.stations .pill { background: var(--paper); }
.stations .pill:first-child { margin-left: 18%; }
.stations .pill--ink { background: var(--ink); }

/* (01) where the approval waits today */
.chase { display: flex; flex-direction: column; justify-content: center; gap: clamp(72px, 9vw, 120px); padding: 40px 0; }
.chase__i { display: flex; align-items: center; gap: 14px; padding-left: 22px; }
.chase__i--1 { margin-left: 34%; }
.chase__i--2 { margin-left: 0; }
.chase__i--3 { margin-left: 30%; }
.chase__i .pill { background: var(--paper); }
.chase__q { font: 400 13px/1.2 var(--f-mono); color: var(--muted); }

/* (02) the route: signature moment */
.route-sub { margin-top: calc(-1 * clamp(24px, 4vw, 64px)); color: var(--dark-muted); }
.route { margin: clamp(96px, 10vw, 150px) 0 0; }
.route__list { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--gap); }
.route__exit { position: absolute; right: 0; top: 0; width: 1px; height: 1px; }
.route__n { position: relative; padding: 34px 12px 0 0; }
.route__pos { font-weight: 500; font-size: clamp(19px, 1.55vw, 26px); line-height: 1.12; letter-spacing: -.024em; margin: 12px 0 6px; text-wrap: balance; }
.route__role { font: 400 12px/1.4 var(--f-mono); color: var(--dark-muted); letter-spacing: .02em; }
.route__chip { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 22px; min-height: 66px; }
.sec--dark .route .pill { color: var(--paper); border-color: #4A4741; white-space: normal; text-align: left; line-height: 1.25; }
.sec--dark .route .pill--accent { color: var(--paper); border-color: var(--accent-dk); background: rgba(224, 97, 63, .16); }
.sec--dark .route .pill--dash { border-color: var(--accent-dk); color: #F1C7B9; }
.sec--dark .route .pill--dash::before { background: var(--accent-dk); }
.route__tag { margin-top: 40px; }
/* the moment: before the line reaches a position it is dim; its decision chip comes into focus once it does */
.js:not(.reduce) .route__n { opacity: .32; transition: opacity .8s var(--ease); }
.js:not(.reduce) .route__n.is-on { opacity: 1; }
.js:not(.reduce) .route__chip > * { opacity: 0; transform: translateY(8px); transition: opacity .7s var(--ease), transform .9s var(--ease); }
.js:not(.reduce) .route__n.is-on .route__chip > * { opacity: 1; transform: none; }
.js:not(.reduce) .route__n.is-on .route__chip > :nth-child(2) { transition-delay: .35s; }

.route-rows { margin-top: clamp(96px, 9vw, 140px); }
.route-note { margin-top: 28px; }
.sec--dark .route-rows { border-top-color: var(--paper); }
.route-frame { margin-top: clamp(72px, 8vw, 120px); }

/* (03) signing tiers */
.tiers { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); }
.tier { border-top: 1px solid var(--ink); padding: 26px 32px 0 0; }
.tier .h3 { margin: 14px 0 16px; }
.tier--cert { border-top: 2px solid var(--accent); padding-top: 25px; }
.tier--cert .label { color: var(--accent); }
.sign-rows { margin-top: clamp(72px, 8vw, 112px); }
.sign-frame { margin-top: clamp(80px, 9vw, 130px); }
/* the signatures shot is cropped above its e-Meterai rows, which name a specific issuer */
.crop-top .frame__media { aspect-ratio: 1600 / 720; overflow: hidden; }
.crop-top .frame__img { position: absolute; inset: 0 0 auto 0; }
.sign-spot { position: absolute; left: 47.2%; top: 53.2%; width: 13%; height: auto; aspect-ratio: 1; transform: translate(-50%, -50%); pointer-events: none; }

/* (04) evidence */
.ev-frame { margin-top: clamp(64px, 7vw, 104px); }

/* (05) modules and providers */
.needs { border-top: 1px solid var(--ink); }
.needs li { display: grid; grid-template-columns: 2fr 8fr; gap: var(--gap); align-items: baseline; padding: 22px 0 24px; border-bottom: 1px solid var(--hair); }
.needs .pill { justify-self: start; }
.needs p { font-size: clamp(17px, 1.3vw, 21px); line-height: 1.5; max-width: 38em; }

@media (max-width: 1100px) {
  /* below 1100px the route stacks, so the line runs down its left edge */
  .route__list { display: block; }
  .route__n { padding: 0 0 40px 30px; }
  .route__exit { display: none; }
  .route__tag { padding-left: 30px; }
  .route__chip { min-height: 0; flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 760px) {
  .stations { position: static; transform: none; flex-wrap: wrap; justify-content: flex-start; gap: 8px; margin: -6px 0 30px 32px; }
  .stations .pill:first-child { margin-left: 0; }
  .stations { gap: 6px; }
  .stations .pill { font-size: 11px; padding: 5px 8px; }
  .chase { padding: 48px 0 0; gap: 28px; }
  .chase__i, .chase__i--1, .chase__i--2, .chase__i--3 { margin-left: 0; padding-left: 0; }
  .route-sub { margin-top: -16px; }
  .route { margin-top: 64px; }
  .route__list { display: block; }
  .route__n { padding: 0 0 36px; }
  .route__chip { flex-direction: column; }
  .route__tag { padding-left: 0; }
  .route__pos { margin-top: 6px; }
  .route__chip { min-height: 0; margin-top: 14px; }
  .route-rows { margin-top: 72px; }
  .tiers { display: block; }
  .tier { padding-right: 0; }
  .tier + .tier { margin-top: 48px; }
  .needs li { grid-template-columns: 1fr; gap: 10px; }
}
