/***** -- var -- *****/
:root {
  --color-1st: #00B9EF;
  --header-icon-color: #00B9EF;
}

#sotsuen .l-main {margin-top: 0!important;}
#sotsuen #header .p-header-link {
  right: 192px;
  padding-left: 200px;
}
#sotsuen #header.l-header2 .p-header-link > .c-flex {gap: .25em 1.5em;}
#sotsuen #header.l-header2 .p-header-link > .c-flex > a {padding: 0;}
#sotsuen #header .p-header-btn .c-btn.is-form:hover > span:nth-of-type(1) {color: var(--color-1st);}
#sotsuen #drawer.l-drawer {
  top: 0!important;
  height: 100vh!important;
}
#sotsuen #drawer .p-drawer-item {margin-top: 96px;}
#sotsuen #drawer .p-drawer-btn .c-btn.is-form:hover > span:nth-of-type(1) {color: var(--color-1st);}
@media screen and (max-width: 1200px) {
  #sotsuen #header.l-header2 .p-header-link > .c-flex > a {margin: 0;}
}


/* ----- mv ----- */
#mv {
  padding: 0;
  background-color: #fff33f;
}
#mv .p-container {
  position: relative;
  width: 100%;
  background-image: url('../img/sotsuen/mv-bg.png');
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
#mv .p-container::before {
  display: block;
  padding-top: 880px;
  content: '';
}
#mv .c-inner {
  position: absolute;
  left: 50%;
  top: 160px;
  transform: translateX(-50%);
}
#mv .p-content > .c-flex > * {width: 50%;}
#mv .p-content-bubble > .c-flex > * {
  width: calc((100% - (8px * 4)) / 4);
  margin: 4px;
  background-image: url('../img/sotsuen/bubble-sm--blue.png');
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
#mv .p-content-bubble > .c-flex > *:nth-child(even) {background-image: url('../img/sotsuen/bubble-sm--white.png');}
#mv .p-content-bubble > .c-flex > *::before {
  display: block;
  padding-top: 37.28%;
  content: '';
}
#mv .p-content-bubble p {
  position: absolute;
  left: 50%;
  top: 0.5em;
  width: 100%;
  font-family: var(--font-family-3rd);
  font-size: 1.6rem;
  font-weight: 700;
  color: #fff;
  text-align: center;
  line-height: 1;
  transform: translateX(-50%);
}
#mv .p-content-bubble > .c-flex > *:nth-child(even) p {color: #111;}
#mv .p-content-title > * {
  display: block;
  font-family: var(--font-family-3rd);
  color: #111;
  text-align: center;
}
#mv .p-content-title > *:nth-child(1) {
  font-size: 7.2rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  line-height: 1.7;
}
#mv .p-content-title > *:nth-child(2) {
  font-size: 4.0rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
#mv .p-content-btn {margin-top: 3em;}
#mv .p-content-btn .c-btn {
  color: #fff;
  background-color: #00B9EF;
  border-color: #00B9EF;
}
#mv .p-content-btn .c-btn span {color: #fff8da;}
#mv .p-content-btn .c-btn:hover {
  color: var(--color-1st);
  background-color: #fff;
  border-color: var(--color-1st);
}
#mv .p-content-btn .c-btn:hover span {color: inherit;}
#mv .p-content-badge {
  position: absolute;
  right: 1em;
  top: 0;
  width: 28%;
  z-index: -1;
}
#mv .p-content-image {margin-top: 2em}
@media screen and (max-width: 1200px) {
  #mv {padding-bottom: 8vw;}
  #mv .c-inner {top: 13vw;}
  #mv .p-container {
    background-position: top center;
    background-repeat: repeat;
    background-size: contain;
  }
  #mv .p-container::before {
    /*
    padding-top: 55.09%;
    */
    padding-top: 65%;
  }
  #mv .p-content-bubble p {font-size: 1.33vw;}
  #mv .p-content-title > *:nth-child(1) {font-size: 6.0vw;}
  #mv .p-content-title > *:nth-child(2) {font-size: 3.3vw;}
}
@media screen and (max-width: 980px) {
}
@media screen and (max-width: 640px) {
  #mv .p-container::before {padding-top: 224%;}
  #mv .c-inner {top: 24vw;}
  #mv .p-content > .c-flex > * {width: 100%;}
  #mv .p-content > .c-flex > *:nth-child(2) {margin-top: 2em;}
  #mv .p-content-bubble {
    width: 80%;
    margin: auto;
  }
  #mv .p-content-bubble > .c-flex > * {
    width: calc((100% - (2vw * 2)) / 2);
    margin: 1vw;
  }
  #mv .p-content-bubble p {font-size: 4.1vw;}
  #mv .p-content-title > *:nth-child(1) {
    font-size: 11.28vw;
    padding-left: 6vw;
  }
  #mv .p-content-title > *:nth-child(2) {font-size: 6.15vw;}
}

