@import url("https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Nothing+You+Could+Do&family=Noto+Sans+JP:wght@100..900&display=swap");
/*********************************
 *
 * COMMON
 *
 *********************************/
body {
  overflow-x: hidden;
  color: #000;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: min(1.3vw, 16px);
  font-weight: 500; }
  @media screen and (max-width: 768px) {
    body {
      max-width: 750px;
      font-size: min(3vw, 16px);
      -webkit-text-size-adjust: 100%; }
      body .pc {
        display: none !important; } }
  @media screen and (min-width: 769px) {
    body a {
      transition: 0.3s; }
      body a:hover {
        opacity: 0.8; }
    body .sp {
      display: none !important; } }
  body a {
    text-decoration: none; }
  body img {
    width: 100%;
    height: auto; }

/* font */
.green {
  color: #34c676; }

.green2 {
  color: #158474; }

strong {
  font-weight: 900; }

.txt_l {
  text-align: left !important; }

p.l_1em {
  padding: 0 0 0 1em;
  text-indent: -1em;
  line-height: 1.7; }

ul.l_1em li {
  padding-left: 1em;
  text-indent: -1em; }

.mT05em {
  margin-top: 0.5em !important; }

.mT1em {
  margin-top: 1em !important; }

.mT2em {
  margin-top: 2em !important; }

/* fadeIn */
.fadeIn,
.fadeIn_dl400,
.fadeIn_dl600,
.fadeIn_dl800,
.fadeIn_dl1200,
.fadeIn_dl1600 {
  animation-name: fadeInAnime;
  animation-duration: 2s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in;
  opacity: 0; }

.fadeIn_dl400 {
  animation-delay: 0.4s; }

.fadeIn_dl600 {
  animation-delay: 0.6s; }

.fadeIn_dl800 {
  animation-delay: 0.8s; }

.fadeIn_dl1200 {
  animation-delay: 1.2s; }

.fadeIn_dl1600 {
  animation-delay: 1.6s; }

@-webkit-keyframes fadeInAnime {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes fadeInAnime {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
.fadeInTrigger {
  opacity: 0; }

/* fadeUp */
.fadeUp {
  animation-name: fadeUpAnime;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in;
  opacity: 0; }

.fadeUp_dl400 {
  animation-name: fadeUpAnime;
  animation-duration: 0.6s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in;
  animation-delay: 0.4s;
  opacity: 0; }

.fadeUp_dl800 {
  animation-name: fadeUpAnime;
  animation-duration: 0.6s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in;
  animation-delay: 0.8s;
  opacity: 0; }

.fadeUp_dl1200 {
  animation-name: fadeUpAnime;
  animation-duration: 0.6s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in;
  animation-delay: 1.2s;
  opacity: 0; }

.fadeUp_dl1600 {
  animation-name: fadeUpAnime;
  animation-duration: 0.6s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in;
  animation-delay: 1.6s;
  opacity: 0; }

@-webkit-keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(50px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(50px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
.fadeUpTrigger {
  opacity: 0; }

/* fadeRight */
.fadeRight {
  animation-name: fadeRightAnime;
  animation-duration: 0.6s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in;
  animation-delay: 0.2s;
  opacity: 0; }

@-webkit-keyframes fadeRightAnime {
  from {
    opacity: 0;
    transform: translate(50px, 0); }
  to {
    opacity: 1;
    transform: translate(0, 0); } }
@keyframes fadeRightAnime {
  from {
    opacity: 0;
    transform: translate(50px, 0); }
  to {
    opacity: 1;
    transform: translate(0, 0); } }
/* fadeUp */
.fadeLeft {
  animation-name: fadeLeftAnime;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in;
  animation-delay: 1.2s;
  opacity: 0; }

@-webkit-keyframes fadeLeftAnime {
  from {
    opacity: 0;
    transform: translateX(-50px); }
  to {
    opacity: 1;
    transform: translateX(0); } }
@keyframes fadeLeftAnime {
  from {
    opacity: 0;
    transform: translateX(-50px); }
  to {
    opacity: 1;
    transform: translateX(0); } }
.fadeLeftTrigger {
  opacity: 0; }

/* about:opacity */
#about .flex_box .flex_l,
#about .flex_box .h2_box,
#about .flex_box .flex_r h3,
#about .flex_box .flex_r p,
#about ul.about_nav li {
  opacity: 0; }

/* strength:opacity */
ul.strength_nav li,
#strength .flex_box .en,
#strength .flex_box h3,
#strength .flex_box .note,
#strength .flex_box .img,
#strength .flex_box .flex_r {
  opacity: 0; }

/* service:opacity */
#service .cmn_lead,
#service .flex_box .en,
#service .flex_box h3,
#service .flex_box .img,
#service .flex_box .flex_r {
  opacity: 0; }

/* company:opacity */
#company .flex_box .flex_l,
#company .flex_box .flex_r p {
  opacity: 0; }

/* slideInL */
.slideInL::before {
  content: '';
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background: #fff;
  z-index: 2;
  transition: 0.6s;
  animation-fill-mode: ease-out;
  transition-timing-function: ease-in; }

/* about */
.slideInL.show::before {
  transform: translateX(100%); }

/* pathInR */
.pathInR.active {
  clip-path: inset(0 100% 0 0);
  animation: pathR 0.8s 1.5s forwards; }

@-webkit-keyframes pathR {
  0% {
    clip-path: inset(0 100% 0 0); }
  100% {
    clip-path: inset(0); } }
@keyframes pathR {
  0% {
    clip-path: inset(0 100% 0 0); }
  100% {
    clip-path: inset(0); } }
/* pathInL */
.pathInL.active {
  clip-path: inset(0 0 0 100%);
  animation: pathL 0.8s 1.5s forwards; }

@-webkit-keyframes pathL {
  0% {
    clip-path: inset(0 0 0 100%); }
  100% {
    clip-path: inset(0); } }
@keyframes pathL {
  0% {
    clip-path: inset(0 0 0 100%); }
  100% {
    clip-path: inset(0); } }
/*********************************
 *
 * MV
 *
 *********************************/
#mv {
  position: relative;
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  opacity: 0;
  transition: 0.8s; }
  #mv.show {
    opacity: 1; }
  #mv .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #mv .inner {
        width: 100%; } }
  #mv h1 {
    position: absolute;
    max-width: calc(290px + 3em);
    padding: 1.3em 1.5em;
    top: 13%;
    left: -9.2%;
    /*background: linear-gradient(to right, #27a676 0%, #128e4e 100%);
    color: #fff;*/
    background: #fff;
    /*font-size: min(1.9vw, 25px);
    font-weight: 700;*/
    text-align: center; }
    @media screen and (max-width: 768px) {
      #mv h1 {
        position: fixed;
        width: 50%;
        top: 0.6em;
        left: 0;
        padding: 0.3em 1em;
        /*font-size: min(3.3vw, 20px);*/
        z-index: +20; } }
  #mv p {
    position: absolute;
    padding: 1em 2.2em 1em 1.5em;
    top: 47%;
    right: 0;
    background-color: rgba(255, 255, 255, 0.7);
    color: #158474;
    font-size: min(2.5vw, 32px);
    line-height: 1.7; }
    @media screen and (max-width: 768px) {
      #mv p {
        top: 52%;
        padding: 0.7em 2.2em 0.7em 1em;
        font-size: min(4.2vw, 25px); } }

/*********************************
 *
 * FIXNAV
 *
 *********************************/
