
*, ::after, ::before {
  box-sizing: content-box;
}

.timeline > dl {
  padding: 0;
}
.timeline > dl > dt {
  margin: 0 0 20px;
  padding: 0.25em 0.8em;
  font-size: 1.8em;
  font-weight: 700;
  color: #fff;
  position: relative;
  background: #a5ae44;
  border-radius: 10px;
}
.timeline > dl > dt.ptop {
  margin: 0;
  padding: 0.3em 0.8em 0 0.8em;
  font-size: 2em;
  font-weight: 700;
  color: #fff;
  position: relative;
  background: #a5ae44;
  border-radius: 10px;
}
.timeline > dl > dt.ptop h4 {
  text-align: left;
  padding-left: 6.5em;
  margin-bottom: -3em;
}
.timeline > dl > dt.ptop .inptop {
  font-size: 0.8em;
  padding-top: 0.4em;
  padding-bottom: 0.3em;
  margin: 15px 0;
}
.timeline > dl > dt.ptop .inptop span {
  margin-left: 2.5em;
}
/* SVG */
.hana-blue::before {
  content: url(../img/so/hana-blue-24.svg);
  margin-left: 0.4em;
  margin-right: 0.4em;
}
@media screen and (max-width: 640px) {
  .timeline > dl > dt.ptop {
    margin: 0;
    padding: 0.3em 0.2em 0 0.2em;
    font-size: 1.8em;
    font-weight: 700;
    color: #fff;
    position: relative;
    background: #a5ae44;
    border-radius: 10px;
  }
  .timeline > dl > dt.ptop h4 {
    text-align: left;
    padding-left: 5.6em;
    margin-bottom: -3em;
  }
  .timeline > dl > dt.ptop .inptop {
    padding: 1em 4px 0.65em 4px;
    margin: 15px 0;
  }
  .timeline > dl > dt.ptop .inptop span {
    margin-left: 1.8em;
  }
  /* SVG */
  .hana-blue::before {
    content: url(../img/so/hana-blue-18.svg);
  }
}

.timeline > dl > dt::after {
  content: "";
  display: block;
  width: 6px;
  height: 20px;
  position: absolute;
  top: 100%;
  left: 30px; /* 120px */
  background: #a5ae44;
}
.timeline > dl li {
  list-style: none;
  padding: 0 0 2em;
  position: relative;
}
.timeline > dl li:nth-child(2n) > dl > dd {
  background: #fbffca;
  border: solid 1px #a5ae44;
}
.timeline > dl li:nth-child(2n) > dl > dd:before {
  border-right-color: #a5ae44;
}
.timeline > dl li.info > dl > dd {
  background: #ffffff;
  border: solid 1px #a5ae44;
}
.timeline > dl li.info > dl > dd:before {
  border-right-color: #a5ae44;
}

.timeline > dl li::before {
  content: "";
  display: block;
  width: 6px;
  height: 100%;
  position: absolute;
  top: 0;
  left: 30px; /* 120px */
  background: #a5ae44;
}
.timeline > dl li:last-child::before {
  height: 25px;
}
.timeline > dl li > dl {
  display: flex;
}
.timeline > dl li > dl > dt {
  /* left block */
  font-size: 20px;
  font-weight: 700;
  color: #7b8233;
  text-align: right;
  line-height: 55px;
  width: 40px; /* 90px */
  position: relative;
}
.timeline > dl li > dl > dt span {
  position: absolute;
  top: 0;
  right: -18px; /* -58 */
  border: 5px solid #a5ae44;
}
.timeline > dl li > dl > dd {
  margin-left: auto;
  padding: 10px;
  width: calc(100% - 96px); /* 182px */
  background: #fff8d8;
  border: solid 1px #a89e69;
  border-radius: 10px;
  position: relative;
}
.timeline > dl li > dl > dd::before {
  content: "";
  width: 0;
  height: 0;
  position: absolute;
  top: 16px;
  right: 100%;
  border-right: 12px solid #a89e69;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 12px solid transparent;
}
.timeline > dl li > dl > dd dt {
  margin: 0 0.75em;
  padding: 0.25em 0;
  font-size: 1.4em;
  font-weight: 700;
  color: #3c2121;
  border-bottom: 1px solid #42460c;
  text-shadow: #ffbaab 2px 2px 4px;
}
.timeline > dl li > dl > dd dt.memo {
  color: #444;
  text-shadow: #a4a4a4 2px 2px 3px;
}
.timeline > dl li > dl > dd dd {
  padding: 0.5em 0.75em;
  font-size: 1.2em;
  color: #42460c;
}

.material-icons {
  padding: 5px;
  font-size: 30px !important;
  color: #ae9744;
  background: #fff4e3;
  border-radius: 50%;
}

@media screen and (max-width: 640px) {
  .timeline > dl {
    padding: 0.4em;
  }
  .timeline > dl > dt {
    font-size: 1.8em;
    border-radius: 5px;
  }
  .timeline > dl > dt::after {
    left: 20px; /* 84px */
  }
  .timeline > dl li {
    padding: 0 0 1em;
  }
  .timeline > dl li::before {
    left: 20px; /* 84px */
  }
  .timeline > dl li > dl > dt {
    font-size: 14px;
    line-height: 44px;
    width: 4.2em;
  }
  .timeline > dl li > dl > dt span {
    right: 12px; /* -48px */
  }
  .timeline > dl li > dl > dd {
    width: calc(100% - 52px); /* 142px */
    border-radius: 5px;
  }
  .timeline > dl li > dl > dd::before {
    top: 12px;
  }
  .timeline > dl li > dl > dd dt {
    margin: 0 0.5em;
    font-size: 1.4em;
    font-weight: 400;
  }
  .timeline > dl li > dl > dd dd {
    padding: 0.5em;
    font-size: 1.2em;
    line-height: 1.4em;
  }

  .material-icons {
    font-size: 20px !important;
  }
}