/* ----- intro ----- */
#intro {
  background-color: #00B9EF;
  padding-top: 32px;
  padding-bottom: 192px;
}
#intro::before {
  position: absolute;
  left: 0;
  top: -79px;
  width: 100%;
  height: 80px;
  background-color: inherit;
  border-top-left-radius: 100% 200%;
  border-top-right-radius: 100% 200%;
  content: '';
}
#intro .p-content > .c-flex > * {
  width: 50%;
  opacity: 0;
  transition-duration: .5s;
}
#intro .p-content > .c-flex > *:nth-child(1) {
  transform: translateX(-100px);
  transition-delay: 0s;
}
#intro .p-content > .c-flex > *:nth-child(2) {
  opacity: 0;
  transform: translateX(100px);
  transition-delay: .5s;
}
#intro .p-content > .c-flex > *.is-show {
  opacity: 1;
  transform: translateX(0);
}
#intro .p-content-headline .c-heading span {
  display: inline-block;
  font-family: var(--font-family-1st);
  font-size: 2.8rem;
  color: #00B9EF;
  line-height: 1;
  letter-spacing: 0.05em;
  background-color: #fff;
  padding: 0.5em 0.8em;
}
#intro .p-content-explain {padding: 1em;}
#intro .p-content-explain p {
  font-size: 2.0rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.05em;
  line-height: 2.5;
}
#intro .p-content-illust {
  text-align: center;
  margin-top: 2em;
}
#intro .p-content-illust img {width: 70%;}
#intro .p-content-btn {margin-top: 1em;}
#intro .p-content-btn .c-btn {
  color: #00B9EF;
  padding: 1em 1.5em;
  background-color: #FFF23F;
  border-color: #FFF23F;
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}
#intro .p-content-btn .c-btn:hover {
  background-color: #fff;
  border-color: #fff;
}
@media screen and (max-width: 1200px) {
}
@media screen and (max-width: 980px) {
  #intro {padding-bottom: 24vw;}
  #intro::before {
    top: -7vw;
    height: 8vw;
  }
  #intro .p-content > .c-flex > *:nth-child(1) {width: 75%;}
  #intro .p-content > .c-flex > *:nth-child(2) {
    width: 100%;
    margin-top: 2em;
  }
  #intro .p-content-headline .c-heading span {font-size: 3.91vw;}
  #intro .p-content-explain p {font-size: 2.86vw;}
  #intro .p-content-btn .c-btn {font-size: 2.86vw;}
}
@media screen and (max-width: 640px) {
  #intro .p-content > .c-flex > *:nth-child(1) {width: 95%;}
  #intro .p-content-headline .c-heading span {font-size: 4.62vw;}
  #intro .p-content-explain p {font-size: 3.59vw;}
  #intro .p-content-btn .c-btn {font-size: 3.59vw;}
}

/* ----- case ----- */
#case {
  background-color: #F8F6EC;
  padding-bottom: 192px;
}
#case::before {
  position: absolute;
  left: 0;
  top: -79px;
  width: 100%;
  height: 80px;
  background-color: inherit;
  border-top-left-radius: 100% 200%;
  border-top-right-radius: 100% 200%;
  content: '';
}
#case .p-headline .c-heading span {
  font-family: var(--font-family-1st);
  font-size: 2.8rem;
  color: #111;
  text-align: center;
  letter-spacing: 0.1em;
}
#case .p-content {margin-top: 2em;}
#case .p-content > .c-flex > * {
  width: calc((100% - (2em * 3)) / 3);
  margin: 1em;
  opacity: 0;
  transform: translateY(100px);
  transition-duration: .25s;
}
#case .p-content > .c-flex > *:nth-child(odd) {padding-top: 4em;}
#case .p-content > .c-flex > *:nth-child(1) {transition-delay: 0s;}
#case .p-content > .c-flex > *:nth-child(2) {transition-delay: 0.25s;}
#case .p-content > .c-flex > *:nth-child(3) {transition-delay: 0.5s;}
#case .p-content > .c-flex > *.is-show {
  opacity: 1;
  transform: translateY(0);
}