#fix_nav {
  width: 7.2vw;
  max-width: 100px;
  top: 0;
  z-index: 20; }
  @media screen and (min-width: 769px) {
    #fix_nav {
      position: fixed;
      left: calc(50% + 540px); } }
  @media screen and (min-width: 769px) and (max-width: 1279px) {
    #fix_nav {
      position: fixed;
      left: calc(100% - 7.2vw); } }
  @media screen and (max-width: 768px) {
    #fix_nav {
      position: sticky;
      width: 100%;
      max-width: none;
      height: 54px;
      top: 0;
      left: 0; } }
  #fix_nav ul {
    width: 4.2vw;
    max-width: 60px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #fix_nav ul {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        flex-direction: row-reverse;
        width: 100%;
        max-width: none;
        height: 54px; } }
    #fix_nav ul li {
      margin: 0.9em 0 0 0; }
      @media screen and (max-width: 768px) {
        #fix_nav ul li {
          width: 40px;
          height: 40px;
          margin: 0 8px 0 0; } }
    #fix_nav ul li.nav_btn {
      position: relative;
      width: 100%;
      height: 4.2vw;
      max-height: 60px;
      background-color: #f4f4f4;
      border-radius: 50%;
      cursor: pointer; }
      @media screen and (max-width: 768px) {
        #fix_nav ul li.nav_btn {
          width: 40px;
          height: 40px;
          margin: 0 0 0 8pxm; } }
      #fix_nav ul li.nav_btn span {
        position: absolute;
        width: 60%;
        height: 2px;
        left: 20%;
        background-color: #158474;
        transition: 0.1s; }
        #fix_nav ul li.nav_btn span:nth-child(1) {
          top: calc(50% - 0.5em); }
        #fix_nav ul li.nav_btn span:nth-child(2) {
          top: 50%;
          opacity: 1; }
        #fix_nav ul li.nav_btn span:nth-child(3) {
          top: calc(50% + 0.5em); }
      #fix_nav ul li.nav_btn.open span:nth-child(1) {
        top: 50%;
        transform: rotate(40deg); }
      #fix_nav ul li.nav_btn.open span:nth-child(2) {
        opacity: 0; }
      #fix_nav ul li.nav_btn.open span:nth-child(3) {
        top: 50%;
        transform: rotate(-40deg); }

/*********************************
 *
 * NAV
 *
 *********************************/
nav {
  position: fixed;
  display: none;
  overflow-y: auto;
  width: 350px;
  top: 0;
  background-color: white;
  z-index: 10; }
  @media screen and (min-width: 769px) {
    nav {
      left: calc(50% + 290px); } }
  @media screen and (min-width: 769px) and (max-width: 1279px) {
    nav {
      left: calc(100% - 350px); } }
  @media screen and (max-width: 768px) {
    nav {
      width: 50%;
      right: 0; } }
  nav ul {
    margin: 0 0 0 10%;
    padding: 0.5em 0 4em 0;
    font-size: min(1.4vw, 18px); }
    @media screen and (min-width: 769px) {
      nav ul {
        width: calc(90% - 7.2vw);
        min-width: 220px; } }
    @media screen and (max-width: 768px) {
      nav ul {
        width: 80%;
        min-width: none;
        margin: 54px auto 0 auto;
        padding: 0 0 3em 0;
        border-top: 1px solid #34c676;
        font-size: min(3vw, 16px); } }
    nav ul li {
      padding: 1.2em 0;
      border-bottom: 1px solid #34c676; }
    nav ul a {
      color: #158474; }
  nav.open {
    display: block; }

/*********************************
 *
 * INFO
 *
 *********************************/
#info {
  padding: 8em 0 9em 0;
  background-color: #eaf9f1; }
  @media screen and (max-width: 768px) {
    #info {
      padding: 5em 0 6em 0; } }
  #info.low {
    margin: 0; }
    @media screen and (max-width: 768px) {
      #info.low {
        margin: 0; } }
    #info.low h3.info_ttl,
    #info.low h2 {
      color: #158474;
      font-size: min(1.9vw, 24px);
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #info.low h3.info_ttl,
        #info.low h2 {
          font-size: min(4.5vw, 26px); } }
    #info.low h2 {
      margin: 3em 0 0 0; }
    #info.low .ptxt {
      margin: 1.5em 0 0 0;
      line-height: 2.2; }
    #info.low .link {
      margin: 6em 0 0 0;
      font-size: 90%;
      text-align: center; }
      #info.low .link a {
        color: #444;
        border-bottom: 1px solid #eaf9f1; }
        @media screen and (min-width: 769px) {
          #info.low .link a {
            transition: 0.3s; }
            #info.low .link a:hover {
              border-bottom: 1px solid #444; } }
    #info.low .home_btn a {
      display: block;
      width: 70%;
      max-width: 350px;
      margin: 3em auto 0 auto;
      padding: 0.8em 0;
      background: #158474;
      border-radius: 3em;
      color: #fff;
      text-align: center; }
    #info.low .area1 {
      margin: 3em auto 0 auto; }
    #info.low .area2 {
      margin: 3em auto 0 auto; }
      #info.low .area2 .ptxt {
        display: flex;
        justify-content: space-between;
        width: 100%;
        margin: 0; }
        #info.low .area2 .ptxt .fleft {
          width: 45%;
          padding-top: 0.6em; }
        #info.low .area2 .ptxt .fright {
          width: 50%;
          font-weight: 500;
          line-height: 2; }
    #info.low .area3 {
      margin: 3em auto 0 auto; }
      #info.low .area3 .ptxt {
        display: flex;
        flex-direction: row-reverse;
        justify-content: space-between;
        width: 100%;
        margin: 0; }
        #info.low .area3 .ptxt .fleft {
          width: 50%;
          font-weight: 500;
          line-height: 2; }
        #info.low .area3 .ptxt .fright {
          width: 45%;
          max-width: 410px;
          padding-top: 0.6em; }
  #info .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #info h2 {
    color: #158474;
    font-size: min(1.7vw, 22px);
    font-weight: 700; }
    @media screen and (max-width: 768px) {
      #info h2 {
        font-size: min(4.5vw, 26px); } }
    #info h2 span {
      margin: 0 1em 0 0;
      color: #000;
      font-family: "Nothing You Could Do", cursive;
      font-size: min(4.1vw, 58px);
      font-weight: 500; }
      @media screen and (max-width: 768px) {
        #info h2 span {
          margin: 0 0.5em 0 0;
          font-size: min(8vw, 50px); } }
  #info .info_box {
    width: 74%;
    max-width: 800px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #info .info_box {
        width: 96%; } }
  #info dl {
    margin: 1.5em 0 0 0; }
    @media screen and (max-width: 768px) {
      #info dl {
        margin: 0; } }
    #info dl dt {
      padding: 1.5em 0 0 0;
      color: #34c676;
      font-weight: 700; }
    #info dl dd {
      padding: 0.35em 0 1.4em 3em;
      border-bottom: 1px solid #dbeae1;
      font-size: min(1.5vw, 18px);
      line-height: 1.8; }
      @media screen and (max-width: 768px) {
        #info dl dd {
          padding: 0.4em 0 1.5em 1em;
          font-size: min(3vw, 16px); } }
    #info dl a {
      color: #000;
      border-bottom: 1px solid #eaf9f1; }
      @media screen and (min-width: 769px) {
        #info dl a:hover {
          opacity: 1;
          border-bottom: 1px solid #000; } }

/*********************************
 *
 * ABOUT
 *
 *********************************/
#about {
  position: relative;
  padding: 0 0 9em 0; }
  @media screen and (max-width: 768px) {
    #about {
      padding: 0 0 6em 0; } }
  #about .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #about .flex_box {
    margin-top: 6em; }
    @media screen and (max-width: 768px) {
      #about .flex_box {
        display: block; } }
  #about .flex_l {
    width: 50%; }
    @media screen and (max-width: 768px) {
      #about .flex_l {
        width: 116.4%;
        margin: 0 0 0 -8.2%; } }
  #about .flex_r {
    width: 100%; }
    @media screen and (max-width: 768px) {
      #about .flex_r {
        width: 100%;
        margin: 0; } }
    #about .flex_r .h2_box {
      position: relative;
      padding-bottom: 2em; }
      #about .flex_r .h2_box span {
        position: absolute;
        margin: -0.5em 0 0 0;
        color: rgba(52, 198, 118, 0.3);
        font-family: "Nothing You Could Do", cursive;
        font-size: min(13vw, 168px); }
        @media screen and (max-width: 768px) {
          #about .flex_r .h2_box span {
            position: relative;
            margin: 0;
            font-size: min(23vw, 90px); } }
    #about .flex_r h2 {
      margin-top: 1em;
      color: #158474;
      font-size: min(2vw, 26px);
      font-weight: 700;
      text-align: right;
      line-height: 1.6; }
      @media screen and (max-width: 768px) {
        #about .flex_r h2 {
          text-align: left;
          font-size: min(4.5vw, 26px); } }
    #about .flex_r h3 {
      margin: 1.8em 0 0 0;
      color: #34c676;
      font-size: min(1.7vw, 22px);
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #about .flex_r h3 {
          margin: 1.2em 0 0 0;
          font-size: min(3.8vw, 22px);
          text-align: left; } }
    #about .flex_r p {
      margin: 1em 0 0 0;
      line-height: 2; }
  #about ul.about_nav {
    display: flex;
    justify-content: space-between;
    margin: 3em 0 0 0; }
    @media screen and (max-width: 768px) {
      #about ul.about_nav {
        width: 116.4%;
        margin: 4em 0 0 -8.2%; } }
    #about ul.about_nav li {
      width: 30%; }
      @media screen and (max-width: 768px) {
        #about ul.about_nav li {
          width: 32.4%; } }
      #about ul.about_nav li:nth-child(2) {
        margin: 0; }
        @media screen and (max-width: 768px) {
          #about ul.about_nav li:nth-child(2) {
            margin: 0; } }
      #about ul.about_nav li:nth-child(3) {
        margin: 0; }
        @media screen and (max-width: 768px) {
          #about ul.about_nav li:nth-child(3) {
            margin: 0; } }
    #about ul.about_nav a {
      display: block;
      position: relative;
      border: 1px solid #158474;
      color: #158474; }
    #about ul.about_nav dl {
      /*position: absolute;
      bottom: 0;
      background-color: rgba(255,255,255,0.7);*/
      width: 100%; }
      #about ul.about_nav dl dt {
        padding: 0.6em 1em 0 1em;
        font-size: min(1.9vw, 25px);
        font-weight: 700; }
        @media screen and (max-width: 768px) {
          #about ul.about_nav dl dt {
            font-size: min(3.3vw, 20px); } }
      #about ul.about_nav dl dd {
        padding: 0 1.4em 1.7em 0;
        font-size: min(1.4vw, 18px);
        text-align: right; }
        @media screen and (max-width: 768px) {
          #about ul.about_nav dl dd {
            font-size: min(2.6vw, 14px); } }
    #about ul.about_nav .icon {
      position: absolute;
      width: 12%;
      left: 44%;
      bottom: -1.2em; }
      @media screen and (max-width: 768px) {
        #about ul.about_nav .icon {
          width: 16%;
          left: 42%;
          bottom: -1em; } }

