@import url("https://fonts.googleapis.com/css2?family=M+PLUS+Rounded+1c:wght@100;300;400;500;700;800;900&family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200;300;400;500;600;700;900&display=swap");
/*********************************
 *
 * COMMON
 *
 *********************************/
body {
  color: #444;
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(1.3vw, 16px);
  font-weight: 400; }
  @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 */
strong {
  font-weight: 900; }

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

/* fadeIn */
.fadeIn,
.fadeIn_dl400,
.fadeIn_dl600,
.fadeIn_dl800,
.fadeIn_dl1200 {
  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; }

@-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.5s;
  animation-fill-mode: forwards;
  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; }

/* fadeLeft */
.fadeLeft {
  animation-name: fadeLeftAnime;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
  transition-timing-function: ease-in;
  animation-delay: 0.3s;
  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; }

/* mv */
#mv.fadeIn ul span {
  opacity: 0;
  animation: fadeInAnime 1s forwards; }

/* company */
#company .flex_box .flex_l,
#company .flex_box .flex_r {
  opacity: 0; }
#company .fadeLeft + .lead span {
  opacity: 0;
  animation: fadeInAnime 1s forwards; }

/*********************************
 *
 * MV
 *
 *********************************/
#mv {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  opacity: 0; }
  #mv .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #mv .inner {
        display: flex;
        justify-content: space-between;
        width: 100%; } }
  #mv .img {
    text-align: right; }
    @media screen and (max-width: 768px) {
      #mv .img {
        width: 66%; } }
    #mv .img img {
      width: 79%; }
      @media screen and (max-width: 768px) {
        #mv .img img {
          width: 100%; } }
  #mv .mv_box {
    position: absolute;
    width: 30%;
    top: 0;
    left: -9%; }
    @media screen and (max-width: 768px) {
      #mv .mv_box {
        position: relative;
        width: 34%;
        left: 0; } }
  #mv h1 {
    display: flex;
    justify-content: center;
    margin: 3em 0 0 0;
    color: #00587a;
    font-size: min(1.9vw, 25px);
    font-weight: 800; }
    @media screen and (max-width: 768px) {
      #mv h1 {
        font-size: min(3.3vw, 20px); } }
  #mv p {
    display: flex;
    align-items: center;
    width: 100%;
    margin: 4em 0 0 0;
    color: #00587a;
    font-family: "Noto Serif JP", serif;
    font-size: min(1.5vw, 20px);
    line-height: 2;
    writing-mode: vertical-rl; }
    @media screen and (max-width: 768px) {
      #mv p {
        margin: 3em 0 0 0;
        font-size: min(3.8vw, 20px); } }
  #mv ul {
    display: flex;
    justify-content: center;
    flex-direction: row-reverse;
    width: 100%;
    margin: 4em 0 0 0;
    color: #00587a;
    font-family: "Noto Serif JP", serif;
    font-size: min(1.5vw, 20px);
    line-height: 2; }
    @media screen and (max-width: 768px) {
      #mv ul {
        margin: 3em 0 0 0;
        font-size: min(3.8vw, 20px); } }
    #mv ul li {
      width: 1em;
      margin: 0 0.5em;
      writing-mode: vertical-rl; }

/*********************************
 *
 * FIXNAV
 *
 *********************************/