#case .p-content-bubble {
  position: relative;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
#case .p-content-bubble::before {
  display: block;
  padding-top: 73.13%;
  content: '';
}
#case .p-content > .c-flex > *:nth-child(1) .p-content-bubble {background-image: url('../img/sotsuen/bubble-lg--blue.png');}
#case .p-content > .c-flex > *:nth-child(2) .p-content-bubble {background-image: url('../img/sotsuen/bubble-lg--white.png');}
#case .p-content > .c-flex > *:nth-child(3) .p-content-bubble {background-image: url('../img/sotsuen/bubble-lg--yellow.png');}
#case .p-content-bubble p {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  font-family: var(--font-family-3rd);
  font-size: 1.6rem;
  font-weight: 700;
  color: #111;
  line-height: 2;
  letter-spacing: 0.15em;
  padding: 1.5em;
}
#case .p-content > .c-flex > *:nth-child(1) .p-content-bubble p {color: #fff;}
#case .p-content-illust {text-align: center;}
#case .p-content-illust img {
  width: auto;
  height: 160px;
}
@media screen and (max-width: 1200px) {
  #case .p-content-bubble p {font-size: 1.33vw;}
  #case .p-content-illust img {height: 14vw;}
}
@media screen and (max-width: 980px) {
  #case {padding-bottom: 24vw;}
  #case::before {
    top: -7vw;
    height: 8vw;
  }
  #case .p-headline .c-heading span {font-size: 3.91vw;}
  #case .p-content > .c-flex > * {width: 50%;}
  #case .p-content > .c-flex > *:nth-child(odd) {margin-top: 0}
  #case .p-content > .c-flex > * {margin-top: 2em!important;}
  #case .p-content-bubble p {font-size: 2.08vw;}
  #case .p-content-illust img {height: 21vw;}
}
@media screen and (max-width: 640px) {
  #case .p-headline .c-heading span {font-size: 4.62vw;}
  #case .p-content > .c-flex > * {width: 70%;}
  #case .p-content-bubble p {font-size: 3.08vw;}
  #case .p-content-illust img {height: 28vw;}
}