/*********************************
 *
 * STRENGTH
 *
 *********************************/
#strength {
  position: relative;
  padding: 0 0 9em 0;
  background-color: #eaf9f1; }
  @media screen and (max-width: 768px) {
    #strength {
      padding: 0 0 5em 0; } }
  #strength .h2_box {
    background: url("../images/strength_img01.jpg") center top no-repeat;
    background-size: cover; }
    @media screen and (max-width: 768px) {
      #strength .h2_box {
        background: url("../images/strength_img01-sp.jpg") center top no-repeat;
        background-size: cover; } }
  #strength .h2_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 5em 0 4em 0;
    color: #fff; }
    @media screen and (max-width: 768px) {
      #strength .h2_inner {
        padding: 4em 0 3em 0; } }
    #strength .h2_inner span {
      font-family: "Nothing You Could Do", cursive;
      font-size: min(6.2vw, 80px); }
      @media screen and (max-width: 768px) {
        #strength .h2_inner span {
          font-size: min(8vw, 50px); } }
    #strength .h2_inner h2 {
      font-size: min(2vw, 26px); }
      @media screen and (max-width: 768px) {
        #strength .h2_inner h2 {
          font-size: min(3.3vw, 18px); } }
  #strength .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #strength .cmn_lead {
    display: flex;
    justify-content: space-between;
    margin: 4em 0 0 0; }
    @media screen and (max-width: 768px) {
      #strength .cmn_lead {
        display: block;
        margin: 3em 0 0 0; } }
    #strength .cmn_lead h3 {
      width: 42%;
      color: #158474;
      font-size: min(2.3vw, 30px);
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #strength .cmn_lead h3 {
          width: 100%;
          font-size: min(5.1vw, 30px); } }
    #strength .cmn_lead p {
      width: 52%;
      line-height: 2; }
      @media screen and (max-width: 768px) {
        #strength .cmn_lead p {
          margin: 2.5em 0 0 0;
          width: 100%; } }
  #strength ul.strength_nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap; }
    @media screen and (max-width: 768px) {
      #strength ul.strength_nav {
        width: 110%;
        margin: 0 0 0 -5%; } }
    #strength ul.strength_nav li {
      position: relative;
      width: 48.5%;
      margin: 4em 0 0 0;
      padding: 1.5em 1em 1.5em 0;
      background-color: #fff;
      box-shadow: 0 0 0.5em rgba(52, 198, 118, 0.3); }
      @media screen and (max-width: 768px) {
        #strength ul.strength_nav li {
          /*width: 32.4%;*/
          margin: 2em 0 0 0;
          padding: 0.5em 0.5em 0.5em 0; } }
    #strength ul.strength_nav .nav_flex {
      position: relative;
      display: flex;
      align-items: center;
      justify-content: space-between; }
      #strength ul.strength_nav .nav_flex span {
        color: #d6f4e4;
        font-family: "Caveat", cursive;
        font-size: min(13vw, 168px);
        font-weight: 100;
        line-height: 0.5; }
        @media screen and (max-width: 768px) {
          #strength ul.strength_nav .nav_flex span {
            font-size: min(15vw, 80px); } }
      #strength ul.strength_nav .nav_flex p {
        color: #158474;
        font-size: min(1.7vw, 22px);
        text-align: right; }
        @media screen and (max-width: 768px) {
          #strength ul.strength_nav .nav_flex p {
            font-size: min(2.2vw, 12px); } }
    #strength ul.strength_nav .icon {
      position: absolute;
      width: 8%;
      left: 46%;
      bottom: -1.3em; }
      @media screen and (max-width: 768px) {
        #strength ul.strength_nav .icon {
          width: 10%;
          left: 45%;
          bottom: -1em; } }
  #strength .flex_box {
    display: flex;
    justify-content: space-between;
    margin: 8em 0 0 0;
    padding: 2em 0 0 0; }
    @media screen and (max-width: 768px) {
      #strength .flex_box {
        display: block;
        margin: 5em 0 0 0;
        /*width: 116.4%;
        margin: 5em 0 0 -8.2%;*/ } }
    #strength .flex_box .flex_l {
      position: relative;
      width: 44%; }
      @media screen and (max-width: 768px) {
        #strength .flex_box .flex_l {
          width: 100%; } }
      #strength .flex_box .flex_l .en {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        text-align: right; }
        @media screen and (max-width: 768px) {
          #strength .flex_box .flex_l .en {
            justify-content: flex-end;
            width: 85.8%;
            margin: 0 auto; } }
        #strength .flex_box .flex_l .en span {
          margin: 0 0 0 -0.1em;
          color: #34c676;
          font-family: "Caveat", cursive;
          font-size: min(19.5vw, 250px);
          font-weight: 100;
          line-height: 0.5; }
          @media screen and (max-width: 768px) {
            #strength .flex_box .flex_l .en span {
              position: absolute;
              top: 0;
              left: 4%;
              font-size: min(38vw, 130px); } }
        #strength .flex_box .flex_l .en p {
          margin: 0 0 -0.5em 0;
          font-family: "Nothing You Could Do", cursive;
          font-size: min(3.9vw, 50px); }
          @media screen and (max-width: 768px) {
            #strength .flex_box .flex_l .en p {
              font-size: min(7vw, 40px); } }
      #strength .flex_box .flex_l h3 {
        margin: 0.7em 0 0 0;
        color: #158474;
        font-size: min(2.3vw, 30px);
        font-weight: 700;
        text-align: right; }
        @media screen and (max-width: 768px) {
          #strength .flex_box .flex_l h3 {
            width: 85.8%;
            margin: 0.7em auto 0 auto;
            font-size: min(4.2vw, 25px); } }
      #strength .flex_box .flex_l .note {
        position: relative;
        width: 150%;
        margin: 3.5em 0 0 0;
        padding: 1em 1.5em;
        background-color: rgba(255, 255, 255, 0.7);
        line-height: 2;
        z-index: +1; }
        @media screen and (max-width: 768px) {
          #strength .flex_box .flex_l .note {
            /*position: absolute;
            width: 85.8%;
            bottom: 2em;*/
            width: 100%;
            margin: -2em 0 0 0; } }
      @media screen and (max-width: 768px) {
        #strength .flex_box .flex_l .img {
          width: 100%;
          margin: 1em 0 0 0;
          text-align: right; }
          #strength .flex_box .flex_l .img img {
            width: 85%; } }
      #strength .flex_box .flex_l.full {
        width: 100%; }
        #strength .flex_box .flex_l.full .note {
          width: 100%; }
        #strength .flex_box .flex_l.full .note + .note {
          margin: 0; }
    #strength .flex_box .flex_r {
      width: 50%; }
    #strength .flex_box.reverse {
      flex-direction: row-reverse; }
      @media screen and (max-width: 768px) {
        #strength .flex_box.reverse .flex_l .en {
          justify-content: flex-start; } }
      @media screen and (max-width: 768px) {
        #strength .flex_box.reverse .flex_l .en span {
          right: 8%;
          text-align: right; } }
      @media screen and (max-width: 768px) {
        #strength .flex_box.reverse .flex_l h3 {
          text-align: left; } }
      #strength .flex_box.reverse .flex_l p {
        margin-left: -50%; }
        @media screen and (max-width: 768px) {
          #strength .flex_box.reverse .flex_l p {
            margin-left: 0; } }
      @media screen and (max-width: 768px) {
        #strength .flex_box.reverse .flex_l .img {
          text-align: left; } }
  #strength ul.cmn_clm2 {
    display: flex;
    justify-content: space-between; }
    #strength ul.cmn_clm2 li {
      width: 47%;
      margin: 4em 0 0 0; }
      @media screen and (max-width: 768px) {
        #strength ul.cmn_clm2 li {
          margin: 3em 0 0 0; } }
    #strength ul.cmn_clm2 .ttl {
      color: #34c676;
      font-size: min(1.9vw, 25px);
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #strength ul.cmn_clm2 .ttl {
          font-size: min(3.3vw, 20px); } }
    #strength ul.cmn_clm2 .img {
      margin: 0.8em 0 0 0; }
    #strength ul.cmn_clm2 .note {
      margin: 0.8em 0 0 0;
      line-height: 1.7; }
      @media screen and (max-width: 768px) {
        #strength ul.cmn_clm2 .note {
          font-size: min(2.6vw, 14px); } }