#fix_nav {
  position: fixed;
  width: 100%;
  max-width: none;
  height: 54px;
  top: 0;
  left: 0;
  z-index: 30; }
  #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 {
      width: 40px;
      height: 40px;
      margin: 0 8px 0 0; }
    #fix_nav ul li.nav_btn {
      position: relative;
      width: 40px;
      height: 40px;
      background-color: #00587a;
      border-radius: 50%;
      cursor: pointer; }
      #fix_nav ul li.nav_btn span {
        position: absolute;
        width: 60%;
        height: 2px;
        left: 20%;
        background-color: #fff;
        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 {
  width: 7.2vw;
  max-width: 100px;
  top: 0;
  z-index: 20; }
  @media screen and (min-width: 769px) {
    nav {
      position: fixed;
      left: calc(50% + 540px); } }
  @media screen and (min-width: 769px) and (max-width: 1279px) {
    nav {
      position: fixed;
      left: calc(100% - 7.2vw); } }
  @media screen and (max-width: 768px) {
    nav {
      position: fixed;
      display: none;
      overflow-y: auto;
      width: 220px;
      max-width: none;
      padding: 0 0 3em 0;
      top: 0;
      right: 0;
      background: #f2f5f7;
      border-radius: 0 0 0 3em; } }
  nav ul {
    display: flex;
    flex-direction: row;
    width: 1.5em;
    margin: 0 auto;
    font-family: "Noto Serif JP", serif; }
    @media screen and (min-width: 769px) {
      nav ul {
        writing-mode: vertical-rl; } }
    @media screen and (max-width: 768px) {
      nav ul {
        display: block;
        width: 80%;
        margin: 54px auto 0 auto;
        font-size: min(3.6vw, 18px); } }
    nav ul li {
      margin: 1.5em 0 0 0; }
      @media screen and (max-width: 768px) {
        nav ul li {
          margin: 0;
          padding: 1.2em 0;
          border-bottom: 1px solid #e2e5e7; }
          nav ul li:last-child {
            border: 0; } }
    nav ul a {
      color: #00587a; }
      @media screen and (min-width: 769px) {
        nav ul a.active {
          padding: 0.5em 0;
          background-color: #000;
          border-radius: 3px;
          color: #fff;
          font-weight: 300; } }
  nav .btn {
    width: 4.2vw;
    max-width: 60px;
    margin: 3.5em auto 0 auto; }

/*********************************
 *
 * INFO
 *
 *********************************/
#info {
  margin: 8em 0 0 0;
  background: linear-gradient(to right, #f2f5f7 0%, #f2f5f7 50%, #fff 50%, #fff 100%); }
  @media screen and (max-width: 768px) {
    #info {
      margin: 3em 0 0 0; } }
  #info.low {
    margin: 0; }
    @media screen and (max-width: 768px) {
      #info.low {
        margin: 0; } }
    #info.low h3.info_ttl,
    #info.low h2 {
      color: #00587a;
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 26px);
      font-weight: 700;
      line-height: 1.7; }
      @media screen and (max-width: 768px) {
        #info.low h3.info_ttl,
        #info.low h2 {
          font-size: min(4.7vw, 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 #f2f5f7; }
        @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: #00587a;
      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;
    padding: 7em 0 9em 0;
    background-color: #f2f5f7;
    border-radius: 0 0 11em 0; }
    @media screen and (max-width: 768px) {
      #info .inner {
        padding: 5em 0 7em 0;
        border-radius: 0 0 6em 0; } }
    #info .inner.detail {
      padding: 5em 0 7em 0; }
      @media screen and (max-width: 768px) {
        #info .inner.detail {
          padding: 3em 0 5em 0; } }
  #info h2 {
    color: #00587a;
    font-family: "Noto Serif JP", serif;
    font-size: min(1.6vw, 20px);
    font-weight: 500; }
    @media screen and (max-width: 768px) {
      #info h2 {
        font-size: min(3.6vw, 20px); } }
    #info h2 span {
      margin: 0 0.6em 0 0;
      color: #00a4ff;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(4.5vw, 60px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #info h2 span {
          margin: 0 0.5em 0 0;
          font-size: min(7.6vw, 50px); } }
  #info .info_box {
    width: 74%;
    max-width: 800px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #info .info_box {
        width: 90%;
        margin: 0; } }
  #info dl {
    margin: 1.5em 0 0 0; }
    #info dl dt {
      padding: 1.5em 0 0 0;
      color: #00587a;
      font-family: "Noto Serif JP", serif;
      font-size: min(1.3vw, 17px);
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #info dl dt {
          padding: 1.2em 0 0 0;
          font-size: min(2.8vw, 14px); } }
    #info dl dd {
      padding: 0.3em 0 0.9em 3em;
      border-bottom: 1px solid #e2e5e7;
      font-size: min(1.35vw, 18px);
      line-height: 1.8; }
      @media screen and (max-width: 768px) {
        #info dl dd {
          padding: 0.5em 0 1.2em 1em;
          font-size: min(2.8vw, 14px); } }
    #info dl a {
      color: #444;
      border-bottom: 1px solid #f2f5f7; }
      @media screen and (min-width: 769px) {
        #info dl a {
          transition: 0.3s; }
          #info dl a:hover {
            border-bottom: 1px solid #444; } }

/*********************************
 *
 * ABOUT
 *
 *********************************/
#about {
  position: relative;
  margin: 6em 0 0 0;
  padding: 2em 0 0 0; }
  @media screen and (max-width: 768px) {
    #about {
      margin: 4em 0 0 0;
      padding: 2em 0 0 0; } }
  #about .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #about .h2_box {
    position: relative;
    display: flex;
    align-items: flex-end; }
    @media screen and (max-width: 768px) {
      #about .h2_box {
        flex-direction: column;
        align-items: flex-start; } }
    #about .h2_box span {
      position: relative;
      padding: 0 0.5em 0.7em 0;
      color: #00a4ff;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(5.4vw, 80px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #about .h2_box span {
          margin: 0;
          font-size: min(12vw, 45px);
          line-height: 1; } }
      #about .h2_box span::after {
        position: absolute;
        display: block;
        content: "";
        width: 2.3em;
        height: 1px;
        top: 58%;
        right: -1.1em;
        background: #00a4ff;
        transform: rotate(-43deg); }
        @media screen and (max-width: 768px) {
          #about .h2_box span::after {
            display: none; } }
    #about .h2_box h2 {
      color: #00a4ff;
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 24px); }
      @media screen and (max-width: 768px) {
        #about .h2_box h2 {
          margin: -1.2em 0 0 0;
          font-size: min(4.1vw, 22px); } }
  #about .flex_box {
    display: flex;
    justify-content: space-between;
    margin: 5.5em 0 0 0; }
    @media screen and (max-width: 768px) {
      #about .flex_box {
        display: block;
        margin: 3em 0 0 0; } }
    #about .flex_box.reverse {
      flex-direction: row-reverse; }
  #about .flex_l {
    width: 60%; }
    @media screen and (max-width: 768px) {
      #about .flex_l {
        width: 108.5%; } }
  #about .flex_r {
    width: 33%; }
    @media screen and (max-width: 768px) {
      #about .flex_r {
        width: 100%; } }
    #about .flex_r p {
      margin: 3em 0 0 0;
      line-height: 2.4; }
      @media screen and (max-width: 768px) {
        #about .flex_r p {
          margin: 2em 0 0 0; } }

/*********************************
 *
 * SERVICE
 *
 *********************************/
