:root {
  --width-xs: min(560px, 100%);
  --width-s: min(800px, 100%);
  --width-m: min(1080px, 100%);
  --width-l: min(1240px, 100%);
  
  --color-base-bk: #333;
  --color-bk: #111;
  --color-lbgry: #F5F7F8;
  --color-bl: #0052AF;
  --color-sbl: #22AFE1;
  --color-lbl: #DEE7F2;
  --color-gry-01: #f8f8f8;
  --color-gry-02: #dbdbdb;
  --color-gry-03: #888;
  --color-or: #FFA726;
  --color-pk: #FF585F;
  --color-lpk: #F9E9EA;

  --size-base: 8px;
  --size-xs: calc(var(--size-base) * 1.5); /* 12px */
  --size-s: calc(var(--size-base) * 1.75); /* 14px */
  --size-m: calc(var(--size-base) * 2); /* 16px */
  --size-ml: calc(var(--size-base) * 2.25); /* 18px */
  --size-l: calc(var(--size-base) * 2.5); /* 20px */
  --size-2l: calc(var(--size-base) * 3); /* 24px */
  --size-3l: calc(var(--size-base) * 4); /* 32px */
  --size-4l: calc(var(--size-base) * 5); /* 40px */
  --size-5l: calc(var(--size-base) * 7); /* 56px */
  --size-min: calc(var(--size-base) / 2); /* 4px */
  --size-max: calc(var(--size-base) * 10); /* 80px */

  --lheight-xs: 1.2;
  --lheight-s: 1.4;
  --lheight-m: 1.58;
  --lheight-l: 2;
  --lheight-base: 1.75;

  --family-en: "Roboto", "Noto Sans JP", sans-serif;
}

html,
body {
  min-width: auto !important;
}
body {
  background: #fff;
}
main {
  line-height: var(--lheight-base);
  letter-spacing: 0.04em;
  color: var(--color-base-bk);
  font-size: var(--size-m);
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  text-align: justify;
  & h1, & h2, & h3, & h4, & h5 {
    line-height: var(--lheight-s);
  }
  & img {
    max-width: 100%;
    vertical-align: bottom;
  }
  p, figure, ul, ol, li {
    margin: 0;
    padding: 0;
  }
  picture {
    display: block;
  }
  li {
    list-style: none;
  }
}
.is-hidden {
  display: none !important;
}


/* layout
====================================================*/
/* section --------------------------- */
.l-section__bg {
  background: var(--color-lbgry);
}

/* inner --------------------------- */
*[class^="l-inner--"] {
  margin: 0 auto;
}
.l-inner--l {
  width: var(--width-l);
}
.l-inner--m {
  width: var(--width-m);
}
.l-inner--s {
  width: var(--width-s);
}
.l-inner--xs {
  width: var(--width-xs);
}

/* その他 --------------------------- */
.l-area--cta {
  padding: var(--size-4l) 0 var(--size-max);
  & .m-btn--cta {
    position: relative;
    flex-direction: column;
    width: min(600px, 100%);
    height: calc(var(--size-max) * 1.5);
    margin: 0 auto;
    border-radius: var(--size-m);
    &::before,
    &::after {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
    }
    &::before {
      width: var(--size-5l);
      height: var(--size-5l);
      left: var(--size-2l);
    }
    &::after {
      right: var(--size-4l);
      width: var(--size-3l);
      height: var(--size-3l);
      
      font-size: var(--size-2l);
    }
    & span:nth-of-type(1) {
      font-size: var(--size-ml);
      font-weight: 500;
    }
    & span:nth-of-type(2) {
      font-size: var(--size-3l);
    }
  }
}


/* module
==================================================== */
/* heading / title --------------------------- */
*[class^="m-heading"] {
  letter-spacing: 0.08em;
}
.m-heading--01,
.m-heading--02 {
  margin: 0 0 var(--size-4l);
  text-align: center;
  & .__main,
  & .__sub {
    display: block;
    width: fit-content;
  }
  & .__main {
    margin: 0 auto;
    line-height: 1.1em;
    & span {
      font-size: 1.25em;
    }
  }
  & .__sub {
    margin: 0 auto var(--size-xs);
    line-height: var(--lheight-xs);
  }
  & + .s-ta--c {
    margin-top: calc(var(--size-m) * -1);
  }
}
.m-heading--01 {
  color: var(--color-bk);
  & .__sub {
    padding: var(--size-min) 0;
    border-top: 2px solid var(--color-bk);
    border-bottom: 2px solid var(--color-bk);
  }
}
.m-heading--02 {
  & .__main {
    position: relative;
    padding: 0 0.5em;
    color: var(--color-bl);
    &::before,
    &::after {
      content: "";
      position: absolute;
      bottom: -0.05em;
      display: block;
      width: 2px;
      height: 1em;
      background: var(--color-bl);
      transform: rotate(25deg);
    }
    &::before {
      left: 0;
    }
    &::after {
      right: 0;
    }
  }
  & .__sub {
    padding: var(--size-base);
    color: #fff;
    background: var(--color-bl);
  }
}
.m-heading--03 {
  width: fit-content;
  margin: 0 auto var(--size-4l);
  padding: 0 0.5em var(--size-min);
  border-bottom: 2px solid var(--color-bl);
}
.m-title--tri {
  color: var(--color-bl);
  font-weight: 700;
  &::before {
    content: "";
    position: relative;
    top: -0.1em;
    display: inline-block;
    width: 0;
    height: 0;
    margin-right: var(--size-base);
    border-style: solid;
    border-width: 0.75em 0.75em 0 0;
    border-color: var(--color-bl) transparent transparent transparent;
  }
}
.m-title--line {
  text-align: center;
  &::before,
  &::after {
    display: inline-block;
  }
  &::before {
    content: "＼";
    margin-right: 0.25em;
  }
  &::after {
    content: "／";
    margin-left: 0.25em;
  }
}

/* list --------------------------- */
.m-list__dot {
  & > li {
    margin-left: 1.5em;
    list-style: disc;
  }
}
.m-list__flex {
  display: flex;
  justify-content: space-between;
}
.m-list--check-01,
.m-list--check-02 {
  & > li {
    position: relative;
    &::before {
      content: "\e5ca";
      line-height: 1;
      font-weight: 500;
      font-family: "Material Symbols Outlined";
      text-align: center;
    }
  }
}
.m-list--check-01 {
  margin: var(--size-m) 0 var(--size-l);
  font-weight: 700;
  & > li,
  & > li::before {
    display: flex;
    align-items: center;
  }
  & > li {
    margin-bottom: var(--size-min);
    &::before {
      justify-content: center;
      width: 1.25em;
      height: 1.25em;
      margin-right: var(--size-base);
      color: #fff;
      background: var(--color-sbl);
      border-radius: 50%;
    }
  }
}
.m-list--check-02 {
  & > li {
    padding-left: 1.55em;
    &::before {
      position: absolute;
      top: 0.4em;
      left: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 1em;
      height: 1em;
      margin-right: var(--size-base);
      font-size: 1em;
      font-weight: 500;
      font-family: "Material Symbols Outlined";
      text-align: center;
      border: 1px solid var(--color-base-bk);
    }
  }
}