@media screen and (max-width: 768px) {
  #strength2 img,
  #strength3 img {
    margin-top: 1.5em; } }

@media screen and (max-width: 768px) {
  #strength4 .flex_l h3 + .note {
    margin-top: 1.5em !important; } }

/*********************************
 *
 * SERVICE
 *
 *********************************/
#service {
  padding: 0 0 9em 0; }
  @media screen and (max-width: 768px) {
    #service {
      padding: 0 0 5em 0; } }
  #service .h2_box {
    background: linear-gradient(to right, #27a676 0%, #27a676 45%, #fff 45%, #fff 100%); }
  #service .h2_inner {
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto;
    background: url("../images/service_img01.jpg") right top no-repeat;
    background-size: auto 100%;
    color: #fff; }
    @media screen and (max-width: 768px) {
      #service .h2_inner {
        width: 100%; } }
    #service .h2_inner .h2_bg {
      position: relative;
      width: 45%;
      padding: 5em 0 4em 0;
      background: linear-gradient(to right, #27a676 0%, #128e4e 100%);
      line-height: 1; }
      @media screen and (max-width: 768px) {
        #service .h2_inner .h2_bg {
          padding: 3em 0 2em 1em; } }
      #service .h2_inner .h2_bg::after {
        position: absolute;
        display: block;
        content: "";
        width: 20%;
        height: 100%;
        top: 0;
        right: -20%;
        background: #128e4e;
        clip-path: polygon(0 0, 0% 100%, 100% 100%); }
    #service .h2_inner span {
      font-family: "Nothing You Could Do", cursive;
      font-size: min(6.2vw, 80px); }
      @media screen and (max-width: 768px) {
        #service .h2_inner span {
          font-size: min(8vw, 50px); } }
    #service .h2_inner h2 {
      font-size: min(2vw, 26px);
      text-align: right; }
      @media screen and (max-width: 768px) {
        #service .h2_inner h2 {
          font-size: min(3.3vw, 18px);
          line-height: 1.6; } }
  #service .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #service .cmn_lead {
    display: flex;
    justify-content: space-between;
    margin: 4em 0 0 0; }
    @media screen and (max-width: 768px) {
      #service .cmn_lead {
        display: block;
        margin: 3em 0 0 0; } }
    #service .cmn_lead h3 {
      width: 42%;
      color: #158474;
      font-size: min(2.3vw, 30px);
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #service .cmn_lead h3 {
          width: 100%;
          font-size: min(5.1vw, 30px); } }
    #service .cmn_lead p {
      width: 52%;
      line-height: 2; }
      @media screen and (max-width: 768px) {
        #service .cmn_lead p {
          margin: 2.5em 0 0 0;
          width: 100%; } }
  #service ul.strength_nav {
    display: flex;
    align-items: center;
    justify-content: space-between; }
    #service ul.strength_nav li {
      position: relative;
      width: 30%;
      margin: 4em 0 0 0;
      padding: 0.5em 1em 0.5em 0;
      background-color: #fff;
      box-shadow: 0 0 0.5em rgba(52, 198, 118, 0.3); }
    #service ul.strength_nav .nav_flex {
      position: relative; }
      #service ul.strength_nav .nav_flex span {
        color: #d6f4e4;
        font-family: "Caveat", cursive;
        font-size: min(13vw, 168px);
        font-weight: 100;
        line-height: 0.5; }
      #service ul.strength_nav .nav_flex p {
        position: absolute;
        top: calc(50% - 0.5em);
        width: 100%;
        color: #158474;
        font-size: min(1.7vw, 22px);
        text-align: right; }
    #service ul.strength_nav .icon {
      position: absolute;
      width: 12%;
      left: 44%;
      bottom: -1.3em; }
  #service .flex_box {
    display: flex;
    justify-content: space-between;
    margin: 8em 0 0 0;
    padding: 2em 0 0 0; }
    @media screen and (max-width: 768px) {
      #service .flex_box {
        flex-wrap: wrap;
        margin: 5em 0 0 0; } }
    #service .flex_box .flex_l {
      position: relative;
      width: 44%; }
      @media screen and (max-width: 768px) {
        #service .flex_box .flex_l {
          width: 100%; } }
      #service .flex_box .flex_l .en {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        text-align: right; }
        @media screen and (max-width: 768px) {
          #service .flex_box .flex_l .en {
            justify-content: flex-end;
            margin: 0 auto; } }
        #service .flex_box .flex_l .en span {
          margin: 0 0 0 -0.3em;
          color: #34c676;
          font-family: "Caveat", cursive;
          font-size: min(19.5vw, 250px);
          font-weight: 100;
          line-height: 0.5; }
          @media screen and (max-width: 768px) {
            #service .flex_box .flex_l .en span {
              position: absolute;
              top: -0.1em;
              left: 4%;
              font-size: min(38vw, 130px); } }
        #service .flex_box .flex_l .en p {
          margin: 0 0 -0.5em 0;
          font-family: "Nothing You Could Do", cursive;
          font-size: min(3.9vw, 50px); }
          @media screen and (max-width: 768px) {
            #service .flex_box .flex_l .en p {
              font-size: min(7vw, 40px); } }
      #service .flex_box .flex_l h3 {
        margin: 0.7em 0 0 0;
        color: #158474;
        font-size: min(2.3vw, 30px);
        font-weight: 700;
        text-align: right; }
        @media screen and (max-width: 768px) {
          #service .flex_box .flex_l h3 {
            margin: 0.7em auto 0 auto;
            font-size: min(4.2vw, 25px); } }
      #service .flex_box .flex_l .txt {
        position: relative;
        width: 150%;
        margin: 4em 0 0 0;
        padding: 1em 1.5em;
        background-color: rgba(227, 242, 234, 0.7);
        line-height: 2;
        z-index: +1; }
        @media screen and (max-width: 768px) {
          #service .flex_box .flex_l .txt {
            width: 100%;
            margin: -3em 0 0 0; } }
      #service .flex_box .flex_l .ttl {
        margin: 0 0 0.5em 0;
        color: #158474;
        font-size: min(1.7vw, 22px);
        font-weight: 800;
        line-height: 1.6; }
        @media screen and (max-width: 768px) {
          #service .flex_box .flex_l .ttl {
            font-size: min(3.4vw, 20px); } }
      @media screen and (max-width: 768px) {
        #service .flex_box .flex_l .img {
          width: 100%;
          margin: 3em 0 0 0;
          /*text-align: center;*/ }
          #service .flex_box .flex_l .img img {
            width: 100%; } }
    #service .flex_box .flex_r {
      width: 50%; }
    #service .flex_box.reverse {
      flex-direction: row-reverse; }
      #service .flex_box.reverse .flex_l .en {
        align-items: flex-start;
        flex-direction: column; }
        @media screen and (max-width: 768px) {
          #service .flex_box.reverse .flex_l .en {
            justify-content: flex-start; } }
        @media screen and (max-width: 768px) {
          #service .flex_box.reverse .flex_l .en span {
            right: 8%;
            text-align: right; } }
        #service .flex_box.reverse .flex_l .en p {
          width: 100%;
          text-align: right;
          line-height: 1; }
          @media screen and (max-width: 768px) {
            #service .flex_box.reverse .flex_l .en p {
              text-align: left; } }
      @media screen and (max-width: 768px) {
        #service .flex_box.reverse .flex_l h3 {
          margin: 1em 0 0 0;
          text-align: left; } }
      #service .flex_box.reverse .flex_l .txt {
        margin-left: -50%; }
        @media screen and (max-width: 768px) {
          #service .flex_box.reverse .flex_l .txt {
            margin-left: 0; } }
      #service .flex_box.reverse .flex_l .ttl {
        text-align: right; }
        @media screen and (max-width: 768px) {
          #service .flex_box.reverse .flex_l .ttl {
            text-align: left; } }
  #service ul.cmn_clm2 {
    display: flex;
    justify-content: space-between; }
    #service ul.cmn_clm2 li {
      width: 47%;
      margin: 4em 0 0 0; }
      @media screen and (max-width: 768px) {
        #service ul.cmn_clm2 li {
          margin: 3em 0 0 0; } }
    #service ul.cmn_clm2 .ttl {
      color: #34c676;
      font-size: min(1.9vw, 25px);
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #service ul.cmn_clm2 .ttl {
          font-size: min(3.3vw, 20px); } }
    #service ul.cmn_clm2 .img {
      margin: 0.8em 0 0 0; }
    #service ul.cmn_clm2 .note {
      margin: 0.8em 0 0 0;
      line-height: 1.7; }
      @media screen and (max-width: 768px) {
        #service ul.cmn_clm2 .note {
          font-size: min(2.6vw, 14px); } }