#service {
  margin: 6em 0 0 0;
  padding: 2em 0 0 0; }
  @media screen and (max-width: 768px) {
    #service {
      margin: 4em 0 0 0;
      padding: 2em 0 0 0; } }
  #service .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #service .h2_box {
    position: relative;
    display: flex;
    align-items: flex-end; }
    @media screen and (max-width: 768px) {
      #service .h2_box {
        flex-direction: column;
        align-items: flex-start; } }
    #service .h2_box span {
      position: relative;
      padding: 0 0.5em 0.7em 0;
      color: #00a4ff;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(5.4vw, 80px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #service .h2_box span {
          margin: 0;
          font-size: min(12vw, 45px);
          line-height: 1; } }
      #service .h2_box span::after {
        position: absolute;
        display: block;
        content: "";
        width: 2.3em;
        height: 1px;
        top: 58%;
        right: -1.1em;
        background: #00a4ff;
        transform: rotate(-43deg); }
        @media screen and (max-width: 768px) {
          #service .h2_box span::after {
            display: none; } }
    #service .h2_box h2 {
      color: #00a4ff;
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 24px); }
      @media screen and (max-width: 768px) {
        #service .h2_box h2 {
          margin: -1.2em 0 0 0;
          font-size: min(4.1vw, 22px); } }
  #service .flex_box {
    display: flex;
    justify-content: space-between;
    margin: 5.5em 0 0 0; }
    @media screen and (max-width: 768px) {
      #service .flex_box {
        display: block;
        width: 117%;
        margin: 3em 0 0 -8.5%; } }
    #service .flex_box .box {
      width: 46.2%; }
      @media screen and (max-width: 768px) {
        #service .flex_box .box {
          width: 100%; } }
      #service .flex_box .box .img {
        position: relative; }
        @media screen and (max-width: 768px) {
          #service .flex_box .box .img {
            width: 100%;
            text-align: right; }
            #service .flex_box .box .img img {
              width: 82%; } }
        #service .flex_box .box .img dl {
          position: absolute;
          width: 100%;
          bottom: 0;
          color: #fff;
          text-align: center; }
          @media screen and (max-width: 768px) {
            #service .flex_box .box .img dl {
              padding: 0 0 0 18%; } }
          #service .flex_box .box .img dl dt {
            padding: 0 0 1em 0;
            font-family: "Noto Serif JP", serif;
            font-size: min(2.3vw, 28px);
            font-weight: 700;
            text-shadow: 0 0 0.15em #00587a, 0 0 0.15em #00587a, 0 0 0.15em #00587a; }
            @media screen and (max-width: 768px) {
              #service .flex_box .box .img dl dt {
                font-size: min(5vw, 25px); } }
          #service .flex_box .box .img dl dd {
            padding: 1.5em 0 2.5em 0;
            font-size: min(1.45vw, 20px);
            font-weight: 500;
            text-shadow: 0 0 0.15em #00587a, 0 0 0.15em #00587a, 0 0 0.15em #00587a;
            line-height: 2; }
            @media screen and (max-width: 768px) {
              #service .flex_box .box .img dl dd {
                padding: 1em 0 2em 0;
                font-size: min(3.2vw, 16px); } }
      #service .flex_box .box p {
        margin: 1.8em 0 0 0;
        padding: 0 0 0 10%;
        line-height: 2.2; }
        @media screen and (max-width: 768px) {
          #service .flex_box .box p {
            width: 100%;
            margin: 1em auto 0 auto;
            padding: 0 5% 0 23%; } }
      @media screen and (max-width: 768px) {
        #service .flex_box .box:nth-child(even) {
          margin: 5em 0 0 0; } }
      @media screen and (max-width: 768px) {
        #service .flex_box .box:nth-child(even) dl {
          padding: 0 18% 0 0; } }
      #service .flex_box .box:nth-child(even) p {
        padding: 0 10% 0 0; }
        @media screen and (max-width: 768px) {
          #service .flex_box .box:nth-child(even) p {
            padding: 0 23% 0 5%; } }
      @media screen and (max-width: 768px) {
        #service .flex_box .box:nth-child(even) .img {
          text-align: left; } }
  #service ul.cmn_clm2 {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 90.8%;
    margin: 0 auto;
    padding: 1em 0 0 0; }
    @media screen and (max-width: 768px) {
      #service ul.cmn_clm2 {
        width: 100%;
        margin: 1em auto 0 auto;
        padding: 0 5% 0 23%; } }
    #service ul.cmn_clm2 li {
      width: 46%;
      margin: 1.5em 0 0 0;
      background-color: #edf2f4;
      border-radius: 0 0 3.5em 0; }
      @media screen and (max-width: 768px) {
        #service ul.cmn_clm2 li {
          width: 100%;
          border-radius: 0 0 2.5em 0; } }
      #service ul.cmn_clm2 li:nth-child(4n+1) {
        border-radius: 3.5em 0 0 0; }
        @media screen and (max-width: 768px) {
          #service ul.cmn_clm2 li:nth-child(4n+1) {
            border-radius: 2.5em 0 0 0; } }
      #service ul.cmn_clm2 li:nth-child(4n+2) {
        border-radius: 0 3.5em 0 0; }
        @media screen and (max-width: 768px) {
          #service ul.cmn_clm2 li:nth-child(4n+2) {
            border-radius: 0 0 0 2.5em; } }
      #service ul.cmn_clm2 li:nth-child(4n+3) {
        border-radius: 0 0 0 3.5em; }
    #service ul.cmn_clm2 .ttl {
      padding: 1.7em 0;
      color: #00587a;
      font-family: "Noto Serif JP", serif;
      font-size: min(1.9vw, 22px);
      font-weight: 700;
      text-align: center; }
      @media screen and (max-width: 768px) {
        #service ul.cmn_clm2 .ttl {
          padding: 0.3em 0 1em 0;
          font-size: min(4vw, 20px); } }
    #service ul.cmn_clm2 .note {
      padding: 2em 3.5em;
      line-height: 1.8; }
      @media screen and (max-width: 768px) {
        #service ul.cmn_clm2 .note {
          padding: 1em 2em 2em 2em !important; } }
    #service ul.cmn_clm2 img {
      width: 100% !important; }
    @media screen and (max-width: 768px) {
      #service ul.cmn_clm2.reverse {
        padding: 0 23% 0 5%; } }