/* link / btn --------------------------- */
.m-link--opacity {
  transition: opacity 0.2s;
  &:hover {
    opacity: 0.6;
  }
}
.m-btn--more {
  display: block;
  position: relative;
  margin-top: var(--size-l);
  width: min(300px, 70vw);
  height: calc(var(--size-m) * 2.25);
  opacity: 1 !important;
  &::after {
    content: "";
    display: block;
    position: absolute;
    top: var(--size-min);
    left: var(--size-min);
    z-index: 0;
    background: #fff;
  }
  &.s-ta--c {
    margin-left: auto;
    margin-right: auto;
  }
  &::after,
  & span {
    width: 100%;
    height: 100%;
    border: 1px solid var(--color-bl);
  }
  & span {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 500;
    text-align: center;
    background: var(--color-lbl);
    transition: color 0.2s, background 0.2s;
    z-index: 1;
    &::after {
      content: "";
      position: relative;
      top: 0.01em;
      display: inline-block;
      width: 20px;
      height: 10px;
      margin-left: var(--size-base);
      mask: url(/assets2/images/top/icon_arrow.svg) no-repeat center;
      background: var(--color-bl);
      transition: background 0.2s;
    }
  }
  &:hover span {
    color: #fff;
    background: var(--color-bl);
    &::after {
      background: #fff;
    }
  }
}
.m-btn--cta,
.m-btn--cta::after {
  display: flex;
  align-items: center;
  justify-content: center;
}
.m-btn--cta {
  color: #fff !important;
  font-weight: 700;
  text-align: center;
  background: var(--color-pk);
  background: linear-gradient(180deg, #FFA6A9 -26.37%, #FF585F 68.39%, #FFA4A8 100%);
  border: 3px solid #fff;
  box-shadow: var(--box-shadow-01);
  &::before {
    content: "";
    display: block;
    width: 34px;
    aspect-ratio: 1/1;
    margin-right: var(--size-base);
    background: url("/assets2/images/top/icon_time.svg") no-repeat 50% 50%;
    background-size: cover;
  }
  &::after {
    content: "\e315";
    position: relative;
    top: 0.05em;
    flex-shrink: 0;
    width: var(--size-ml);
    height: var(--size-ml);
    margin-left: var(--size-base);
    padding-left: 0.1em;
    line-height: 1;
    color: var(--color-pk);
    font-size: var(--size-m);
    font-weight: 500;
    font-family: "Material Symbols Outlined";
    text-align: center;
    background: #fff;
    box-sizing: border-box;
    border-radius: 50%;
  }
}

/* box --------------------------- */
.m-box--line {
  background: #fff;
  border: 1px solid var(--color-bl);
}
.m-box--gry {
  margin-top: var(--size-4l);
  background: var(--color-gry-01);
}
.m-box--campaign {
  overflow: hidden;
  position: relative;
  text-align: center;
  background: radial-gradient(circle, #ffe9c9 1px, transparent 1px) #FFFAF2;
  background-size: 4px 4px;
  border: solid var(--color-or);
  z-index: 1;
  & > * {
    position: relative;
    z-index: 1;
  }
  & .m-title {
    width: fit-content;
    margin: 0 auto;
    padding-bottom: var(--size-base);
    line-height: 1;
    color: var(--color-or);
    border-bottom: 1px solid var(--color-or);
  }
  & .m-ballon,
  & .m-date {
    color: #fff;
    background: var(--color-or);
  }
  & .m-ballon {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 0.3em;
    line-height: var(--lheight-xs);
    font-weight: 700;
    border-radius: 50%;
    &::before {
      content: "";
      display: block;
      position: absolute;
      right: -6%;
      bottom: 8%;
      width: 22%;
      height: 22%;
      background: var(--color-or);
      clip-path: polygon(0 0, 100% 0%, 50% 100%);
      transform: rotate(-50deg);
    }
  }
  & .m-price {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    line-height: 1;
    color: var(--color-or);
    font-size: var(--size-3l);
    font-weight: 700;
    & span[data-text] {
      display: inline-block;
      position: relative;
      &::before,
      &::after {
        content: attr(data-text);
        display: block;
        top: 0;
        left: 0;
        position: absolute;
      }
        &::before {
        color: var(--color-or);
        -webkit-text-stroke-width: 0;
        z-index: 30;
      }
      &::after {
        color: #fff;
        -webkit-text-stroke-width: 5px;
        z-index: 20;
        text-shadow: 6px 5px 0 rgba(0, 0, 0, 0.3);
      }
    }
    & .__first,
    & .__unit {
      position: relative;
      top: -0.4em;
    }
    & .__first {
      font-size: var(--size-4l);
    }
    & .fee-text__price {
      margin: 0 0.02em 0 -0.01em;
      line-height: calc(var(--size-max) * 1.25);
      letter-spacing: 0;
      font-size: calc(var(--size-max) * 1.25);
      font-family: var(--family-en);
    }
    & .__unit {
      & span {
        display: block;
        width: fit-content;
        &[data-text="%"] {
          font-size: 140%;
        }
      }
    }
  }
  & .m-date {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    padding: calc(var(--size-min) / 2);
    line-height: var(--lheight-m);
    font-weight: 500;
  }
}

/* state
==================================================== */
.s-dp--b { display: block; }
.s-ta--c { text-align: center; }
.s-td--l { text-decoration: line-through; }
.s-fs--s { font-size: var(--size-s); }
.s-fs--xs { font-size: var(--size-xs); }
.s-fw--b { font-weight: 700; }

.s-mtb--m { margin-top: var(--size-m); margin-bottom: var(--size-m); }
.s-mt--xs { margin-top: var(--size-xs); }
.s-mt--s { margin-top: var(--size-s); }
.s-mt--m { margin-top: var(--size-m); }
.s-mb--xs { margin-bottom: var(--size-xs); }
.s-mb--s { margin-bottom: var(--size-s); }
.s-mb--m { margin-bottom: var(--size-m); }

.s-arrow::before {
  content: "";
  width: 0.5em;
  height: 0.5em;
}

/* js
==================================================== */
.js-slider {
  position: relative;
  &[data-slider="slide"] {
    & .js-slider__item {
      box-shadow: var(--box-shadow-01);
    }
  }
  &[data-slider="effort"] {
    &:not(.swiper) .js-slider__wrapper {
      display: flex;
      align-items: center;
      justify-content: center;
    }
    & .js-slider__item {
      width: min(400px, 80%);
      &:not(.swiper-slide) {
        margin: 0 var(--size-base);
      }
    }
  }
  &[data-slider="case"] .swiper-wrapper {
    transition-timing-function: linear;
  }
  & .swiper-pagination {
    position: static;
  }
  
}

/* 各コンテンツ
==================================================== */
.header {
  .header--mainvisual {
    overflow: hidden;
    &:not(.--bnr) {
      background: linear-gradient(190deg, #fbfbfb, #f5f8f8 55%, #d3dde4);
      & .l-inner--m::before {
        content: "";
        position: absolute;
        bottom: 0;
        display: block;
        background: url("/assets2/images/top/mv.png") no-repeat left bottom;
        background-size: contain;
        aspect-ratio: 1 / 0.841;
      }
    }
    &.--bnr {
      background: var(--color-pk);
      & picture,
      & img {
        display: block;
      }
    }


    & .l-inner--m {
      position: relative;
      &::before {
        content: "";
        position: absolute;
        bottom: 0;
        display: block;
        background: url("/assets2/images/top/mv.png") no-repeat left bottom;
        background-size: contain;
        aspect-ratio: 1 / 0.841;
      }
      & .m-detail {
        width: fit-content;
        margin-left: auto;
        line-height: var(--lheight-xs);
        letter-spacing: 0.05em;
        color: var(--color-bk);
        font-size: var(--size-3l);
        font-weight: 700;
        & .__text-01 {
          position: relative;
          width: fit-content;
          margin: 0 0 var(--size-base);
          padding-bottom: var(--size-min);
          border-bottom: 2px solid var(--color-sbl);
          &::before,
          &::after {
            content: "";
            position: absolute;
            left: 50%;
            display: block;
          }
          &::before {
            bottom: calc(var(--size-m) * -0.9);
            width: var(--size-m);
            height: var(--size-m);
            background: #fbfbfb;
            clip-path: polygon(0 100%, 100% 0%, 0 0);
            transform: translateX(-50%);
            z-index: 1;
          }
          &::after {
            bottom: calc(var(--size-m) * -0.5);
            width: var(--size-m);
            height: 2px;
            background: var(--color-sbl);
            transform: translateX(-50%) rotate(-45deg);
            z-index: 2;
          }
        }
        & .__text-02 {
          margin: 0;
          & .s-num {
            color: var(--color-pk);
            & span {
              position: relative;
              display: inline-block;
              &::before,
              &::after {
                content: attr(data-text);
                display: block;
                top: 0;
                left: 0;
                position: absolute;
              }
              &::before {
                -webkit-text-stroke-width: 0;
                z-index: 30;
              }
              &::after {
                color: #fff;
                -webkit-text-stroke-width: 5px;
                z-index: 20;
                text-shadow: 6px 5px 0 rgba(0, 0, 0, 0.3);
              }
            }
            & span:nth-of-type(1) {
              font-size: var(--size-5l);
              font-family: var(--family-en);
            }
          }
          & .s-square {
            position: relative;
            top: -0.1em;
            display: inline-block;
            width: 1.5em;
            height: 1.5em;
            line-height: 1.4;
            margin-left: var(--size-min);
            text-align: center;
            border: 2px solid var(--color-sbl);
            &:nth-of-type(2),
            &:nth-of-type(3) {
              color: var(--color-sbl);
              background: #fff;
            }
            &:nth-of-type(n+4) {
              color: #fff;
              background: var(--color-sbl);
            }
          }
        }
      }
      & .m-img,
      & .m-img img {
        display: block;
        width: 100%;
      }
    }
  }
  & .m-box--campaign {
    width: min(420px, 100%);
    border-width: 2px;
    & .m-price,
    & .m-ballon {
      margin: 0;
    }
    & .m-ballon {
      top: var(--size-s);
      width: 5.5em;
      height: 5.5em;
    }
  }
}
#reason,
#voice {
  & .js-slider__area {
    margin: var(--size-3l) 0;
  }
}
#reason {
  & .m-list--reason {
    & > .__item {
      counter-increment: number;
      & h3 {
        line-height: 1em;
        color: var(--color-bl);
        font-weight: 700;
        &::before {
          content: counter(number, decimal-leading-zero);
          display: inline-block;
          position: relative;
          top: 0.05em;
          color: var(--color-sbl);
          font-family: var(--family-en);
        }
      }
      &:not(:last-of-type) .l-inner--l {
        & .__img {
          box-shadow: var(--box-shadow-01);
        }
      }
    }
  }
  & .m-list__slider > .__item {
    background: var(--color-lbl);
  }
  & .m-box--line {
    position: relative;
    margin-top: var(--size-5l);
    & .__img {
      width: min(340px, 100%);
    }
    & .m-btn--more {
      margin-top: 0;
    }
  }
  & .swiper-wrapper > .__item {
    padding: var(--size-2l) var(--size-l);
    background: var(--color-lbl);
    & h4 {
      margin: 0 0 var(--size-m);
      font-size: var(--size-ml);
      text-align: center;
    }
    & h5 {
      margin: var(--size-m) 0 var(--size-min);
      color: var(--color-sbl);
      font-size: var(--size-m);
      &::before {
        content: "";
        position: relative;
        top: -0.1em;
        display: inline-block;
        width: 24px;
        height: 24px;
        margin-right: var(--size-min);
        background: url("/assets2/images/top/icon_book.svg") no-repeat 50% 50%;
        background-size: contain;
        vertical-align: middle;
      }
    }
    & .__img {
      margin-bottom: var(--size-m);
    }
    & ul {
      display: flex;
      flex-wrap: wrap;
      & li {
        margin:  var(--size-min) var(--size-min) 0 0;
      }
      & a {
        display: block;
        padding: var(--size-min) var(--size-base);
        line-height: var(--lheight-s);
        color: #fff;
        font-size: var(--size-xs);
        background: var(--color-sbl);
      }
    }
  }
}
#voice {
  margin-top: var(--size-max);
  & .swiper-wrapper > .__item {
    background: #fff;
    & .__img {
      display: flex;
      align-items: center;
      
      background: var(--color-bl);
      & img {
        display: block;
        width: min(180px, 45%);
      }
      & figcaption {
        margin: 0 auto;
        line-height: var(--lheight-xs);
        color: #fff;
        font-size: var(--size-ml);
        font-weight: 700;
        text-align: center;
        & span {
          display: block;
          width: fit-content;
          margin: var(--size-base) auto 0;
          padding: var(--size-min) var(--size-base);
          font-size: var(--size-xs);
          font-weight: 500;
          border: 1px solid #fff;
        }
      }
    }
    & .__text {
      padding: var(--size-l);
      & h3 {
        margin: 0 0 var(--size-m);
        padding-bottom: var(--size-base);
        line-height: var(--lheight-m);
        color: var(--color-bl);
        font-size: var(--size-ml);
        border-bottom: 2px solid var(--color-bl);
      }
    }
  }
}
#fee {
  & .l-area--fee {
    position: relative;
    &::before,
    &::after {
      content: "";
      position: absolute;
      display: block;
      width: 0;
      height: 0;
      border-style: solid;
      z-index: 0;
    }
    &::before {
      top: 0;
      left: 0;
      border-width: 25vw 30vw 0 0;
      border-color: var(--color-lbl) transparent transparent transparent;
    }
    &::after {
      right: 0;
      bottom: 0;
      border-width: 0 0 25vw 30vw;
      border-color: transparent transparent var(--color-lbl) transparent;
    }
    & > * {
      position: relative;
      z-index: 1;
    }
    & .l-inner > .s-fw--b.s-ta--c {
      margin-top: var(--size-base);
      line-height: var(--lheight-xs);
      color: var(--color-bl);
      font-size: var(--size-2l);
    }
    & .m-list--fee {
      width: var(--width-s);
      & .__item {
        position: relative;
        line-height: 1;
        font-weight: 500;
        text-align: center;
        & .__num {
          display: inline-block;
          position: relative;
          top: 0.05em;
          font-size: 2.2em;
          font-weight: 700;
          font-family: var(--family-en);
        }
        & h3 {
          margin: 0;
          padding: calc(var(--size-base) * 1.1) 0 var(--size-base);
          line-height: 1.5em;
          color: #fff;
        }
        & .m-box {
          border: 1px solid;
          & h4 {
            margin: 0;
            padding: var(--size-min) 0;
            line-height: 1;
            border-radius: 2em;
            &:not(.__cp) {
              background: var(--color-gry-02);
            }
            &.__cp {
              color: #fff;
              background: var(--color-pk);
            }
          }
          & .s-td--l.__num {
            margin: 0 0.1em;
          }
          & .s-fw--b .__num {
            color: var(--color-pk);
          }
          & div + div {
            position: relative;
            margin-top: var(--size-base);
            &::before {
              content: "▼▼▼";
              display: block;
              position: absolute;
              top: 0;
              left: 50%;
              letter-spacing: 0.25em;
              padding-left: 0.25em;
              color: var(--color-gry-02);
              text-align: center;
              transform: scaleY(0.8) translateX(-50%);
            }
          }
        }
        &:nth-of-type(1),
        &:nth-of-type(3) {
          & h3 {
            background: var(--color-sbl);
          }
          & .m-box {
            border-color:  var(--color-sbl);
          }
        }
        &:nth-of-type(2) {
          & h3 {
            background: var(--color-or);
            & .s-no1 {
              position: absolute;
              font-weight: 500;
              text-align: center;
              & img {
                display: block;
              }
            }
          }
          & .m-box {
            border-color: var(--color-or);
          }
        }
        & .m-point {
          margin-top: 1px;
        }
      }
    }
    & .s-fs--xs p + p {
      margin-top: var(--size-min);
    }
  }
  & .l-area--recommend {
    background: var(--color-bl);
    & .__text {
      position: relative;
      width: fit-content;
      margin: 0 auto;
      font-weight: 700;
      color: #fff;
      -webkit-text-stroke: 0.15em var(--color-bl);
      text-stroke: 0.15em var(--color-bl);
      paint-order: stroke;
      &::before {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        bottom: 0;
        background: url("/assets2/images/top/fee-teacher.png") no-repeat center bottom;
        background-size: contain;
        z-index: 0;
      }
      & span {
        position: relative;
        z-index: 1;
      }
    }
  }
}
#howto-campaign {
  & .l-area--howto {
    & .m-list {
      width: var(--width-s);
      margin: var(--size-2l) auto 0;
      & .__item {
        position: relative;
        line-height: 1;
        font-weight: 700;
        text-align: center;
        box-shadow: var(--box-shadow-01);
        counter-increment: number;
        & + .__item::before {
          content: "";
          position: absolute;
          top: 50%;
          display: block;
          background: var(--color-bl);
          clip-path: polygon(0 0, 0 100%, 100% 50%);
          transform: translateY(-50%);
        }
        & figure {
          &::before,
          &::after {
            display: block;
            position: absolute;
          }
          &::before {
            content: "";
            top: 0;
            left: 0;
            width: 0;
            height: 0;
            border-style: solid;
            border-color: var(--color-bl) transparent transparent transparent;
          }
          &::after {
            content: counter(number);
            color: #fff;
            font-family: var(--family-en);
            z-index: 1;
          }
          & img {
            display: block;
            width: 100px;
            margin: 0 auto var(--size-base);
          }
        }
      }
    }
  }
  & .l-area--campaign {
    background: url("/assets2/images/top/bg_campaign.png") no-repeat 50% 50%;
    background-size: cover;
    & .l-flex {
      & .m-box--campaign {
        padding: var(--size-2l) 0 var(--size-3l);
        border-width: 1px;
        &::before {
          content: "";
          position: absolute;
          top: 50%;
          left: 50%;
          width: 60%;
          padding-top: 60%;
          background: #fff;
          border-radius: 50%;
          transform: translate(-50%, -50%);
          z-index: 0;
        }
        & .m-ballon {
          width: 4.5em;
          height: 4.5em;
        }
      }
      & .m-text {
        position: relative;
        &::before {
          content: "";
          display: block;
          width: 100%;
          background: var(--color-lbl);
        }
        & span {
          position: absolute;
          display: block;
          line-height: var(--lheight-s);
          color: var(--color-bl);
          font-weight: 700;
          text-align: center;
          transform: translate(-50%, -50%);
        }
      }
      & .m-box--terms {
        line-height: var(--lheight-s);
        & .m-title--line {
          margin: 0;
          color: var(--color-bl);
          font-size: var(--size-l);
          text-align: center;
        }
        & .m-list {
          position: relative;
          margin: var(--size-m) 0;
          &::before {
            content: "";
            display: block;
            position: absolute;
            top: calc(50% - 1px);
            left: 50%;
            width: calc(30% - var(--size-2l));
            height: 1px;
            border-top: 2px dashed var(--color-base-bk);
            transform: translateX(-50%);
          }
          & li {
            position: relative;
            width: 35%;
            padding: var(--size-base) 0;
            text-align: center;
            background: #fff;
            border: 1px solid var(--color-base-bk);
            & + li::before {
              content: "\e5e1";
              display: block;
              position: absolute;
              top: 50%;
              left: calc(-1em - var(--size-min));
              line-height: 1;
              font-size: var(--size-l);
              font-weight: 500;
              font-family: "Material Symbols Outlined";
              transform: translateY(-50%);
            }

          }
        }
        & p {
          display: flex;
          align-items: center;
          justify-content: center;
          padding: var(--size-xs) 0;
          color: #fff;
          font-size: var(--size-ml);
          font-weight: 700;
          background: var(--color-bl);
          &::before {
            content: "";
            display: block;
            width: 82px;
            margin: calc(var(--size-min) * -1) var(--size-m) 0 0;
            aspect-ratio: 142/75;
            background: url("/assets2/images/top/icon_ticket.svg") no-repeat 50% 50%;
            background-size: contain;
          }
        }
      }
    }
    & .m-box--gry {
      & h4 {
        width: fit-content;
        margin: 0 auto var(--size-m);
        padding: var(--size-min) var(--size-m);
        text-align: center;
        border: 1px solid var(--color-base-bk);
        background: #fff;
      }
    }
  }
}
#cta {
  position: relative;
  background: var(--color-lpk);
  & h2,
  & .__detail {
    position: relative;
    z-index: 1;
  }
  & h2 {
    margin: 0 auto;
    text-align: center;
  }
  & .__detail {
    & .m-list > li {
      position: relative;
      line-height: var(--lheight-s);
      text-align: center;
      background: #fff;
      border: 1px solid var(--color-base-bk);
      &::before {
        content: "";
        display: block;
        position: absolute;
        right: 2px;
        bottom: 2px;
        width: 0;
        height: 0;
        border-style: solid;
        border-color: transparent transparent var(--color-pk) transparent;
      }
    }
    & .m-btn--cta {
      width: min(420px, 100%);
      height: 2.75em;
      border-radius: 2em;
    }
  }
  & .__img {
    position: absolute;
    z-index: 0;
  }
}
#service {
  & .m-list--service {
    & > .__item {
      margin-bottom: var(--size-2l);
      & li .m-link--opacity {
        display: flex;
        align-items: center;
        width: 100%;
        color: var(--color-base-bk);
        font-weight: 500;
        text-align: center;
        background: #fff;
        box-shadow: var(--box-shadow-01);
        & .__text {
          display: block;
          margin: 0 auto;
        }
        & .__icon {
          display: block;
          font-weight: 700;
        }
        & .__logo {
          display: block;
          width: auto;
        }
      }
      &:nth-of-type(1),
      &:last-of-type {
        width: 100%;
      }
      &:nth-of-type(1),
      &:nth-of-type(2) {
        & li .m-link--opacity {
          flex-direction: column;
          justify-content: center;
          padding: var(--size-m) 0;
        }
      }
      &:not(:last-of-type) h3 {
        background: var(--color-sbl);
      }
      &:last-of-type h3 {
        background: var(--color-bl);
      }
      & .--abroad .m-link--opacity {
        & .__icon {
          color: #28ABDB;
          &::before {
            background-image: url("/assets2/images/top/icon_abroad.svg");
          }
        }
      }
      & .--corporate .m-link--opacity .__icon {
        color: #0A008F;
        &::before {
          background-image: url("/assets2/images/top/icon_corporate.svg");
        }
      }
      & .--education .m-link--opacity .__icon {
        color: #008F51;
        &::before {
          background-image: url("/assets2/images/top/icon_education.svg");
        }
      }
    }
    & h3 {
      padding: var(--size-base) 0;
      color: #fff;
      text-align: center;
      
    }
  }
}
#case {
  & .m-title--line {
    margin: var(--size-4l) 0 0;
    color: var(--color-bl);
    font-weight: 700;
  }
  & .js-slider__wrapper {
    padding: var(--size-m) 0;
    & .__item {
      margin: 0 var(--size-base);
      box-shadow: var(--box-shadow-01);
    }
  }
  & .js-slider.--corporate .__item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 240px;
    height: 120px;
  }
  & .js-slider.--education {
    & + .js-slider.--education {
      margin-top: calc(var(--size-m) * -1);
      /* & .js-slider__item {
        transform: translateX(-50%);
      } */
    }
    & .__item {
      width: 260px;
    }
  }
}
#president {
  & .m-overview {
    & > div {
      display: flex;
      align-items: flex-end;
      & div {
        margin: 0 0 var(--size-m) var(--size-3l);
      }
      & h3 {
        font-weight: 400;
        & span {
          font-weight: 500;
        }
      }
      & ul {
        display: flex;
        align-items: center;
        & li {
          width: 34px;
          margin-right: var(--size-base);
        }
      }
    }
    & .__img {
      position: relative;
      width: 185px;
      border: 1px solid var(--color-bl);
    }
    & p {
      margin-top: var(--size-2l);
    }
  }
  & .m-detail {
    margin-bottom: var(--size-base);
    & h4 {
      position: relative;
      width: 8em;
      margin: 0;
      padding: var(--size-base) var(--size-l);
      color: #fff;
      font-size: var(--size-ml);
      background: var(--color-bl);
      clip-path: polygon(75% 0, 100% 100%, 100% 100%, 0 100%, 0 0);
    }
    & .__box {
      padding: var(--size-l);
      background: #fff;
      box-shadow: var(--box-shadow-01);
    }
    & .m-list__dot li + li {
      margin-top: var(--size-min);
    }
    & .m-btn--more {
      width: 100%;
    }
  }
}
#infomation {
  & .s-scroll {
    height: 13em;
    overflow-y: scroll;
  }
  & li + li {
    margin-top: 1em;
  }
  & time {
    display: block;
    font-weight: 700;
  }
  & a {
    display: inline-block;
  }
}
#recruit {
  & .m-box--recruit {
    display: block;
    width: min(600px, 100%);
    margin: 0 auto;
    text-align: center;
    background: var(--color-lbl);
    box-shadow: var(--box-shadow-01);
    & .l-inner {
      position: relative;
      display: flex;
      align-items: center;
      overflow: hidden;
      padding: var(--size-base) 0;
      &::before {
        content: "";
        display: block;
        position: absolute;
        top: 50%;
        left: 35%;
        width: 100%;
        padding-top: 80%;
        background: rgba(255,255,255, 0.5);
        transform: translateY(-50%);
        border-radius: 50%;
      }
    }
    & .m-logo {
      width: 35%;
      & img {
        display: block;
        width: min(120px, 70%);
        margin: 0 auto;
      }
    }
    & .m-text {
      position: relative;
      width: 65%;
      z-index: 1;
      & h2 {
        margin: 0 0 var(--size-min);
        font-size: var(--size-4l);
      }
    }
    
    & .m-more {
      padding: var(--size-base) 0;
      color: #fff;
      font-weight: 500;
      background: var(--color-bl);
    }
  }
}
#sns {
  & p {
    position: relative;
    width: fit-content;
    margin: 0 auto var(--size-2l);
    padding: var(--size-min) var(--size-2l);
    color: #fff;
    background: var(--color-bl);
    box-shadow: var(--box-shadow-01);
    &::after {
      content: "";
      position: absolute;
      right: 15%;
      bottom: calc(var(--size-xs) * -1 + 1px);
      display: block;
      width: var(--size-xs);
      height: var(--size-xs);
      background: var(--color-bl);
      clip-path: polygon(0 100%, 100% 0%, 0 0);
    }
  }
  & .m-list__flex {
    justify-content: center;
    & .__item {
      & a {
        display: block;
      }
      & img {
        width: 100%;
      }
    }
  }
}