/*********************************
 *
 * PRICE
 *
 *********************************/
#price {
  padding: 0 0 9em 0; }
  @media screen and (max-width: 768px) {
    #price {
      padding: 0 0 5em 0; } }
  #price .h2_box {
    background: linear-gradient(to right, #27a676 0%, #27a676 45%, #fff 45%, #fff 100%); }
  #price .h2_inner {
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto;
    background: url("../images/price_img01.jpg") right top no-repeat;
    background-size: auto 100%;
    color: #fff; }
    @media screen and (max-width: 768px) {
      #price .h2_inner {
        width: 100%; } }
    #price .h2_inner .h2_bg {
      position: relative;
      width: 45%;
      padding: 5em 0 4em 0;
      background: linear-gradient(to right, #27a676 0%, #128e4e 100%);
      line-height: 1; }
      @media screen and (max-width: 768px) {
        #price .h2_inner .h2_bg {
          padding: 3em 0 2em 1em; } }
      #price .h2_inner .h2_bg::after {
        position: absolute;
        display: block;
        content: "";
        width: 20%;
        height: 100%;
        top: 0;
        right: -20%;
        background: #128e4e;
        clip-path: polygon(0 0, 0% 100%, 100% 100%); }
    #price .h2_inner span {
      font-family: "Nothing You Could Do", cursive;
      font-size: min(6.2vw, 80px); }
      @media screen and (max-width: 768px) {
        #price .h2_inner span {
          font-size: min(8vw, 50px); } }
    #price .h2_inner h2 {
      font-size: min(2vw, 26px);
      text-align: right; }
      @media screen and (max-width: 768px) {
        #price .h2_inner h2 {
          font-size: min(3.3vw, 18px);
          line-height: 1.6; } }
  #price .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #price .cmn_lead {
    display: flex;
    justify-content: space-between;
    margin: 4em 0 0 0; }
    @media screen and (max-width: 768px) {
      #price .cmn_lead {
        display: block;
        margin: 3em 0 0 0; } }
    #price .cmn_lead h3 {
      width: 42%;
      color: #158474;
      font-size: min(2.3vw, 30px);
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #price .cmn_lead h3 {
          width: 100%;
          font-size: min(5.1vw, 30px); } }
    #price .cmn_lead p {
      width: 52%;
      line-height: 2; }
      @media screen and (max-width: 768px) {
        #price .cmn_lead p {
          margin: 2.5em 0 0 0;
          width: 100%; } }
  #price .price_inner {
    width: 80%;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #price .price_inner {
        width: 85.8%; } }
    #price .price_inner .lead {
      margin: 3.5em 0 0 0;
      line-height: 2;
      text-align: center; }
      @media screen and (max-width: 768px) {
        #price .price_inner .lead {
          margin: 2.5em 0 0 0; } }
  #price h3.price_ttl {
    width: 60%;
    margin: 5em auto 0 auto;
    padding: 0.2em 0;
    border: 1px solid #34c676;
    border-radius: 2em;
    color: #34c676;
    font-size: min(2vw, 26px);
    font-weight: 700;
    text-align: center; }
    @media screen and (max-width: 768px) {
      #price h3.price_ttl {
        width: 100%;
        margin: 3em auto 0 auto;
        padding: 0.7em 0;
        font-size: min(4.6vw, 20px); } }
  #price p.ttl {
    margin: 3em 0 0 0;
    font-size: min(1.7vw, 22px); }
    @media screen and (max-width: 768px) {
      #price p.ttl {
        font-size: min(3.3vw, 20px); } }
    #price p.ttl strong {
      color: #34c676; }
  #price p.sttl {
    margin: 1em 0 0 0;
    font-size: min(1.4vw, 18px); }
    @media screen and (max-width: 768px) {
      #price p.sttl {
        font-size: min(3vw, 16px); } }
    #price p.sttl strong {
      color: #444; }
  #price table {
    width: 100%;
    margin: 0.7em 0 0 0;
    font-size: min(1.4vw, 18px); }
    @media screen and (max-width: 768px) {
      #price table {
        width: 560px;
        font-size: min(3vw, 16px); } }
    #price table th, #price table td {
      padding: 0.6em 0;
      border: 1px solid #e5e8e9;
      text-align: center; }
    #price table th {
      /*color: #34c676 !important;*/
      font-weight: 700; }
  @media screen and (max-width: 768px) {
    #price .table_scroll {
      overflow-x: auto; } }