/*********************************
 *
 * STRENGTH
 *
 *********************************/
#strength {
  margin: 8em 0 0 0;
  background: linear-gradient(to right, #00587a 0%, #00587a 50%, #fff 50%, #fff 100%);
  color: #fff; }
  @media screen and (max-width: 768px) {
    #strength {
      margin: 8em 0 0 0; } }
  #strength .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 7em 0 8em 0;
    background-color: #00587a;
    border-radius: 0 11em 0 0; }
    @media screen and (max-width: 768px) {
      #strength .inner {
        padding: 7em 0 6em 0;
        border-radius: 0 6em 0 0; } }
  #strength .h2_box {
    position: relative;
    display: flex;
    align-items: flex-end; }
    @media screen and (max-width: 768px) {
      #strength .h2_box {
        flex-direction: column;
        align-items: flex-start; } }
    #strength .h2_box span {
      position: relative;
      padding: 0 0.5em 0.7em 0;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(5.4vw, 80px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #strength .h2_box span {
          margin: 0;
          font-size: min(12vw, 45px);
          line-height: 1; } }
      #strength .h2_box span::after {
        position: absolute;
        display: block;
        content: "";
        width: 2.3em;
        height: 1px;
        top: 58%;
        right: -1.1em;
        background: #fff;
        transform: rotate(-43deg); }
        @media screen and (max-width: 768px) {
          #strength .h2_box span::after {
            display: none; } }
    #strength .h2_box h2 {
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 24px); }
      @media screen and (max-width: 768px) {
        #strength .h2_box h2 {
          margin: -1.2em 0 0 0;
          font-size: min(4.1vw, 22px); } }
  #strength h3 {
    margin: 3em 0 0 0;
    font-family: "Noto Serif JP", serif;
    font-size: min(2vw, 26px);
    font-weight: 500;
    line-height: 1.7; }
    @media screen and (max-width: 768px) {
      #strength h3 {
        margin: 2.5em 0 0 0;
        font-size: min(4.5vw, 22px); } }
  #strength p.lead {
    width: 91%;
    margin: 4em 0 0 0;
    font-size: min(1.2vw, 15px);
    line-height: 2.4; }
    @media screen and (max-width: 768px) {
      #strength p.lead {
        font-size: min(2.9vw, 14px); } }
  #strength .flex_box {
    display: flex;
    justify-content: space-between;
    width: 91%; }
    @media screen and (max-width: 768px) {
      #strength .flex_box {
        flex-wrap: wrap;
        padding: 4em 0 0 0; } }
  #strength .strength_box {
    position: relative;
    width: 31%;
    margin: 2em 0 0 0;
    padding: 0 0 3em 0;
    background: linear-gradient(to bottom, transparent 0%, transparent 50%, #28769e 50%, #28769e 100%);
    border-radius: 0 0 0 3em; }
    @media screen and (max-width: 768px) {
      #strength .strength_box {
        width: 90%;
        margin: 1em 0 0 0; }
        #strength .strength_box:nth-child(odd) {
          margin: 1em 0 0 10%; } }
    #strength .strength_box .num {
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(8vw, 100px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #strength .strength_box .num {
          font-size: min(12vw, 45px); } }
    #strength .strength_box .bg {
      background: linear-gradient(to bottom, #28769e 0%, #28769e 80%, transparent 80%, transparent 100%); }
    #strength .strength_box dl {
      display: flex;
      justify-content: space-between; }
      #strength .strength_box dl dt {
        display: flex;
        align-items: center;
        width: 29%;
        padding: 1.5em 0 0 0;
        font-family: "Noto Serif JP", serif;
        font-size: min(1.7vw, 20px);
        writing-mode: vertical-rl; }
        @media screen and (max-width: 768px) {
          #strength .strength_box dl dt {
            width: 18%;
            font-size: min(3.6vw, 18px); } }
      #strength .strength_box dl dd {
        width: 71%; }
        @media screen and (max-width: 768px) {
          #strength .strength_box dl dd {
            width: 82%; } }
        @media screen and (max-width: 768px) {
          #strength .strength_box dl dd picture {
            display: block;
            text-align: right; } }
        #strength .strength_box dl dd img {
          margin-top: -5em; }
          @media screen and (max-width: 768px) {
            #strength .strength_box dl dd img {
              width: 50%;
              margin-top: -2.5em; } }
        #strength .strength_box dl dd p {
          margin: 1.5em 0 0 0;
          padding: 0 2em 0 0;
          font-size: min(1.2vw, 15px);
          line-height: 2; }
          @media screen and (max-width: 768px) {
            #strength .strength_box dl dd p {
              font-size: min(2.8vw, 13px); } }

/*********************************
 *
 * PRICE
 *
 *********************************/
