/* ==========================================================================
   Variables
   ========================================================================== */

/* ==========================================================================
   Foundation
   ========================================================================== */

.article-line {
  /* レスポンシブ計算用の基準幅（関数の引数のような役割） */
  --color-white: #fff;
  --color-base: #232e5e;
  --color-primary: #55a52c;
  --base: 640;
  max-width: 640px;
  margin: 0 auto;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";

  @media (max-width: 672px) {
    position: relative;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 100vw;
    overflow: hidden;
  }

  * {
    box-sizing: border-box !important;
  }

  p {
    margin: 0;
    line-height: 1.5;
    font-feature-settings: "palt";
    letter-spacing: 0.02em;
  }

  img {
    width: 100%;
    vertical-align: bottom;
  }

  .c-container {
    width: 100%;
    padding: 0 min(40 / var(--base) * 100vw, 40px);
    margin: 0 auto;
  }

  .c-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(450 / var(--base) * 100vw, 450px);
    height: min(99 / var(--base) * 100vw, 99px);
    text-decoration: none;

    /* span {
      display: block;
      color: var(--color-white);
      font-size: min(31.25 / var(--base) * 100vw, 31.25px);
      font-weight: bold;
      transform: translate(-0.5em, -0.15em);
      letter-spacing: 0.04em;
    } */
  }

  .mv {
    position: relative;
    background: url(/documents/d/tosei/linestamp_mv_bg-jpg) no-repeat top center;
    background-size: 100%;
    width: 100%;
    height: auto;
    aspect-ratio: 640 / 905;
    padding-top: min(144 / var(--base) * 100vw, 144px);
  }

  .mv__title {
    position: relative;
    width: min(564 / var(--base) * 100vw, 564px);
    height: auto;
    line-height: 0;
    img {
      width: 100%;
      height: auto;
    }
  }

  .mv__desc {
    margin-top: min(26 / var(--base) * 100vw, 26px);

    p {
      font-size: min(28 / var(--base) * 100vw, 28px);
      line-height: 1.71;
      letter-spacing: 0.02em;
      font-weight: bold;
      text-align: center;
      color: var(--color-base);
    }
  }

  .mv__action {
    margin-top: min(26 / var(--base) * 100vw, 26px);
    display: flex;
    justify-content: center;
  }

  .benefits {
    padding: min(52 / var(--base) * 100vw, 52px) 0;
  }

  .benefits__title {
    width: min(562 / var(--base) * 100vw, 562px);
    height: auto;
    line-height: 0;
    img {
      width: 100%;
      height: auto;
    }
  }

  .benefits01 {
    background: url(/documents/d/tosei/linestamp_benefits01_bg-jpg) no-repeat top center;
    background-size: 100%;
    aspect-ratio: 560 / 746;
    margin-top: min(48 / var(--base) * 100vw, 48px);
    padding-top: min(37 / var(--base) * 100vw, 37px);
  }

  .benefits01__img {
    display: block;
    width: min(400 / var(--base) * 100vw, 400px);
    height: auto;
    margin: 0 auto;
  }

  .benefits01__desc {
    width: fit-content;
    margin: min(13 / var(--base) * 100vw, 13px) auto 0;
    font-size: min(28.13 / var(--base) * 100vw, 28.13px);
    font-weight: bold;
    text-align: center;
    color: var(--color-base);
    background: linear-gradient(transparent 70%, #ffbb00 70%);
  }

  .benefits01__title {
    width: min(370 / var(--base) * 100vw, 370px);
    margin: min(22 / var(--base) * 100vw, 22px) auto 0;
    line-height: 0;
    img {
      width: 100%;
      height: auto;
    }
  }

  .benefits01__desc02 {
    font-size: min(28 / var(--base) * 100vw, 28px);
    line-height: 1.5;
    font-weight: bold;
    color: var(--color-base);
    text-align: center;
    margin-top: min(18 / var(--base) * 100vw, 18px);
  }

  .benefits__subheading {
    display: block;
    width: min(560 / var(--base) * 100vw, 560px);
    margin: min(48 / var(--base) * 100vw, 48px) auto;
  }

  .benefits02 {
    background: url(/documents/d/tosei/linestamp_benefits02_bg-jpg) no-repeat top center;
    background-size: 100%;
    aspect-ratio: 560 / 1052;
    padding-top: min(56 / var(--base) * 100vw, 56px);
    padding-bottom: min(43.75 / var(--base) * 100vw, 43.75px);
  }
  .benefits02__subheading {
    font-size: min(28 / var(--base) * 100vw, 28px);
    font-weight: bold;
    text-align: center;
    color: var(--color-base);
  }

  .benefits02__list {
    list-style: none;
    padding: 0;
    display: flex;
    width: min(487 / var(--base) * 100vw, 487px);

    justify-content: center;
    gap: min(18 / var(--base) * 100vw, 18px);
    margin: min(20 / var(--base) * 100vw, 20px) auto 0;
  }

  .benefits02__item {
    p {
      display: flex;
      justify-content: center;
      align-items: center;
      margin-top: min(16 / var(--base) * 100vw, 16px);
      background-color: var(--color-primary);
      color: var(--color-white);
      font-size: min(28 / var(--base) * 100vw, 28px);
      height: min(95 / var(--base) * 100vw, 95px);
      font-weight: bold;
      text-align: center;
      border-radius: 10px;
      line-height: 1.3;
      letter-spacing: 0.03em;
    }
  }

  .benefits02__img {
    display: block;
    width: min(468 / var(--base) * 100vw, 468px);
    height: auto;
    margin: min(20 / var(--base) * 100vw, 20px) auto 0;
  }

  .benefits02__title {
    width: min(457 / var(--base) * 100vw, 457px);
    margin: min(44 / var(--base) * 100vw, 44px) auto 0;
    line-height: 0;
    img {
      width: 100%;
      height: auto;
    }
  }

  .benefits02__desc {
    font-size: min(28 / var(--base) * 100vw, 28px);
    line-height: 1.5;
    letter-spacing: 0.03em;
    font-weight: bold;
    text-align: center;
    color: var(--color-base);
    margin-top: 0.6em;
  }

  .benefits03 {
    padding-top: min(48 / var(--base) * 100vw, 48px);
  }

  .benefits03__title {
    width: min(457 / var(--base) * 100vw, 457px);
    margin: 0 auto;
    line-height: 0;
    img {
      width: 100%;
      height: auto;
    }
  }
  .benefits03__img {
    display: block;
    width: min(406 / var(--base) * 100vw, 406px);
    height: auto;
    margin: min(38 / var(--base) * 100vw, 38px) auto;
  }
  .benfits03__action {
    margin-top: 1.5em;
    display: flex;
    justify-content: center;
  }

  .benefits03__heading {
    width: min(555 / var(--base) * 100vw, 555px);
    margin-top: min(43 / var(--base) * 100vw, 43px);
    line-height: 0;

    img {
      width: 100%;
      height: auto;
    }
  }

  .notification {
    position: relative;
  }

  .notification__bg02 {
    position: relative;
    z-index: 2;
    transform: translateY(calc(min(52 / var(--base) * 100vw, 52px) * -1));
    margin-bottom: calc(min(52 / var(--base) * 100vw, 52px) * -1);
  }

  .notification__inner {
    background-color: #b0db72;
  }

  .notification__title {
    margin-top: calc(min(56 / var(--base) * 100vw, 56px) * -1);
    width: min(438 / var(--base) * 100vw, 438px);

    img {
      width: 100%;
      height: auto;
    }
  }

  .notification__list {
    position: relative;
    z-index: 3;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: min(27 / var(--base) * 100vw, 27px) min(19 / var(--base) * 100vw, 19px);
    margin-top: min(163 / var(--base) * 100vw, 163px);
  }

  .notification__item {
    opacity: 0;
    transform: translateY(25%);
    width: calc((100% - min(19 / var(--base) * 100vw, 19px) * 2) / 3);
    position: relative;
    transition: all 0.6s ease-in-out;

    &.is-show {
      opacity: 1;
      transform: translateY(0);
    }
    img {
      width: 100%;
      height: auto;
    }

    &:nth-child(2),
    &:nth-child(5),
    &:nth-child(8),
    &:nth-child(11),
    &:nth-child(14),
    &:nth-child(17),
    &:nth-child(19) {
      margin-top: calc(min(103 / var(--base) * 100vw, 103px) * -1);
    }

    p {
      font-feature-settings: "palt";
      position: absolute;
      top: min(84 / var(--base) * 100vw, 84px);
      left: 50%;
      transform: translateX(-50%);
      font-size: min(28 / var(--base) * 100vw, 28px);
      letter-spacing: 0;
      line-height: 1.25;
      font-weight: bold;
      color: var(--color-base);
      text-align: center;
      width: 100%;
      text-align: center;
      height: min(83 / var(--base) * 100vw, 83px);
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;

      span {
        font-size: min(24 / var(--base) * 100vw, 24px);
      }
    }
  }

  .richmenu {
    padding-top: min(52 / var(--base) * 100vw, 52px);
  }

  .richmenu__title {
    width: min(590 / var(--base) * 100vw, 590px);
    margin: 0 auto;
    img {
      width: 100%;
      height: auto;
    }
  }

  .richmenu__img {
    width: min(430 / var(--base) * 100vw, 430px);
    height: auto;
    margin: min(24 / var(--base) * 100vw, 24px) auto 0;
    img {
      width: 100%;
      height: auto;
    }
  }

  .richmenu__list {
    list-style: none;
    padding: 0;
    display: grid;
    width: min(500 / var(--base) * 100vw, 500px);
    grid-template-columns: repeat(3, 1fr);
    gap: min(18 / var(--base) * 100vw, 18px);
    margin: min(38 / var(--base) * 100vw, 38px) auto 0;
  }

  .richmenu__item {
    width: min(155 / var(--base) * 100vw, 155px);
    height: auto;
    img {
      width: 100%;
      height: auto;
    }
  }

  .richmenu__subheading {
    width: min(421 / var(--base) * 100vw, 421px);
    margin: min(33 / var(--base) * 100vw, 33px) auto 0;
    padding-bottom: min(68 / var(--base) * 100vw, 68px);
    border-bottom: 5px dotted var(--color-primary);
    img {
      width: 100%;
      height: auto;
    }
  }

  .guide {
    padding-top: min(20 / var(--base) * 100vw, 20px);
  }
  .guide__title {
    width: min(573 / var(--base) * 100vw, 573px);
    margin: 0 auto calc(min(23 / var(--base) * 100vw, 23px) * -1);
    img {
      width: 100%;
      height: auto;
    }
  }

  .guide__inner {
    background: url(/documents/d/tosei/linestamp_guide_bg-jpg) no-repeat top center;
    background-size: 100%;
    width: 100%;
    height: auto;
    padding-top: min(42 / var(--base) * 100vw, 42px);

    aspect-ratio: 560 / 2642;
  }

  .guide__heading {
    display: flex;
    align-items: center;
    width: 100%;
    margin: 0 auto;
    gap: min(20 / var(--base) * 100vw, 20px);
    padding: 0 min(42 / var(--base) * 100vw, 42px);
    img {
      width: min(75 / var(--base) * 100vw, 75px);
      height: auto;
    }

    span {
      font-size: min(28 / var(--base) * 100vw, 28px);
      font-weight: bold;
      color: var(--color-base);
      letter-spacing: 0.03em;
      line-height: 1.5;
    }
  }

  .guide01 {
  }

  .guide01__action {
    display: flex;
    justify-content: center;
    margin-top: min(25 / var(--base) * 100vw, 25px);
  }

  .guide01__desc {
    p {
      font-size: min(28 / var(--base) * 100vw, 28px);
      line-height: 1.5;
      color: var(--color-primary);
      letter-spacing: 0.03em;
      text-align: center;
      margin-top: min(23 / var(--base) * 100vw, 23px);
    }
  }

  .guide01__img {
    width: min(450 / var(--base) * 100vw, 450px);
    height: auto;
    margin: min(17 / var(--base) * 100vw, 17px) auto 0;
    img {
      width: 100%;
      height: auto;
    }
  }

  .guide02 {
    padding-top: min(80 / var(--base) * 100vw, 80px);
  }

  .guide02__img01 {
    position: relative;
    width: min(405 / var(--base) * 100vw, 405px);
    height: auto;
    margin: min(25 / var(--base) * 100vw, 25px) auto min(40 / var(--base) * 100vw, 40px);

    .img-screen {
      width: 100%;
      height: auto;
    }

    .img-tap {
      position: absolute;
      top: min(75 / var(--base) * 100vw, 75px);
      left: min(367 / var(--base) * 100vw, 367px);
      width: min(136 / var(--base) * 100vw, 136px);
      height: auto;
    }
  }

  .guide02__desc {
    p {
      font-size: min(28 / var(--base) * 100vw, 28px);
      line-height: 1.5;
      letter-spacing: 0.03em;
      font-weight: bold;
      text-align: center;
    }

    span {
      color: var(--color-primary);
    }
  }

  .guide02__img02 {
    position: relative;
    width: min(422 / var(--base) * 100vw, 422px);
    height: auto;
    margin: min(23 / var(--base) * 100vw, 23px) auto min(33 / var(--base) * 100vw, 33px);

    .img-screen {
      width: 100%;
      height: auto;
    }

    .img-tap {
      position: absolute;
      top: min(147 / var(--base) * 100vw, 147px);
      left: min(376 / var(--base) * 100vw, 376px);
      width: min(136 / var(--base) * 100vw, 136px);
      height: auto;
    }
  }

  .guide03 {
    padding-top: min(90 / var(--base) * 100vw, 90px);
  }

  .guide03__img {
    width: min(332 / var(--base) * 100vw, 332px);
    height: auto;
    margin: min(8 / var(--base) * 100vw, 8px) auto;
    img {
      width: 100%;
      height: auto;
    }
  }

  .guide03__desc {
    width: min(470 / var(--base) * 100vw, 470px);
    margin: 0 auto;
    padding-bottom: min(36 / var(--base) * 100vw, 36px);
    border-bottom: 5px dotted var(--color-primary);
    p {
      font-size: min(28 / var(--base) * 100vw, 28px);
      line-height: 1.5;
      letter-spacing: 0.02em;
      font-weight: bold;
      text-align: center;
    }

    span {
      color: var(--color-primary);
    }
  }

  .guide04 {
    padding-top: min(25 / var(--base) * 100vw, 25px);
  }

  .guide04__inner {
    width: min(509 / var(--base) * 100vw, 509px);
    height: auto;
    margin: 0 auto;
    display: grid;
    grid-template-columns: min(158 / var(--base) * 100vw, 158px) 1fr;
    gap: min(20 / var(--base) * 100vw, 20px);

    img {
      width: 100%;
      height: auto;
    }

    .guide04__body {
      height: 100%;
      align-self: center;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      h3 {
        font-size: min(28 / var(--base) * 100vw, 28px);
        line-height: 1.5;
        letter-spacing: 0.03em;
        font-weight: bold;
      }

      p {
        margin-top: min(21 / var(--base) * 100vw, 21px);
        font-size: min(27 / var(--base) * 100vw, 27px);
        line-height: 1.5;
        letter-spacing: 0;
      }
    }
  }
  .guide04__fukidashi {
    position: relative;
    margin: min(14 / var(--base) * 100vw, 14px) auto 0;
    width: min(515 / var(--base) * 100vw, 515px);
    padding: min(32 / var(--base) * 100vw, 32px) min(22 / var(--base) * 100vw, 22px);
    background: url(/documents/d/tosei/linestamp_guide04_fukidashi-png) no-repeat top center;
    background-size: 100%;

    .fukidashi-title {
      font-size: min(27 / var(--base) * 100vw, 27px);
      line-height: 1.5;
      letter-spacing: 0;
      font-weight: bold;
      text-align: center;
      color: var(--color-primary);
    }

    .fukidashi-list {
      margin: min(16 / var(--base) * 100vw, 16px) auto 0;
      list-style: none;
      padding: 0;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      width: min(468 / var(--base) * 100vw, 468px);
      gap: min(9 / var(--base) * 100vw, 9px);
    }

    .fukidashi-item {
      img {
        width: 100%;
        height: auto;
      }

      p {
        font-size: min(17 / var(--base) * 100vw, 17px);
        font-weight: bold;
        text-align: center;
        letter-spacing: 0;
        margin-top: min(8 / var(--base) * 100vw, 8px);
      }
    }
  }

  .policy {
    padding: min(43 / var(--base) * 100vw, 43px) 0;
  }

  .policy__title {
    font-size: min(50 / var(--base) * 100vw, 50px);
    line-height: 1.2;
    letter-spacing: 0.03em;
    font-weight: bold;
    text-align: center;
    width: fit-content;
    margin: 0 auto;
    background: linear-gradient(transparent 70%, #55a52c 70%);
  }

  .policy__link {
    text-align: center;
    display: block;
    color: #0063d3;
    margin-top: min(23 / var(--base) * 100vw, 23px);
    font-size: min(28 / var(--base) * 100vw, 28px);
  }

  .cta {
    position: relative;
    width: 100%;
    aspect-ratio: 640 / 739;
    background: url(/documents/d/tosei/linestamp_cta_bg-jpg) no-repeat top center;
    background-size: 100%;
    padding-top: min(161 / var(--base) * 100vw, 161px);
  }

  .cta__title {
    font-size: min(28 / var(--base) * 100vw, 28px);
    line-height: 1.2;
    letter-spacing: 0.03em;
    font-weight: bold;
    text-align: center;

    span {
      display: inline-block;
    }

    .cta-row02 {
      margin-top: min(6 / var(--base) * 100vw, 6px);
      display: inline-block;
      font-size: min(36 / var(--base) * 100vw, 36px);
      background: linear-gradient(transparent 70%, #55a52c 70%);
    }

    .cta-row03 {
      margin-top: min(16 / var(--base) * 100vw, 16px);
    }
  }

  .cta__desc {
    margin-top: min(28 / var(--base) * 100vw, 28px);
    text-align: center;
    p {
      font-size: min(28 / var(--base) * 100vw, 28px);
      line-height: 1.5;
      letter-spacing: 0.03em;
      font-weight: bold;
      text-align: center;
      color: var(--color-primary);
    }
  }

  .cta__action {
    margin-top: min(28 / var(--base) * 100vw, 28px);
    display: flex;
    justify-content: center;
  }

  .cta__copyright {
    position: absolute;
    bottom: min(14 / var(--base) * 100vw, 14px);
    left: 50%;
    transform: translateX(-50%);
    font-size: min(18 / var(--base) * 100vw, 18px);
    line-height: 1.5;
    letter-spacing: 0.03em;
    font-weight: 500;
    text-align: center;
    margin-top: min(28 / var(--base) * 100vw, 28px);
  }
}