/*********************************
 *
 * VOICE
 *
 *********************************/
#voice {
  padding: 0 0 9em 0; }
  @media screen and (max-width: 768px) {
    #voice {
      padding: 0 0 5em 0; } }
  #voice .h2_box {
    background: linear-gradient(to right, #27a676 0%, #27a676 45%, #fff 45%, #fff 100%); }
  #voice .h2_inner {
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto;
    background: url("../images/voice_img01.jpg") right top no-repeat;
    background-size: auto 100%;
    color: #fff; }
    @media screen and (max-width: 768px) {
      #voice .h2_inner {
        width: 100%; } }
    #voice .h2_inner .h2_bg {
      position: relative;
      width: 45%;
      padding: 5em 0 4em 0;
      background: linear-gradient(to right, #27a676 0%, #128e4e 100%);
      line-height: 1; }
      @media screen and (max-width: 768px) {
        #voice .h2_inner .h2_bg {
          padding: 3em 0 2em 1em; } }
      #voice .h2_inner .h2_bg::after {
        position: absolute;
        display: block;
        content: "";
        width: 20%;
        height: 100%;
        top: 0;
        right: -20%;
        background: #128e4e;
        clip-path: polygon(0 0, 0% 100%, 100% 100%); }
    #voice .h2_inner span {
      font-family: "Nothing You Could Do", cursive;
      font-size: min(6.2vw, 80px); }
      @media screen and (max-width: 768px) {
        #voice .h2_inner span {
          font-size: min(8vw, 50px); } }
    #voice .h2_inner h2 {
      font-size: min(2vw, 26px);
      text-align: right; }
      @media screen and (max-width: 768px) {
        #voice .h2_inner h2 {
          font-size: min(3.3vw, 18px);
          line-height: 1.6; } }
  #voice .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #voice .cmn_lead {
    display: flex;
    justify-content: space-between;
    margin: 4em 0 0 0; }
    @media screen and (max-width: 768px) {
      #voice .cmn_lead {
        display: block;
        margin: 3em 0 0 0; } }
    #voice .cmn_lead h3 {
      width: 42%;
      color: #158474;
      font-size: min(2.3vw, 30px);
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #voice .cmn_lead h3 {
          width: 100%;
          font-size: min(5.1vw, 30px); } }
    #voice .cmn_lead p {
      width: 52%;
      line-height: 2; }
      @media screen and (max-width: 768px) {
        #voice .cmn_lead p {
          margin: 2.5em 0 0 0;
          width: 100%; } }
  #voice .voice_list {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 1em 0 0 0; }
  #voice .voice_box {
    width: 48%;
    margin: 4em 0 0 0; }
    @media screen and (max-width: 768px) {
      #voice .voice_box {
        margin: 2.5em 0 0 0; } }
    #voice .voice_box dl {
      width: 100%;
      background: linear-gradient(to right, #27a676 0%, #128e4e 100%);
      color: #fff; }
      #voice .voice_box dl dt {
        padding: 0.7em 0.9em 0 0.9em;
        font-size: min(1.9vw, 25px);
        font-weight: 700; }
        @media screen and (max-width: 768px) {
          #voice .voice_box dl dt {
            padding: 0.5em 0.9em 0 0.9em;
            font-size: min(3.3vw, 20px); } }
      #voice .voice_box dl dd {
        padding: 0 1.4em 1.3em 1.4em; }
        @media screen and (max-width: 768px) {
          #voice .voice_box dl dd {
            padding: 0 1.4em 0.8em 1.4em;
            font-size: min(2.6vw, 14px); } }
    #voice .voice_box p {
      margin: 1em 0 0 0;
      color: #158474;
      font-size: min(1.4vw, 18px);
      line-height: 2; }
      @media screen and (max-width: 768px) {
        #voice .voice_box p {
          font-size: min(2.6vw, 14px); } }

/*********************************
 *
 * COMPANY
 *
 *********************************/