#price {
  margin: 6em 0 0 0;
  padding: 2em 0 0 0; }
  @media screen and (max-width: 768px) {
    #price {
      margin: 4em 0 0 0;
      padding: 2em 0 0 0; } }
  #price .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #price .h2_box {
    position: relative;
    display: flex;
    align-items: flex-end; }
    @media screen and (max-width: 768px) {
      #price .h2_box {
        flex-direction: column;
        align-items: flex-start; } }
    #price .h2_box span {
      position: relative;
      padding: 0 0.5em 0.7em 0;
      color: #00a4ff;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(5.4vw, 80px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #price .h2_box span {
          margin: 0;
          font-size: min(12vw, 45px);
          line-height: 1; } }
      #price .h2_box span::after {
        position: absolute;
        display: block;
        content: "";
        width: 2.3em;
        height: 1px;
        top: 58%;
        right: -1.1em;
        background: #00a4ff;
        transform: rotate(-43deg); }
        @media screen and (max-width: 768px) {
          #price .h2_box span::after {
            display: none; } }
    #price .h2_box h2 {
      color: #00a4ff;
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 24px); }
      @media screen and (max-width: 768px) {
        #price .h2_box h2 {
          margin: -1.2em 0 0 0;
          font-size: min(4.1vw, 22px); } }
  #price .flex_box {
    display: flex;
    justify-content: space-between;
    margin: 5.5em 0 0 0; }
    @media screen and (max-width: 768px) {
      #price .flex_box {
        display: block;
        margin: 3em 0 0 0; } }
    #price .flex_box.reverse {
      flex-direction: row-reverse; }
  #price .flex_l {
    width: 60%; }
    @media screen and (max-width: 768px) {
      #price .flex_l {
        width: 108.5%; } }
  #price .flex_r {
    width: 33%; }
    @media screen and (max-width: 768px) {
      #price .flex_r {
        width: 100%; } }
    #price .flex_r h3 {
      color: #00587a;
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 26px);
      font-weight: 700;
      line-height: 1.7; }
      @media screen and (max-width: 768px) {
        #price .flex_r h3 {
          margin: 2em 0 0 0;
          font-size: min(4.7vw, 26px);
          text-align: left; } }
    #price .flex_r p {
      margin: 3em 0 0 0;
      line-height: 2.4; }
      @media screen and (max-width: 768px) {
        #price .flex_r p {
          margin: 2em 0 0 0; } }
  #price .price_inner {
    width: 64%;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #price .price_inner {
        width: 85.8%; } }
    #price .price_inner .lead {
      margin: 4em 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: 4em auto 0 auto;
    padding: 0.5em 0;
    background-color: #00587a;
    border-radius: 2em;
    color: #fff;
    font-family: "Noto Serif JP", serif;
    font-size: min(2vw, 26px);
    text-align: center; }
    @media screen and (max-width: 768px) {
      #price h3.price_ttl {
        width: 100%;
        margin: 3em auto 0 auto;
        padding: 0.6em 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: #00587a; }
  #price table {
    width: 100%;
    margin: 1.2em 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: #00587a !important;
      font-weight: 700; }
  @media screen and (max-width: 768px) {
    #price .table_scroll {
      overflow-x: auto; } }

/*********************************
 *
 * VOICE
 *
 *********************************/
#voice {
  margin: 6em 0 0 0;
  padding: 2em 0 0 0; }
  @media screen and (max-width: 768px) {
    #voice {
      margin: 4em 0 0 0;
      padding: 2em 0 0 0; } }
  #voice .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #voice .h2_box {
    position: relative;
    display: flex;
    align-items: flex-end; }
    @media screen and (max-width: 768px) {
      #voice .h2_box {
        flex-direction: column;
        align-items: flex-start; } }
    #voice .h2_box span {
      position: relative;
      padding: 0 0.5em 0.7em 0;
      color: #00a4ff;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(5.4vw, 80px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #voice .h2_box span {
          margin: 0;
          font-size: min(12vw, 45px);
          line-height: 1; } }
      #voice .h2_box span::after {
        position: absolute;
        display: block;
        content: "";
        width: 2.3em;
        height: 1px;
        top: 58%;
        right: -1.1em;
        background: #00a4ff;
        transform: rotate(-43deg); }
        @media screen and (max-width: 768px) {
          #voice .h2_box span::after {
            display: none; } }
    #voice .h2_box h2 {
      color: #00a4ff;
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 24px); }
      @media screen and (max-width: 768px) {
        #voice .h2_box h2 {
          margin: -1.2em 0 0 0;
          font-size: min(4.1vw, 22px); } }
  #voice .flex_box {
    display: flex;
    justify-content: space-between;
    margin: 5.5em 0 0 0; }
    @media screen and (max-width: 768px) {
      #voice .flex_box {
        display: block;
        margin: 3em 0 0 0; } }
    #voice .flex_box.reverse {
      flex-direction: row-reverse; }
  #voice .flex_l {
    width: 60%; }
    @media screen and (max-width: 768px) {
      #voice .flex_l {
        width: 108.5%; } }
  #voice .flex_r {
    width: 33%; }
    @media screen and (max-width: 768px) {
      #voice .flex_r {
        width: 100%; } }
    #voice .flex_r h3 {
      color: #00587a;
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 26px);
      font-weight: 700;
      line-height: 1.7; }
      @media screen and (max-width: 768px) {
        #voice .flex_r h3 {
          margin: 2em 0 0 0;
          font-size: min(4.7vw, 26px);
          text-align: left; } }
    #voice .flex_r p {
      margin: 3em 0 0 0;
      line-height: 2.4; }
      @media screen and (max-width: 768px) {
        #voice .flex_r p {
          margin: 2em 0 0 0; } }
  #voice .voice_list {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 1em 0 0 0; }
  #voice .voice_box {
    width: 47%;
    margin: 4em 0 0 0; }
    @media screen and (max-width: 768px) {
      #voice .voice_box {
        margin: 2.5em 0 0 0; } }
    #voice .voice_box dl {
      color: #00587a;
      font-family: "Noto Serif JP", serif; }
      #voice .voice_box dl dt {
        padding: 0.7em 0.9em 0 0;
        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;
            font-size: min(3.3vw, 20px); } }
      #voice .voice_box dl dd {
        padding: 0.3em 1.4em 1em 0; }
        @media screen and (max-width: 768px) {
          #voice .voice_box dl dd {
            padding: 0 1.4em 0.8em 0;
            font-size: min(2.6vw, 14px); } }
    #voice .voice_box p {
      width: 80%;
      margin: 1.6em auto 0 auto;
      font-size: min(1.3vw, 17px);
      line-height: 2.2; }
      @media screen and (max-width: 768px) {
        #voice .voice_box p {
          width: 90%;
          font-size: min(2.6vw, 14px); } }