/* ----- feature ----- */
#feature {
  background-color: #FFF23F;
  padding-bottom: 192px;
}
#feature::before {
  position: absolute;
  left: 0;
  top: -79px;
  width: 100%;
  height: 80px;
  background-color: inherit;
  border-top-left-radius: 100% 200%;
  border-top-right-radius: 100% 200%;
  content: '';
}
#feature .p-headline .c-heading span {
  font-family: var(--font-family-1st);
  font-size: 2.8rem;
  color: #111;
  text-align: center;
  letter-spacing: 0.1em;
}
#feature .p-content > .c-flex {
  margin: 3em 0;
  padding: 3em 8em;
  padding: 40px 160px;
  background-color: #f8f6ec;
  border-radius: 6em;
}
#feature .p-content > .c-flex > *:nth-child(1) {
  width: calc(100% - 320px);
  padding-right: 0;
}
#feature .p-content > .c-flex > *:nth-child(2) {width: 320px;}
#feature .p-content h3 {
  position: relative;
  font-size: 2.8rem;
  font-weight: 800;
  color: #00b9ef;
  padding-left: 64px;
}
#feature .p-content h3::before {
  position: absolute;
  left: 0;
  top: 55%;
  width: 46px;
  height: 56px;
  background-size: cover;
  transform: translateY(-50%);
  content: '';
}
#feature .p-content > .c-flex:nth-of-type(1) h3::before {background-image: url('../img/sotsuen/feature-point-01.png');}
#feature .p-content > .c-flex:nth-of-type(2) h3::before {background-image: url('../img/sotsuen/feature-point-02.png');}
#feature .p-content > .c-flex:nth-of-type(3) h3::before {background-image: url('../img/sotsuen/feature-point-03.png');}
#feature .p-content h3::after {
  position: absolute;
  left: 0;
  top: 0.4em;
  font-size: 1.4rem;
  font-weight: 900;
  color: #00b9ef;
  letter-spacing: 0.1em;
  line-height: 1;
  content: 'Point';
}
#feature .p-content p {
  font-size: 1.6rem;
  font-weight: 700;
  color: #111;
  line-height: 2.2;
  margin-top: 1.5em;
}
#feature .p-content figure {text-align: center;}
#feature .p-content figure img {
  width: auto;
  height: 230px;
}
#feature .p-content > .c-flex:nth-of-type(1) figure img {height: 180px;}
#feature .p-example {
  margin-top: 48px;
  padding: 48px 48px;
  background-image: url('../img/sotsuen/example-bg.png');
  background-position: center;
  background-size: cover;
  border-radius: 24px;
}
#feature .p-example > .c-flex > *:nth-child(1) {
  width: auto;
  padding-right: 2em;
}
#feature .p-example > .c-flex > *:nth-child(2) {width: 280px;}
#feature .p-example > .c-flex > *:nth-child(2):hover {transform: scale(1.05);}
#feature .p-example-title img {width: 500px;}
#feature .p-example-image img {width: 500px;}
#feature .p-example-thumb img {
  width: 100%;
  box-shadow: 0px 6px 16px rgba(0,0,0,0.2);
}
#feature .p-example > .c-flex > *:nth-child(2) p {
  font-family: var(--font-family-3rd);
  font-size: 2rem;
  font-weight: 700;
  color: #ffdb00;
  text-align: center;
  letter-spacing: 0.15em;
  margin-top: 1em;
}
#feature .p-btn {margin-top: 3em;}
#feature .p-btn .c-btn {
  color: #fff;
  background-color: #00B9EF;
  border-color: #00B9EF;
}
#feature .p-btn .c-btn span {color: #fff8da;}
#feature .p-btn .c-btn:hover {
  color: var(--color-1st);
  background-color: #fff;
  border-color: var(--color-1st);
}
#feature .p-btn .c-btn:hover span {color: inherit;}
@media screen and (max-width: 1200px) {
  #feature .p-content > .c-flex {padding: 3em 6em;}
  #feature .p-content > .c-flex > *:nth-child(1) {width: calc(100% - 280px);}
  #feature .p-content > .c-flex > *:nth-child(2) {width: 280px;}
}
@media screen and (max-width: 980px) {
  #feature {padding-bottom: 24vw;}
  #feature::before {
    top: -7vw;
    height: 8vw;
  }
  #feature .p-headline .c-heading span {font-size: 3.91vw;}
  #feature .p-content > .c-flex {padding: 3em 3em;}
  #feature .p-content > .c-flex > *:nth-child(1) {
    width: 75%;
    padding-right: 1em;
  }
  #feature .p-content > .c-flex > *:nth-child(2) {width: 25%;}
  #feature .p-content h3 {
    font-size: 3.65vw;
    padding-left: 9vw;
  }
  #feature .p-content h3::before {
    width: 7vw;
    height: 8.7vw;
  }
  #feature .p-content h3::after {
    top: 0;
    font-size: 2.08vw;
  }
  #feature .p-content p {font-size: 2.34vw;}
  #feature .p-content figure img {
    width: 100%!important;
    height: auto!important;
  }
  #feature .p-example > .c-flex > *:nth-child(1) {
    width: 100%;
    text-align: center;
    padding-right: 0;
  }
  #feature .p-example > .c-flex > *:nth-child(2) {
    width: 70%;
    text-align: center;
    margin-top: 2em;
  }
  #feature .p-example-title img {width: 80%;}
  #feature .p-example-image img {width: 80%;}
  #feature .p-example > .c-flex > *:nth-child(2) p {font-size: 3.13vw;}
}
@media screen and (max-width: 640px) {
  #feature .p-headline .c-heading span {font-size: 4.62vw;}
  #feature .p-content > .c-flex {
    padding: 2.5em 2.5em;
    border-radius: 5em;
  }
  #feature .p-content > .c-flex > *:nth-child(1) {
    width: 100%;
    padding-right: 0;
  }
  #feature .p-content > .c-flex > *:nth-child(2) {
    width: 100%;
    margin-top: 2em;
  }
  #feature .p-content h3 {
    font-size: 5.13vw;
    padding-left: 11vw;
  }
  #feature .p-content h3::before {
    width: 9vw;
    height: 11.18vw;
  }
  #feature .p-content h3::after {
    top: 0;
    font-size: 2.56vw;
  }
  #feature .p-content p {font-size: 3.59vw;}
  #feature .p-content figure img {width: 50%!important;}
  #feature .p-example-title img {width: 100%;}
  #feature .p-example-image img {width: 100%;}
}