/* レスポンシブ
==================================================== */
@media only screen and (min-width: 769px) {
  :root {
    --lheight-base: 1.75;
    --box-shadow-01: var(--size-min) var(--size-min) var(--size-xs) 0 rgba(0, 0, 0, 0.25);
  }
  
  .is-only--sp,
  .is-hidden--pc {
    display: none !important;
  }

  .l-section:not(#reason):not(#fee):not(#howto-campaign),
  *[class^="l-area--"]:not(.l-area--recommend):not(.l-area--cta) {
    padding: var(--size-max) 0;
  }
  .l-flex {
    display: flex;
    justify-content: space-between;
  }

  .m-heading--01,
  .m-heading--02 {
    & .__main {
      font-size: var(--size-4l);
    }
    & .__sub {
      font-size: var(--size-l);
    }
  }
  .m-heading--03 {
    font-size: var(--size-4l);
  }
  .m-title--tri {
    margin: 0 0 var(--size-l);
    font-size: var(--size-2l);
  }
  .m-list--check-01 {
    overflow: hidden;
    display: flex;
    flex-wrap: wrap;
    font-size: var(--size-ml);
    & > li,
    & > li::before {
      display: flex;
      align-items: center;
    }
    & > li:nth-of-type(odd) {
      margin-right: 0.8em;
    }
  }

  .m-btn--cta {
    font-size: var(--size-2l);
  }

  .m-box--line {
    padding: var(--size-4l);
  }
  .m-box--gry {
    padding: var(--size-3l) var(--size-4l);
  }
  .m-box--campaign {
    & .m-title {
      font-size: var(--size-2l);
    }
  }
  .m-box--line,
  #president .m-overview .__img {
    box-shadow: var(--size-base) var(--size-base) 0 0 var(--color-bl);
  }

  .js-slider {
    &[data-slider="slide"] {
      & .js-slider__item {
        width: calc(25% - var(--size-m) * 3 / 4);
      }
      &:not(.swiper) .js-slider__wrapper {
        display: flex;
        justify-content: space-between;
        width: min(1400px, 100%);
        margin: 0 auto;
      }
    }
  }

  .header {
    & .header--mainvisual {
      &:not(.--bnr) .l-inner--m {
        height: 480px;
        padding: 5% 6% 0 0;
        &::before {
          left: 3%;
          width: 55%;
          height: 95%;
        }
      }
    }
    & .m-box--campaign {
      margin: var(--size-l) auto 0;
      padding: var(--size-m) var(--size-m) var(--size-s) 20%;
      box-shadow: var(--box-shadow-01);
      & .m-ballon {
        left: var(--size-s);
        font-size: var(--size-m);
      }
    }
  }
  #reason {
    & .m-list--reason {
      & > .__item {
        margin-top: calc(var(--size-5l) * 2);
        padding-bottom: var(--size-5l);
        background: var(--color-lbgry);
        & h3 {
          position: relative;
          top: calc(var(--size-3l) * -1);
          margin: 0 0 var(--size-4l);
          font-size: var(--size-4l);
          &::before {
            margin-right: var(--size-xs);
            font-size: var(--size-max);
          }
          & + .m-title--tri {
            margin-top: calc(var(--size-3l) * -1);
          }
        }
        &:not(:last-of-type) .l-inner--l {
          position: relative;
          & .__img {
            position: absolute;
            top: calc(var(--size-5l) * -1);
            width: min(500px, 100%);
          }
          & > .__detail {
            margin: 0 auto;
            width: calc(100% - var(--size-5l) - calc(var(--size-max)));
          }
        }
        &:nth-of-type(1) .l-inner--l {
          padding-left: 500px;
          & .__img {
            left: 0;
          }
          & .m-list--check-01 li:nth-of-type(odd) {
            width: calc(13.5em * 1.04 + var(--size-base));
          }
        } 
        &:nth-of-type(2) .l-inner--l {
          padding-right: 500px;
          & .__img {
            right: 0;
          }
        }
        &:nth-of-type(3) .l-inner {
          padding-top: 1px;
          & > h3,
          & > .m-title--tri,
          & > .m-title--tri + p {
            text-align: center;
          }
        }
      }
    }
    & .m-box--line {
      & .__img {
        position: absolute;
        top: var(--size-4l);
        left: var(--size-4l);
      }
      & .__detail {
        width: calc(100% - 340px - var(--size-4l));
        margin: calc(var(--size-min) * -1) 0 0 auto;
      }
    }
  }
  #fee {
    & .l-area--fee {
      & .m-list--fee {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        margin: var(--size-max) auto var(--size-m);
        & .__item {
          width: calc(33.33% - 1px);
          & h3 {
            font-size: var(--size-l);
          }
          & .m-box {
            padding: var(--size-m) 0;
            font-size: var(--size-s);
            & h4 {
              width: 80%;
              margin: 0 auto var(--size-min);
            }
            & .s-fw--b {
              font-size: 145%;
            }
            & div + div {
              padding-top: var(--size-2l);
            }
          }
          &:nth-of-type(2) {
            & .s-no1 {
              top: calc(-1em - 36px);
              left: 0;
              width: 100%;
              padding-bottom: 30px;
              color: var(--color-or);
              font-size: var(--size-ml);
              & img {
                position: absolute;
                left: 50%;
                bottom: 0;
                width: 34px;
                margin: 0 auto;
                transform: translateX(-50%);
              }
            }
            
          }
        }
      }
      & .s-fs--xs {
        width: fit-content;
        margin: 0 auto;
      }
    }
    & .l-area--recommend {
      text-align: center;
      & .__text {
        padding: var(--size-4l) 0 var(--size-4l) calc(200px - 1.8em);
        font-size: var(--size-3l);
        &::before {
          width: 210px;
          height: 210px;
        }
      }
    }
  }
  #howto-campaign {
    & .l-area--howto {
      & .m-list {
        & .__item {
          width: calc(33.33% - var(--size-2l));
          padding: var(--size-2l) 0;
          & + .__item::before {
            left: calc((var(--size-2l) / 2.5 + var(--size-m)) * -1);
            width: var(--size-m);
            height: calc(var(--size-m) * 2);
          }
          & figure {
            &::before {
              border-width: calc(var(--size-4l) * 1.5) calc(var(--size-4l) * 1.5) 0 0;
            }
            &::after {
              top: var(--size-min);
              left: var(--size-base);
              font-size: var(--size-3l);
            }
          }
        }
      }
    }
    & .l-area--campaign {
      & .l-flex {
        & .m-box--campaign {
          padding: var(--size-2l) 0 var(--size-3l);
          width: 50%;
          & .m-ballon {
            top: var(--size-l);
            left: var(--size-5l);
            font-size: var(--size-ml);
          }
        }
        & .m-text {
          width: calc(15% - var(--size-4l) * 2);
          &::before {
            height: 100%;
            clip-path: polygon(0 0, 0 100%, 100% 50%);
          }
          & span {
            top: 50%;
            left: 45%;
            width: 4.5em;
            font-size: var(--size-ml);
          }
        }
        & .m-box--terms {
          width: 35%;
          
        }
      }
    }
  }
  #cta {
    & h2 {
      font-size: var(--size-3l);
    }
    & .__detail {
      width: min(calc(var(--size-5l) * 10), 100%);
      margin: var(--size-max) 0 0 auto;
      & .m-list {
        display: flex;
        justify-content: space-between;
        & > li {
          width: calc(33.33% - var(--size-min));
          padding: var(--size-s) 0;
          &::before {
            border-width: 0 0 var(--size-ml) var(--size-ml);
          }
        }
      }
      & .m-btn--cta {
        margin: var(--size-l) auto 0;
      }
    }
    & .__img {
      bottom: 0;
      width: 340px;
    }
  }
  #service {
    & .m-list--service {
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      & h3 {
        margin: 0 0 var(--size-m);
      }
      & > .__item {
        & li .m-link--opacity {
          height: calc(var(--size-max) * 1.5);
          & .__icon {
            font-size: var(--size-2l);
            &::before {
              content: "";
              position: relative;
              top: -0.1em;
              display: inline-block;
              margin-right: var(--size-base);
              background: no-repeat 50% 50%;
              background-size: contain;
            vertical-align: middle;
            }
          }
          & .__logo {
            height: 42px;
          }
        }
        &:nth-of-type(1) {
          & li {
            width: calc(25% - var(--size-m) * 3 / 4);
          }
        }
        &:nth-of-type(2),
        &:nth-of-type(4) {
          & li {
            width: calc(50% - var(--size-m) / 2);
          }
        }
        &:nth-of-type(2) {
          width: calc(66.66% - var(--size-2l) / 2);
        }
        &:nth-of-type(3) {
          width: calc(33.33% - var(--size-2l) / 2);
        }
        & .--abroad .m-link--opacity {
          & .__icon::before {
            width: 24px;
            height: 24px;
            background-image: url("/assets2/images/top/icon_abroad.svg");
          }
          & img {
            width: 120px;
          }
        }
        & .--corporate .m-link--opacity,
        & .--education .m-link--opacity {
          &  .__icon::before {
            width: 30px;
            height: 30px;
          }
          & img {
            width: 180px;
          }
        }
      }
    }
  }
  #case {
  & .m-title--line {
      font-size: var(--size-2l);
    }
  }
  #president {
    & .l-flex {
      align-items: flex-end;
      justify-content: space-between;
    }
    & .m-overview,
    & .m-detail {
      width: calc(50% - var(--size-m));
    }
    & .m-overview {
      & > div h3 {
        font-size: var(--size-ml);
        & span {
          font-size: var(--size-3l);
        }
      }
      & .__img {
        width: 185px;
      }
    }
  }
  #sns {
    & .m-list__flex .__item {
      width: calc(16.66% - var(--size-2l) * 5 / 6);
      & + .__item {
        margin-left: var(--size-2l);
      }
    }
  }
}