/*********************************
 *
 * COMPANY
 *
 *********************************/
#company {
  margin: 8em 0 0 0;
  background: linear-gradient(to right, #f2f5f7 0%, #f2f5f7 50%, #fff 50%, #fff 100%); }
  @media screen and (max-width: 768px) {
    #company {
      margin: 8em 0 0 0; } }
  #company .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 7em 0 7em 0;
    background-color: #f2f5f7;
    border-radius: 0 11em 0 0; }
    @media screen and (max-width: 768px) {
      #company .inner {
        padding: 7em 0 6em 0;
        border-radius: 0 6em 0 0; } }
  #company .h2_box {
    position: relative;
    display: flex;
    align-items: flex-end;
    color: #00a4ff; }
    @media screen and (max-width: 768px) {
      #company .h2_box {
        flex-direction: column;
        align-items: flex-start; } }
    #company .h2_box span {
      position: relative;
      padding: 0 0.5em 0.7em 0;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(5.4vw, 80px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #company .h2_box span {
          margin: 0;
          font-size: min(12vw, 45px);
          line-height: 1; } }
      #company .h2_box span::after {
        position: absolute;
        display: block;
        content: "";
        width: 2.3em;
        height: 1px;
        top: 58%;
        right: -1.1em;
        background: #00a4ff;
        transform: rotate(-43deg); }
        @media screen and (max-width: 768px) {
          #company .h2_box span::after {
            display: none; } }
    #company .h2_box h2 {
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 24px); }
      @media screen and (max-width: 768px) {
        #company .h2_box h2 {
          margin: -1.2em 0 0 0;
          font-size: min(4.1vw, 22px); } }
  #company .lead {
    padding: 3em 0 0 0;
    color: #00587a;
    font-family: "Noto Serif JP", serif;
    font-size: min(2.3vw, 30px);
    font-weight: 700;
    text-align: center; }
    @media screen and (max-width: 768px) {
      #company .lead {
        padding: 2em 0 0 0;
        font-size: min(4.5vw, 22px); } }
  #company .flex_box {
    display: flex;
    justify-content: space-between;
    width: 93%;
    margin: 3.5em 0 0 0; }
    @media screen and (max-width: 768px) {
      #company .flex_box {
        flex-wrap: wrap;
        margin: 0; } }
  #company .flex_l {
    width: 54%; }
    @media screen and (max-width: 768px) {
      #company .flex_l {
        width: 100%;
        margin: 1em 0 0 0;
        text-align: right; }
        #company .flex_l img {
          width: 83%; } }
    #company .flex_l p {
      margin: 1em 0 0 0;
      color: #00587a;
      font-size: min(1.4vw, 18px);
      text-align: right; }
      @media screen and (max-width: 768px) {
        #company .flex_l p {
          font-size: min(2.8vw, 15px); } }
  #company .flex_r {
    width: 38%; }
    @media screen and (max-width: 768px) {
      #company .flex_r {
        width: 100%; } }
    #company .flex_r p {
      line-height: 2.2; }
      @media screen and (max-width: 768px) {
        #company .flex_r p {
          margin: 1.2em 0 0 0;
          font-size: min(2.6vw, 14px); } }
    #company .flex_r p + p {
      margin: 3em 0 0 0; }
      @media screen and (max-width: 768px) {
        #company .flex_r p + p {
          margin: 2em 0 0 0; } }
  #company h3.company_ttl {
    margin: 5em 0 0 0;
    color: #00587a;
    font-family: "Noto Serif JP", serif;
    font-size: min(1.6vw, 20px);
    font-weight: 500; }
    @media screen and (max-width: 768px) {
      #company h3.company_ttl {
        font-size: min(3.6vw, 20px); } }
    #company h3.company_ttl span {
      margin: 0 0.6em 0 0;
      color: #00a4ff;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(4.5vw, 60px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #company h3.company_ttl span {
          margin: 0 0.5em 0 0;
          font-size: min(7.6vw, 50px); } }
  #company table {
    width: 70%;
    margin: 3em 0 0 10%;
    font-size: min(1.4vw, 18px); }
    @media screen and (max-width: 768px) {
      #company table {
        width: 90%;
        margin: 1.5em 0 0 0;
        font-size: min(2.6vw, 14px); } }
    #company table th, #company table td {
      padding: 0.6em 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: 25%;
      color: #00587a !important;
      font-weight: 700; }
  #company .gmap {
    width: 92%;
    height: 480px;
    margin: 3em 0 0 0; }
    @media screen and (max-width: 768px) {
      #company .gmap {
        height: 80vw;
        min-height: 350px;
        margin: 1.5em 0 0 0; } }
    #company .gmap iframe {
      width: 100%;
      height: 100%; }
  #company dl.access {
    width: 70%;
    margin: 4.5em 0 0 10%; }
    @media screen and (max-width: 768px) {
      #company dl.access {
        width: 90%;
        margin: 2em 0 0 0;
        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 {
  margin: 6em 0 0 0;
  padding: 2em 0 0 0; }
  @media screen and (max-width: 768px) {
    #news {
      margin: 4em 0 0 0;
      padding: 2em 0 0 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: #00587a;
    font-family: "Noto Serif JP", serif;
    font-size: min(1.6vw, 20px);
    font-weight: 500; }
    @media screen and (max-width: 768px) {
      #news h2 {
        font-size: min(3.6vw, 20px); } }
    #news h2 span {
      margin: 0 0.6em 0 0;
      color: #00a4ff;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(4.5vw, 60px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #news h2 span {
          margin: 0 0.5em 0 0;
          font-size: min(7.6vw, 50px); } }
  #news .btn a {
    position: relative;
    display: block;
    background-color: #00587a;
    padding: 0.3em 4em;
    border-radius: 2em;
    color: #fff; }
    @media screen and (max-width: 768px) {
      #news .btn a {
        padding: 0.4em 3em 0.4em 2em;
        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(43deg); }
  #news .info_box {
    width: 74%;
    max-width: 800px;
    margin: 0 auto; }
    @media screen and (max-width: 768px) {
      #news .info_box {
        width: 100%;
        margin: 1.5em 0 0 0; } }
  #news dl {
    margin: 1.5em 0 0 0; }
    @media screen and (max-width: 768px) {
      #news dl {
        margin: 0; } }
    #news dl dt {
      padding: 1.5em 0 0 0;
      color: #00587a;
      font-family: "Noto Serif JP", serif;
      font-size: min(1.3vw, 17px);
      font-weight: 700; }
      @media screen and (max-width: 768px) {
        #news dl dt {
          padding: 1.2em 0 0 0;
          font-size: min(2.8vw, 14px); } }
    #news dl dd {
      padding: 0.3em 0 0.9em 3em;
      border-bottom: 1px solid #e2e5e7;
      font-size: min(1.35vw, 18px);
      line-height: 1.8; }
      @media screen and (max-width: 768px) {
        #news dl dd {
          padding: 0.5em 0 1.2em 1em;
          font-size: min(2.8vw, 14px); } }
  #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 {
  margin: 8em 0 0 0;
  background: linear-gradient(to right, #00587a 0%, #00587a 50%, #fff 50%, #fff 100%);
  color: #fff; }
  @media screen and (max-width: 768px) {
    #contact {
      margin: 6em 0 0 0; } }
  #contact .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 6em 0;
    background-color: #00587a;
    border-radius: 0 11em 0 0; }
    @media screen and (max-width: 768px) {
      #contact .inner {
        padding: 5em 0 7em 0;
        border-radius: 0 6em 0 0; } }
  #contact .h2_box {
    position: relative;
    display: flex;
    align-items: flex-end; }
    @media screen and (max-width: 768px) {
      #contact .h2_box {
        flex-direction: column;
        align-items: flex-start; } }
    #contact .h2_box span {
      position: relative;
      padding: 0 0.5em 0.7em 0;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(7vw, 90px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #contact .h2_box span {
          margin: 0;
          font-size: min(12vw, 45px);
          line-height: 1; } }
      #contact .h2_box span::after {
        position: absolute;
        display: block;
        content: "";
        width: 2.3em;
        height: 1px;
        top: 58%;
        right: -1.1em;
        background: #fff;
        transform: rotate(-43deg); }
        @media screen and (max-width: 768px) {
          #contact .h2_box span::after {
            display: none; } }
    #contact .h2_box h2 {
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 24px); }
      @media screen and (max-width: 768px) {
        #contact .h2_box h2 {
          margin: -1.2em 0 0 0;
          font-size: min(4.1vw, 22px); } }
  #contact .flex_box {
    display: flex;
    justify-content: space-between;
    width: 93%;
    margin: 5em 0 0 0;
    border-top: 1px solid #28769e; }
    @media screen and (max-width: 768px) {
      #contact .flex_box {
        display: block;
        margin: 3em 0 0 0;
        padding: 0; } }
    #contact .flex_box.reverse {
      flex-direction: row-reverse; }
  #contact .flex_l {
    width: 40%;
    padding: 0 2em; }
    @media screen and (max-width: 768px) {
      #contact .flex_l {
        width: 100%;
        padding: 0; } }
  #contact .flex_r {
    width: 53%;
    padding: 0 2em; }
    @media screen and (max-width: 768px) {
      #contact .flex_r {
        width: 100%;
        padding: 0; } }
    #contact .flex_r h3 {
      color: #00587a;
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 26px);
      font-weight: 700;
      line-height: 1.7; }
      @media screen and (max-width: 768px) {
        #contact .flex_r h3 {
          margin: 1.2em 0 0 0;
          font-size: min(3.8vw, 22px);
          text-align: center; } }
  #contact .ttl {
    margin: 2.5em 0 0 0;
    font-family: "Noto Serif JP", serif;
    font-size: min(1.7vw, 22px);
    font-weight: 500; }
    @media screen and (max-width: 768px) {
      #contact .ttl {
        margin: 4em 0 0 0;
        font-size: min(3.2vw, 18px);
        text-align: center; } }
  #contact dl {
    display: flex;
    align-items: center;
    margin: 2em 0 0 0; }
    @media screen and (max-width: 768px) {
      #contact dl {
        width: 80%;
        margin: 1.5em auto 0 auto; } }
    #contact dl dt {
      width: 4.2vw;
      max-width: 60px; }
      @media screen and (max-width: 768px) {
        #contact dl dt {
          width: 40px; } }
    #contact dl dd {
      width: calc(100% - 4.2vw);
      padding: 0 0 0 1.3em; }
      #contact dl dd span {
        font-family: "M PLUS Rounded 1c", sans-serif;
        font-size: min(2.6vw, 37px);
        font-weight: 500;
        line-height: 1.2; }
        @media screen and (max-width: 768px) {
          #contact dl dd span {
            font-size: min(5.8vw, 25px); } }
    #contact dl a {
      color: #fff; }
  #contact .btn a {
    position: relative;
    display: block;
    width: 90%;
    padding: 0.4em 0;
    background: #fff;
    border-radius: 2em;
    color: #00587a;
    font-size: min(1.7vw, 22px);
    font-weight: 700;
    text-align: center; }
    @media screen and (max-width: 768px) {
      #contact .btn a {
        font-size: min(3.2vw, 18px); } }
    #contact .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 #00587a;
      border-right: 2px solid #00587a;
      transform: rotate(45deg); }