#company {
  padding: 2em 0 9em 0;
  background-color: #eaf9f1; }
  @media screen and (max-width: 768px) {
    #company {
      padding: 1em 0 5em 0; } }
  #company .h2_box {
    background: url("../images/company_img01.jpg") center top no-repeat;
    background-size: cover; }
    @media screen and (max-width: 768px) {
      #company .h2_box {
        background: url("../images/company_img01-sp.jpg") center top no-repeat;
        background-size: cover; } }
  #company .h2_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 5em 0 4em 0;
    color: #fff; }
    @media screen and (max-width: 768px) {
      #company .h2_inner {
        padding: 4em 0 3em 0; } }
    #company .h2_inner span {
      font-family: "Nothing You Could Do", cursive;
      font-size: min(6.2vw, 80px); }
      @media screen and (max-width: 768px) {
        #company .h2_inner span {
          font-size: min(8vw, 50px); } }
    #company .h2_inner h2 {
      font-size: min(2vw, 26px); }
      @media screen and (max-width: 768px) {
        #company .h2_inner h2 {
          font-size: min(3.3vw, 18px); } }
  #company .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #company .lead {
    padding: 2.5em 0;
    color: #158474;
    font-size: min(2.3vw, 30px);
    font-weight: 700;
    text-align: center; }
    @media screen and (max-width: 768px) {
      #company .lead {
        font-size: min(4vw, 25px); } }
  #company .flex_box {
    display: flex;
    justify-content: space-between; }
  #company .flex_l {
    width: 20%;
    margin: 5em 0 0 0; }
    @media screen and (max-width: 768px) {
      #company .flex_l {
        width: 30%;
        margin: 5em 0 0 0; } }
    #company .flex_l p {
      margin: 1em 0 0 0;
      color: #158474;
      font-size: min(1.4vw, 18px);
      font-weight: 700;
      text-align: right; }
      @media screen and (max-width: 768px) {
        #company .flex_l p {
          font-size: min(2.6vw, 14px); } }
  #company .flex_r {
    width: 74%; }
    @media screen and (max-width: 768px) {
      #company .flex_r {
        width: 64%; } }
    #company .flex_r .h3_box {
      position: relative; }
      #company .flex_r .h3_box span {
        margin: 0 0 0 -27%;
        color: rgba(52, 198, 118, 0.3);
        font-family: "Nothing You Could Do", cursive;
        font-size: min(9.3vw, 120px); }
        @media screen and (max-width: 768px) {
          #company .flex_r .h3_box span {
            font-size: min(11.5vw, 80px); } }
    #company .flex_r h3 {
      margin: -1em 0 0 0;
      color: #158474;
      font-size: min(2vw, 26px);
      font-weight: 700;
      text-align: right;
      line-height: 1.6; }
      @media screen and (max-width: 768px) {
        #company .flex_r h3 {
          margin: 0;
          font-size: min(4vw, 25px); } }
    #company .flex_r p {
      margin: 3em 0 0 0;
      line-height: 2.4; }
      @media screen and (max-width: 768px) {
        #company .flex_r p {
          margin: 1.2em 0 0 0;
          font-size: min(2.6vw, 14px); } }
  #company h3.company_ttl {
    margin: 5em 0 0 0;
    color: #158474;
    font-size: min(1.7vw, 22px);
    font-weight: 700; }
    @media screen and (max-width: 768px) {
      #company h3.company_ttl {
        font-size: min(4.5vw, 26px); } }
    #company h3.company_ttl span {
      margin: 0 1em 0 0;
      color: #000;
      font-family: "Nothing You Could Do", cursive;
      font-size: min(4.1vw, 58px);
      font-weight: 500; }
      @media screen and (max-width: 768px) {
        #company h3.company_ttl span {
          margin: 0 0.5em 0 0;
          font-size: min(8vw, 50px); } }
  #company table {
    width: 100%;
    margin: 3em auto 0 auto;
    font-size: min(1.4vw, 18px); }
    @media screen and (max-width: 768px) {
      #company table {
        margin: 2em auto 0 auto;
        font-size: min(2.6vw, 14px); } }
    #company table th, #company table td {
      padding: 0.7em 1em;
      border-bottom: 1px solid #e5e8e9; }
      @media screen and (max-width: 768px) {
        #company table th, #company table td {
          padding: 1em 1em; } }
    #company table th {
      width: 30%;
      color: #34c676 !important;
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #company table th {
          width: 45%; } }
  #company .gmap {
    width: 100%;
    height: 480px;
    margin: 3em 0 0 0; }
    @media screen and (max-width: 768px) {
      #company .gmap {
        height: 80vw;
        min-height: 350px;
        margin: 2em 0 0 0; } }
    #company .gmap iframe {
      width: 100%;
      height: 100%; }
  #company dl.access {
    width: 80%;
    margin: 4.5em auto 0 auto; }
    @media screen and (max-width: 768px) {
      #company dl.access {
        width: 96%;
        margin: 2em auto 0 auto;
        font-size: min(2.6vw, 14px); } }
    #company dl.access dt {
      padding: 0 0 0.8em 0;
      border-bottom: 1px solid #e5e8e9;
      font-size: min(1.4vw, 18px); }
      @media screen and (max-width: 768px) {
        #company dl.access dt {
          font-size: min(3vw, 16px); } }
    #company dl.access dd {
      padding: 1em 0 0 0;
      line-height: 1.8; }

/*********************************
 *
 * NEWS
 *
 *********************************/
#news {
  padding: 9em 0 9em 0; }
  @media screen and (max-width: 768px) {
    #news {
      padding: 5em 0 6em 0; } }
  #news .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #news .h2_box {
    display: flex;
    align-items: center;
    justify-content: space-between; }
  #news h2 {
    color: #158474;
    font-size: min(1.7vw, 22px);
    font-weight: 700; }
    @media screen and (max-width: 768px) {
      #news h2 {
        font-size: min(4.5vw, 26px); } }
    #news h2 span {
      margin: 0 1em 0 0;
      color: #000;
      font-family: "Nothing You Could Do", cursive;
      font-size: min(4.1vw, 58px);
      font-weight: 500; }
      @media screen and (max-width: 768px) {
        #news h2 span {
          margin: 0 0.5em 0 0;
          font-size: min(8vw, 50px); } }
  #news .btn a {
    position: relative;
    display: block;
    background-color: #34c676;
    padding: 0.3em 4em;
    border-radius: 2em;
    color: #fff; }
    @media screen and (max-width: 768px) {
      #news .btn a {
        padding: 0.4em 3em;
        font-size: min(3vw, 16px); } }
    #news .btn a::after {
      position: absolute;
      display: block;
      content: "";
      width: 0.4em;
      height: 0.4em;
      top: calc(50% - 0.23em);
      right: 0.9em;
      border-top: 2px solid #fff;
      border-right: 2px solid #fff;
      transform: rotate(45deg); }
  #news .info_box {
    width: 74%;
    max-width: 800px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #news .info_box {
        width: 100%; } }
  #news dl {
    margin: 1.5em 0 0 0; }
    @media screen and (max-width: 768px) {
      #news dl {
        margin: 0; } }
    #news dl dt {
      padding: 1.7em 0 0 0;
      color: #34c676;
      font-weight: 700; }
    #news dl dd {
      padding: 0.3em 0 1.3em 3em;
      border-bottom: 1px solid #dbeae1;
      font-size: min(1.4vw, 18px); }
      @media screen and (max-width: 768px) {
        #news dl dd {
          padding: 0.5em 0 1.5em 1em;
          font-size: min(3vw, 16px);
          line-height: 1.6; } }
  #news iframe {
    width: 100%;
    height: 35em;
    margin: 1.5em 0 0 0;
    border: 0; }
    @media screen and (max-width: 768px) {
      #news iframe {
        margin: 0; } }

/*********************************
 *
 * CONTACT
 *
 *********************************/