@media only screen and (max-width: 768px) {
  :root {
    --lheight-base: 1.65;
    --box-shadow-01: 2px 2px 6px 0 rgba(0, 0, 0, 0.25);
  }
  .is-only--pc,
  .is-hidden--sp {
    display: none !important;
  }

  *[class^="l-inner"] {
    padding-left: var(--size-m);
    padding-right: var(--size-m);
  }
  .l-section:not(#reason):not(#fee):not(#howto-campaign):not(#cta),
  *[class^="l-area--"]:not(.l-area--recommend):not(.l-area--cta) {
    padding: var(--size-5l) 0;
  }
  .m-heading--01,
  .m-heading--02 {
    & .__main {
      font-size: var(--size-3l);
    }
    & .__sub {
      font-size: var(--size-s);
    }
  }
  .m-heading--03 {
    font-size: var(--size-2l);
  }
  .m-title--tri {
    margin: 0 0 var(--size-xs);
    font-size: var(--size-ml);
  }

  .m-box--line,
  .m-box--gry {
    padding: var(--size-2l) var(--size-l);
  }
  .m-box--campaign {
    & .m-title {
      font-size: var(--size-ml);
    }
    & .m-date {
      font-size: var(--size-s);
    }
  }
  .m-btn--cta {
    font-size: var(--size-l);
  }
  .m-btn--more {
    margin-left: auto;
    margin-right: auto;
  }

  .l-area--cta {
    margin: var(--size-m) 0 var(--size-max);
    padding: 0 var(--size-m);
    & .m-btn--cta {
      height: calc(var(--size-max) * 1.15);
      &::before {
        left: var(--size-m);
        width: var(--size-3l);
        height: var(--size-3l);
      }
      &::after {
        right: var(--size-m);
        width: var(--size-l);
        height: var(--size-l);
        font-size: var(--size-ml);
      }
      & span:nth-of-type(1) {
        font-size: var(--size-s);
      }
      & span:nth-of-type(2) {
        font-size: 5.25vw;
      }
    }
  }

  .js-slider {
    &[data-slider="slide"] {
      & .js-slider__item {
        height: auto;
      }
      & .swiper-button-next {
        right: var(--size-l);
      }
      & .swiper-button-prev {
        left: var(--size-l);
      }
      & .swiper-button-next:after,
      & .swiper-button-prev:after {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        width: var(--size-4l);
        height: var(--size-4l);
        color: #fff;
        font-size: var(--size-l);
        background: var(--color-base-bk);
        border-radius: 50%;
      }
      & .swiper-pagination-bullet-active {
        background: var(--color-bl);
      }
    }
  }

  .m-box--line,
  #president .m-overview .__img {
    box-shadow: var(--size-min) var(--size-min) 0 0 var(--color-bl);
  }

  .header {
    & .header--mainvisual {
      margin-top: 54px;
      &:not(.--bnr) .l-inner--m {
        height: min(380px, 80lvh);
        padding: 6% 0 0;
        &::before {
          left: 55%;
          bottom: -3%;
          width: 90%;
          height: 70%;
          transform: translateX(-50%);
          background-position: center bottom;
        }
      }
      &.--bnr .l-inner--m {
        padding: 0;
        & img {
          width: 100%;
        }
      }
      & .l-inner--m {
        overflow: hidden;
        
        & .m-detail {
          margin: 0 auto;
          font-size: var(--size-ml);
          & .__text-02 {
            & .s-num {
              & span:nth-of-type(1) {
                font-size: var(--size-4l);
              }
            }
            & .s-square {
              font-size: var(--size-2l);
            }
          }
        }
      }
    }
    & .m-box--campaign {
      margin: 0;
      padding: var(--size-m) 0 var(--size-base);
      & .m-ballon {
        left: var(--size-base);
        font-size: var(--size-s);
      }
      & .m-link--opacity {
        display: inline-block;
        width: fit-content;
        margin: calc(var(--size-base) * -1) 0;
        padding: var(--size-base);
        color: var(--color-bl);
        font-size: var(--size-s);
        &::after {
          content: "";
          position: relative;
          top: 0.01em;
          display: inline-block;
          width: var(--size-m);
          height: 10px;
          margin-left: var(--size-min);
          mask: url(/assets2/images/top/icon_arrow.svg) no-repeat center;
          background: var(--color-bl);
          transition: background 0.2s;
        }
      }
    }
  }
  #reason {
    & .m-list--reason {
      & > .__item {
        & + .__item {
          position: relative;
          margin-top: var(--size-4l);
          padding-top: var(--size-4l);
          &::before {
            content: "";
            display: block;
            position: absolute;
            top: 0;
            left: 50%;
            width: calc(100% - var(--size-m) * 2);
            height: 1px;
            transform: translateX(-50%);
            background: var(--color-bl);
          }
        }
        & h3 {
          margin: 0 0 var(--size-l);
          font-size: var(--size-2l);
          &::before {
            font-size: 200%;
            margin-right: var(--size-base);
          }
        }
        & .__img {
          margin-bottom: var(--size-s);
        }
      }
    }
  }
  #fee {
    & .l-area--fee {
      & .m-list--fee {
        margin: var(--size-l) 0 var(--size-m);
        & .__item {
          font-size: var(--size-s);
          & + .__item {
            margin-top: var(--size-base);
          }
          & h3 {
            font-size: var(--size-m);
          }
          & .m-box {
            padding: var(--size-base) 0;
          }
          & .m-fee {
            & h4 {
              position: relative;
              top: -0.15em;
              flex-shrink: 0;
              width: 9em;
              margin-right: var(--size-base);
              font-size: var(--size-xs);
            }
            & div {
              display: flex;
              align-items: baseline;
              justify-content: flex-start;
              padding: 0 0 0 var(--size-m);
              & + div {
                padding-top: var(--size-m);
              }
              & p {
                text-align: left;
              }
            }
            & .s-fw--b {
              font-size: 120%;
            }
          }
          &:nth-of-type(2) {
            & h3 {
              position: relative;
            }
            & .s-no1 {
              display: flex;
              align-items: center;
              justify-content: center;
              top: calc(var(--size-min) * -1);
              right: var(--size-m);
              width: fit-content;
              padding: var(--size-min) var(--size-base);
              line-height: var(--lheight-xs);
              color: #fff;
              font-size: var(--size-xs);
              background: var(--color-pk);
              &::before,
              &::after {
                display: none;
              }
              & img {
                width: var(--size-m);
                margin-left: var(--size-min);
              }
            }
          }
        }
      }
    }
    & .l-area--recommend {
      & .__text {
        padding: var(--size-3l) 0 var(--size-3l) calc(150px - 1.8em);
        font-size: var(--size-m);
        &::before {
          width: 150px;
          height: 150px;
        }
      }
    }
  }
  #howto-campaign {
    & .l-area--howto {
      & .m-list {
        & .__item {
          width: calc(33.33% - var(--size-m));
          padding: var(--size-2l) 0 var(--size-s);
          font-size: var(--size-s);
          & + .__item::before {
            left: calc(var(--size-m) * -1);
            width: var(--size-base);
            height: calc(var(--size-base) * 2);
          }
          & figure {
            &::before {
              border-width: calc(var(--size-l) * 1.5) calc(var(--size-l) * 1.5) 0 0;
            }
            &::after {
              top: calc(var(--size-min) - 0.1em);
              left: var(--size-min);
              font-size: var(--size-m);
            }
            & img {
              width: 80%;
            }
          }
        }
      }
    }
    & .l-area--campaign {
      padding-bottom: 0;
      & .l-flex {
        & .m-box--campaign {
          padding: var(--size-m) 0 var(--size-3l);
          & .m-ballon {
            top: var(--size-m);
            left: var(--size-s);
            font-size: var(--size-s);
          }
        }
        & .m-text {
          margin: var(--size-m) 0;
          &::before {
            height: var(--size-5l);
            clip-path: polygon(0 0, 100% 0%, 50% 100%);
          }
          & span {
            top: 40%;
            left: 50%;
          }
        }
      }
      & .m-box--gry {
        margin-left: calc(var(--size-m) * -1);
        margin-right: calc(var(--size-m) * -1);
      } .s-fs--s {
        display: block;
      }
    }
  }
  #cta {
    padding: var(--size-4l) 0;
    & h2 {
      font-size: var(--size-ml);
    }
    & .__detail {
      margin-top: 15vw;
      & .m-list {
        margin-left: 45%;
        & > li {
          margin-bottom: var(--size-base);
          padding: var(--size-min) 0;
          font-size: var(--size-s);
          &::before {
            border-width: 0 0 var(--size-xs) var(--size-xs);
          }
        }
      }
      & .m-btn--cta {
        margin: 10vw auto 0;
      }
    }
    & .__img {
      bottom: calc(var(--size-4l) * 2);
      width: 60%;
    }
  }
  #service {
    & .m-list--service {
      & h3 {
        margin: 0 0 var(--size-xs);
      }
      & > .__item {
        & .m-list__flex {
          margin: 0 calc(var(--size-m) * -1);
          padding: 0 var(--size-m);
        }
        & li .m-link--opacity {
          padding: var(--size-m) 0;
          line-height: var(--lheight-m);
          font-size: var(--size-s);
          & .__icon {
            font-size: var(--size-ml);
          }
          & .__logo {
            height: 28px;
          }
        }
        & .m-list__flex {
          overflow: hidden;
          flex-wrap: wrap;
          margin-bottom: calc(var(--size-base) * -1);
          & li {
            width: calc(50% - var(--size-base) / 2);
            margin-bottom: var(--size-base);
            & .m-link--opacity {
              height: 100%;
            }
          }
        }
      }
    }
  }
  #case {
    & .m-title--line {
      font-size: var(--size-ml);
    }
    & p {
      font-size: var(--size-s);
    }
  }
  #president {
    & .m-overview {
      margin-bottom: var(--size-3l);
      & > div {
        width: fit-content;
        margin: 0 auto;
        & h3 {
          font-size: var(--size-s);
          & span {
            font-size: var(--size-2l);
          }
        }
        & div {
          margin: 0 0 var(--size-s) var(--size-l);
        }
      }
      & .__img {
        width: 140px;
      }
    }
  }
  #recruit {
    & .m-box--recruit .m-text {
      & h2 {
        font-size: var(--size-2l);
      }
      & p {
        line-height: var(--lheight-m);
        font-size: var(--size-xs);
      }
    }
  }
  #sns {
    & .m-list__flex .__item {
      width: calc(16.66% - var(--size-base) * 5 / 6);
      & + .__item {
        margin-left: var(--size-base);
      }
    }
  }
}