/* ----- menu ----- */
#menu {
  padding-top: 32px;
  padding-bottom: 0;
  background-color: #fff;
}
#menu::before {
  position: absolute;
  left: 0;
  top: -79px;
  width: 100%;
  height: 80px;
  background-color: inherit;
  border-top-left-radius: 100% 200%;
  border-top-right-radius: 100% 200%;
  content: '';
}
#menu .c-inner {padding-bottom: 160px;}
#menu .p-bgIllust > * {position: absolute;}
#menu .p-bgIllust > *:nth-child(1) {
  left: -32px;
  bottom: 0;
}
#menu .p-banner > .c-flex > a {
  width: calc(100% / 3);
  text-align: center;
  margin-bottom: 2%;
  padding: 0 2%;
}
#menu .p-banner > .c-flex > a:hover {transform: translateY(-16px);}
#menu .p-link {
  margin-top: 48px;
  padding-left: 96px;
}
#menu .p-link > .c-flex > * {width: 25%;}
#menu .p-link > .c-flex > * > p:not(:last-child) {margin-bottom: 48px;}
#menu .p-link a {
  font-family: var(--font-family-1st);
  font-size: 16px;
  font-weight: 700;
}
#menu .p-link a:hover {color: var(--color-1st);}
@media screen and (max-width: 980px) {
  #menu {padding-top: 8vw;}
  #menu::before {
    top: -7vw;
    height: 8vw;
  }

  #menu .c-inner {padding-bottom: 16vw;}
  #menu .p-bgIllust > *:nth-child(1) {
    left: 0;
    bottom: 0;
  }
  #menu .p-banner > .c-flex > a {width: calc(100% / 2);}
  #menu .p-link {
    margin-top: 8vw;
    padding-left: 12vw;
  }
  #menu .p-link > .c-flex > * {
    width: 50%;
    margin-bottom: 4vw;
  }
  #menu .p-link > .c-flex > * > p:not(:last-child) {margin-bottom: 4vw;}
  #menu .p-link a {font-size: 2.4vw;}
}
@media screen and (max-width: 640px) {
  #menu .p-link > .c-flex > * {margin-bottom: 8vw;}
  #menu .p-link > .c-flex > * > p:not(:last-child) {margin-bottom: 8vw;}
  #menu .p-link a {font-size: 2.8vw;}
}

.d-inline-block {
  display: inline-block!important;
}

.footer-content-list-wrapper {
  padding: 2em 0;
}

.footer-content-list {
  margin: 0;
}

#footer .footer-content-list a {
  color: #fff;
  font-family: var(--font-family-1st);
  font-size: 14px;
  font-weight: bold;
  padding: 0 8px;
  text-decoration: underline;
}

#footer.l-footer {
  height: 220px;
}

.clearfix:after {
  clear: both;
  content: "";
  display: block;
}

@media screen and (max-width: 767px) {
  #footer.l-footer {
    height: 300px;
  }

  .footer-content-list-wrapper {
    padding: 0;
  }

  .footer-content-list {
    margin: 3em 0;
  }

  #footer li.d-inline-block {
    float: left;
    width: 50%;
  }

  #footer li.d-inline-block:nth-child(odd) {
    border-right: 1px solid rgba(255,255,255,.3);
  }

  #footer li.d-inline-block a {
    display: inline-block;
    padding: 6px;
    width: 100%;
  }

  #footer li.d-inline-block a:hover {
    background-color: rgba(255,255,255,.3);
  }

}