/*********************************
 *
 * PAGETOP
 *
 *********************************/
#pagetop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 4.2vw;
  max-width: 60px;
  z-index: 30; }
  @media screen and (max-width: 768px) {
    #pagetop {
      width: 36px;
      right: 10px;
      bottom: 10px; } }

/*********************************
 *
 * PAGETOP
 *
 *********************************/
footer {
  background: linear-gradient(to right, #28769e 0%, #28769e 50%, #fff 50%, #fff 100%);
  color: #fff; }
  footer .inner {
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 1.8em 0;
    background-color: #28769e; }
  footer .flex_box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 93%; }
    @media screen and (max-width: 768px) {
      footer .flex_box {
        flex-wrap: wrap; } }
    footer .flex_box .flex_l {
      font-size: min(1vw, 14px); }
      @media screen and (max-width: 768px) {
        footer .flex_box .flex_l {
          width: 100%;
          font-size: min(2.4vw, 12px);
          text-align: center; } }
    footer .flex_box .flex_r {
      font-size: min(1vw, 14px); }
      @media screen and (max-width: 768px) {
        footer .flex_box .flex_r {
          width: 100%;
          margin: 2.5em 0 0 0;
          font-size: min(2.4vw, 12px);
          text-align: center; } }
    footer .flex_box .name {
      font-size: min(1.8vw, 22px);
      font-weight: 600; }
      @media screen and (max-width: 768px) {
        footer .flex_box .name {
          font-size: min(3.8vw, 20px); } }
    footer .flex_box .address {
      margin: 0.5em 0 0 0;
      font-size: min(1vw, 14px); }
      @media screen and (max-width: 768px) {
        footer .flex_box .address {
          font-size: min(2.4vw, 12px); } }

/*********************************
 *
 * FORM
 *
 *********************************/
#form {
  padding: 2em 0 9em 0; }
  @media screen and (max-width: 768px) {
    #form {
      padding: 2em 0 5em 0; } }
  #form .h2_box {
    position: relative;
    display: flex;
    align-items: flex-end;
    color: #00a4ff; }
    @media screen and (max-width: 768px) {
      #form .h2_box {
        flex-direction: column;
        align-items: flex-start; } }
    #form .h2_box span {
      position: relative;
      padding: 0 0.5em 0.7em 0;
      font-family: "M PLUS Rounded 1c", sans-serif;
      font-size: min(5.4vw, 80px);
      font-weight: 100; }
      @media screen and (max-width: 768px) {
        #form .h2_box span {
          margin: 0;
          font-size: min(12vw, 45px);
          line-height: 1; } }
      #form .h2_box span::after {
        position: absolute;
        display: block;
        content: "";
        width: 2.3em;
        height: 1px;
        top: 58%;
        right: -1.1em;
        background: #00a4ff;
        transform: rotate(-43deg); }
        @media screen and (max-width: 768px) {
          #form .h2_box span::after {
            display: none; } }
    #form .h2_box h2 {
      font-family: "Noto Serif JP", serif;
      font-size: min(2vw, 24px); }
      @media screen and (max-width: 768px) {
        #form .h2_box h2 {
          margin: -1.2em 0 0 0;
          font-size: min(4.1vw, 22px); } }
  #form .inner {
    position: relative;
    width: 85.8%;
    max-width: 1080px;
    margin: 0 auto; }
  #form .lead {
    margin: 4em 0 0 0;
    font-family: "Noto Serif JP", serif;
    line-height: 2 !important; }
  #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: #00587a;
    color: #fff;
    font-family: "Noto Serif JP", serif;
    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: #00587a;
      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); }
    @media screen and (max-width: 768px) {
      #policy p {
        font-size: min(3vw, 14px); } }