#contact {
  background: url("../images/contact_img01.jpg") left top no-repeat, linear-gradient(to right, #27a676 0%, #128e4e 100%);
  background-size: 50% auto; }
  @media screen and (max-width: 768px) {
    #contact {
      background: none; } }
  #contact .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #contact .inner {
        width: 100%; } }
  #contact .flex_box {
    display: flex;
    justify-content: space-between;
    color: #fff; }
    @media screen and (max-width: 768px) {
      #contact .flex_box {
        display: block; } }
  #contact .flex_l {
    width: 45%;
    padding: 3em 0 7em 0; }
    @media screen and (max-width: 768px) {
      #contact .flex_l {
        width: 100%;
        padding: 1em 7.2%;
        background: url("../images/contact_img01-sp.jpg") center top no-repeat;
        background-size: cover; } }
    #contact .flex_l .en {
      font-family: "Nothing You Could Do", cursive;
      font-size: min(6.2vw, 80px); }
      @media screen and (max-width: 768px) {
        #contact .flex_l .en {
          font-size: min(13vw, 50px); } }
    #contact .flex_l h2 {
      margin: -0.5em 0 0 0;
      font-size: min(1.9vw, 25px);
      font-weight: 500;
      text-align: right; }
      @media screen and (max-width: 768px) {
        #contact .flex_l h2 {
          padding: 0 0 0 50%;
          font-size: min(3.3vw, 18px);
          line-height: 1.6;
          text-align: left; } }
  #contact .flex_r {
    width: 45%;
    padding: 0 0 7em 0; }
    @media screen and (max-width: 768px) {
      #contact .flex_r {
        width: 100%;
        padding: 2em 15% 6em 15%;
        background: linear-gradient(to right, #27a676 0%, #128e4e 100%); } }
    #contact .flex_r .ttl {
      margin: 3em 0 0 0;
      font-size: min(1.7vw, 22px);
      font-weight: 500; }
      @media screen and (max-width: 768px) {
        #contact .flex_r .ttl {
          margin: 2em 0 0 0;
          font-size: min(3.2vw, 18px); } }
    #contact .flex_r dl + .ttl {
      margin: 2em 0 0 0; }
    #contact .flex_r dl {
      display: flex;
      align-items: center;
      margin: 0.8em 0 0 0;
      padding: 1em 1.2em;
      border: 1px solid #fff; }
      #contact .flex_r dl dt {
        width: 4.2vw;
        max-width: 60px; }
        @media screen and (max-width: 768px) {
          #contact .flex_r dl dt {
            width: 36px; } }
      #contact .flex_r dl dd {
        flex: 1;
        padding: 0 0 0 1.3em; }
        #contact .flex_r dl dd span {
          font-size: min(2.4vw, 35px);
          font-weight: 700; }
          @media screen and (max-width: 768px) {
            #contact .flex_r dl dd span {
              font-size: min(5vw, 20px); } }
      #contact .flex_r dl a {
        color: #fff; }
    #contact .flex_r .btn a {
      position: relative;
      display: block;
      padding: 0.3em 0;
      background: linear-gradient(to right, #e9ff64 0%, #e9ff64 100%);
      border-radius: 2em;
      color: #34c676;
      font-size: min(1.65vw, 20px);
      font-weight: 700;
      text-align: center; }
      @media screen and (max-width: 768px) {
        #contact .flex_r .btn a {
          font-size: min(3.2vw, 18px); } }
      #contact .flex_r .btn a::after {
        position: absolute;
        display: block;
        content: "";
        width: 0.4em;
        height: 0.4em;
        top: calc(50% - 0.23em);
        right: 0.9em;
        border-top: 2px solid #34c676;
        border-right: 2px solid #34c676;
        transform: rotate(45deg); }
    #contact .flex_r .name {
      margin: 3em 0 0 0;
      font-size: min(1.9vw, 25px);
      text-align: center; }
      @media screen and (max-width: 768px) {
        #contact .flex_r .name {
          margin: 2.5em 0 0 0;
          font-size: min(4vw, 22px); } }
    #contact .flex_r .address {
      margin: 0.6em 0 0 0;
      font-size: min(1vw, 14px);
      text-align: center; }
      @media screen and (max-width: 768px) {
        #contact .flex_r .address {
          font-size: min(2.6vw, 14px); } }

/*********************************
 *
 * PAGETOP
 *
 *********************************/
#pagetop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 4.2vw;
  max-width: 60px; }
  @media screen and (max-width: 768px) {
    #pagetop {
      width: 36px;
      bottom: 4em;
      right: calc(50% - 18px); } }

/*********************************
 *
 * FOOTER
 *
 *********************************/
footer {
  padding: 1.2em 0;
  background-color: #158474;
  color: #fff;
  font-size: min(1vw, 14px);
  text-align: center; }
  @media screen and (max-width: 768px) {
    footer {
      font-size: min(2.4vw, 12px);
      font-weight: 300; } }

/*********************************
 *
 * FORM
 *
 *********************************/
#form {
  padding: 0 0 9em 0; }
  @media screen and (max-width: 768px) {
    #form {
      padding: 0 0 5em 0; } }
  #form .h2_box {
    background: #27a676; }
  #form .h2_inner {
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto;
    background: url("../images/service_img01.jpg") right top no-repeat;
    background-size: auto 100%;
    color: #fff; }
    @media screen and (max-width: 768px) {
      #form .h2_inner {
        width: 100%; } }
    #form .h2_inner .h2_bg {
      position: relative;
      width: 45%;
      padding: 4em 0 3em 2em;
      background: linear-gradient(to right, #27a676 0%, #128e4e 100%);
      line-height: 1; }
      @media screen and (max-width: 768px) {
        #form .h2_inner .h2_bg {
          padding: 3em 0 2em 1em; } }
      #form .h2_inner .h2_bg::after {
        position: absolute;
        display: block;
        content: "";
        width: 20%;
        height: 100%;
        top: 0;
        right: -20%;
        background: #128e4e;
        clip-path: polygon(0 0, 0% 100%, 100% 100%); }
    #form .h2_inner span {
      font-family: "Nothing You Could Do", cursive;
      font-size: min(6.2vw, 80px); }
      @media screen and (max-width: 768px) {
        #form .h2_inner span {
          font-size: min(8vw, 50px); } }
    #form .h2_inner h2 {
      font-size: min(2vw, 26px);
      text-align: right; }
      @media screen and (max-width: 768px) {
        #form .h2_inner h2 {
          font-size: min(3.3vw, 18px);
          line-height: 1.6; } }
  #form .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #form .lead {
    margin: 4em 0 0 0; }
  #form iframe {
    width: 100%;
    height: 15em;
    margin: 2em 0 0 0;
    border: 1px solid #dedede; }

/*********************************
 *
 * POLICY
 *
 *********************************/
#policy {
  padding: 1em; }
  #policy h1 {
    padding: 0.4em 0;
    background: #158474;
    color: #fff;
    font-size: 110%;
    font-weight: 700;
    text-align: center; }
  #policy h2 {
    margin: 2em 0 0 0;
    font-size: min(1.4vw, 16px);
    font-weight: 700; }
    @media screen and (max-width: 768px) {
      #policy h2 {
        font-size: min(3.6vw, 16px); } }
    #policy h2 span {
      display: block;
      color: #128e4e;
      font-size: min(1.4vw, 14px); }
      @media screen and (max-width: 768px) {
        #policy h2 span {
          font-size: min(3vw, 14px); } }
  #policy p {
    margin: 0.5em 0 0 0;
    font-size: min(1.2vw, 14px);
    line-height: 1.8; }
    @media screen and (max-width: 768px) {
      #policy p {
        font-size: min(3vw, 14px); } }
