/* AIMMO 03.1 — HIMART 03.1 / JOURNEY FLOW visual contract.
   The geometry below intentionally mirrors the current Himart journey system:
   one shared circle diameter, identical arrows, identical blue capsule shell,
   identical label treatment, and the same narrow-screen vertical fallback.
   Only AIMMO copy/content differs. */

html body.aimmo-system-page #journey .aimmo-ownership-journey{
  --hm-hj-gap:clamp(6px,.72vw,10px);
  --hm-hj-arrow:clamp(14px,1.35vw,20px);
  --hm-hj-cluster-inset:clamp(12px,.95vw,18px);
  --hm-hj-cluster-border-total:2px;
  --hm-hj-node-size:min(
    292px,
    calc((100cqw - var(--hm-hj-arrow) - var(--hm-hj-arrow) - var(--hm-hj-arrow) - var(--hm-hj-gap) - var(--hm-hj-gap) - var(--hm-hj-gap) - var(--hm-hj-gap) - var(--hm-hj-gap) - var(--hm-hj-gap) - var(--hm-hj-cluster-inset) - var(--hm-hj-cluster-inset) - var(--hm-hj-cluster-border-total)) / 4)
  );
  width:100%;
  min-width:0;
  max-width:100%;
  margin-top:var(--hm-subtitle-to-content);
  padding:0;
  border:0;
  border-radius:0;
  background:#000;
  box-sizing:border-box;
  container-type:inline-size;
  container-name:aimmo-himart-journey;
}

html body.aimmo-system-page #journey .aimmo-ownership-journey :is(
  .journey-stage-flow,.flow-groups,.flow-group,.flow-row,
  .wide-flow-cluster,.wide-flow-cluster-inner
){
  min-width:0;
  box-sizing:border-box;
}

html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-group{
  --line-left:0px!important;
  --line-width:100%!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}

html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-group + .flow-group{
  margin-top:44px!important;
}

@media (min-width:1025px){
  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-row{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:var(--hm-hj-gap)!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-node{
    flex:0 0 var(--hm-hj-node-size)!important;
    width:var(--hm-hj-node-size)!important;
    min-width:var(--hm-hj-node-size)!important;
    max-width:var(--hm-hj-node-size)!important;
    height:var(--hm-hj-node-size)!important;
    min-height:var(--hm-hj-node-size)!important;
    max-height:var(--hm-hj-node-size)!important;
    aspect-ratio:1/1!important;
    margin:0!important;
    padding:clamp(12px,1.35vw,22px)!important;
    border:1px solid var(--hm-line-default)!important;
    border-radius:50%!important;
    background:#000!important;
    box-sizing:border-box!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    container-type:inline-size!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-node .hm-card-no{
    margin:0 0 clamp(7px,4.8cqi,14px)!important;
    color:var(--hm-blue)!important;
    font-family:var(--hm-font-en)!important;
    font-size:clamp(9px,5cqi,12px)!important;
    font-weight:400!important;
    line-height:1.2!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-node h4{
    margin:0!important;
    max-width:100%!important;
    color:#fff!important;
    font-family:var(--hm-font-ko)!important;
    font-size:clamp(15px,10.2cqi,26px)!important;
    font-weight:100!important;
    line-height:1.18!important;
    letter-spacing:var(--hm-track-group)!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-node p{
    margin:clamp(7px,5cqi,14px) 0 0!important;
    max-width:86%!important;
    color:var(--hm-description-color)!important;
    font-family:var(--hm-font-ko)!important;
    font-size:clamp(10px,5.7cqi,14px)!important;
    font-weight:100!important;
    line-height:1.4!important;
    word-break:keep-all!important;
    overflow-wrap:break-word!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-arrow{
    position:relative!important;
    flex:0 0 var(--hm-hj-arrow)!important;
    width:var(--hm-hj-arrow)!important;
    min-width:var(--hm-hj-arrow)!important;
    max-width:var(--hm-hj-arrow)!important;
    height:clamp(30px,3vw,44px)!important;
    margin:0!important;
    padding:0!important;
    color:rgba(255,255,255,.46)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font:100 24px/1 var(--hm-font-en)!important;
    box-sizing:border-box!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .wide-flow-cluster{
    position:relative!important;
    display:inline-flex!important;
    flex:0 0 auto!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:max-content!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:var(--hm-hj-cluster-inset)!important;
    border:1px solid var(--hm-blue)!important;
    border-radius:999px!important;
    background:transparent!important;
    box-sizing:content-box!important;
    overflow:visible!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .wide-flow-cluster-inner{
    display:flex!important;
    flex:0 0 auto!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:var(--hm-hj-gap)!important;
    width:max-content!important;
    min-width:0!important;
    max-width:none!important;
    height:var(--hm-hj-node-size)!important;
    min-height:var(--hm-hj-node-size)!important;
    max-height:var(--hm-hj-node-size)!important;
    margin:0!important;
    padding:0!important;
    box-sizing:content-box!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .wide-flow-cluster-label{
    position:absolute!important;
    top:0!important;
    left:50%!important;
    z-index:2!important;
    transform:translate(-50%,-50%)!important;
    margin:0!important;
    padding:0 clamp(8px,.75vw,12px)!important;
    background:#000!important;
    color:var(--hm-blue)!important;
    font:400 var(--hm-type-note)/1.35 var(--hm-font-ko)!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
}

@media (max-width:1024px){
  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-row{
    display:flex!important;
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:14px!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .wide-flow-cluster,
  html body.aimmo-system-page #journey .aimmo-ownership-journey .wide-flow-cluster-inner{
    display:contents!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .wide-flow-cluster-label{
    position:static!important;
    display:block!important;
    width:min(100%,292px)!important;
    max-width:292px!important;
    margin:16px 0 2px!important;
    padding:0!important;
    transform:none!important;
    background:transparent!important;
    color:var(--hm-blue)!important;
    text-align:center!important;
    white-space:normal!important;
    line-height:1.45!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-node{
    flex:0 0 auto!important;
    flex-basis:auto!important;
    width:min(100%,292px)!important;
    min-width:0!important;
    max-width:292px!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:1/1!important;
    padding:clamp(18px,5vw,24px)!important;
    border:1px solid var(--hm-line-default)!important;
    border-radius:50%!important;
    background:#000!important;
    box-sizing:border-box!important;
    align-self:center!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-node .hm-card-no{
    margin:0 0 12px!important;
    color:var(--hm-blue)!important;
    font-size:10px!important;
    line-height:1.2!important;
  }
  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-node h4{
    margin:0!important;
    max-width:100%!important;
    color:#fff!important;
    font-size:clamp(18px,5.2vw,22px)!important;
    font-weight:100!important;
    line-height:1.22!important;
  }
  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-node p{
    margin:12px 0 0!important;
    max-width:84%!important;
    color:var(--hm-description-color)!important;
    font-size:clamp(12px,3.3vw,14px)!important;
    font-weight:100!important;
    line-height:1.5!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-arrow{
    position:relative!important;
    flex:0 0 34px!important;
    width:34px!important;
    min-width:34px!important;
    max-width:34px!important;
    height:34px!important;
    min-height:34px!important;
    align-self:center!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    transform:rotate(90deg)!important;
    color:rgba(255,255,255,.46)!important;
  }

  html body.aimmo-system-page #journey .aimmo-ownership-journey .flow-group + .flow-group{
    margin-top:44px!important;
  }
}
