@charset "UTF-8";
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 */
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@700&family=Noto+Sans+JP:wght@400;500&display=swap");
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline; }

html {
  line-height: 2; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }

q:before, q:after, blockquote:before, blockquote:after {
  content: "";
  content: none;
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block; }

*, *:before, *:after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
  word-break: break-word; }

html, body {
  font-family: "Noto Sans CJK JP", "Noto Sans JP", "Noto Serif JP", "ヒラギノ角ゴ Pro", "游ゴシック", "ヒラギノ明朝 Pro", "Oswald", "メイリオ", "游ゴシック", "Noto Serif", "Helvetica Neue", "Helvetica", "Arial", "sans-serif";
  line-height: 1.7;
  /*text-align: justify;*/
  font-size: 10px;
  /*scroll-behavior: smooth;*/
  /*-webkit-overflow-scrolling: touch;*/
  font-weight: 400; }

a {
  display: inline-block;
  color: black;
  cursor: pointer; }

a, a:hover {
  text-decoration: none; }

button {
  border: none;
  outline: none;
  box-shadow: none;
  padding: 0; }

img {
  display: block;
  width: 100%; }

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  letter-spacing: 0.1em; }

/*
p, dt, dd {
  overflow-wrap: break-word;
}
*/
body {
  margin: auto; }

small {
  font-size: 70%;
  color: grey; }

/*--------------------------responsive ---------------------*/
.clearfix::before,
.clearfix::after {
  display: block;
  content: "";
  clear: both; }

.pc {
  display: block !important; }

.sp {
  display: none !important; }

.pci {
  display: inline-block !important; }

.spi {
  display: none !important; }

.pcf {
  display: flex !important; }

.spf {
  display: none !important; }

@media screen and (max-width: 767px) {
  .sp {
    display: block !important; }

  .pc {
    display: none !important; }

  .pci {
    display: none !important; }

  .spi {
    display: inline-block !important; }

  .pcf {
    display: none !important; }

  .spf {
    display: flex !important; } }
/*--------------------------------------------------------------------------*/
/* Common
---------------------------------------------------------------------------------*/
body {
  margin: 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 400; }

p, td, label, div, ul, li, strong, input, a {
  font-size: 1.6rem;
  margin: 0;
  padding: 0; }

p, label, div, strong, input {
  display: block; }

/*
p {
  white-space: pre-line;
}
*/
.l_con,
.c_con,
.s_con {
  display: block;
  margin: auto;
  z-index: 0; }

.l_con {
  width: 100rem; }

.c_con {
  width: 120rem; }

.s_con {
  width: 100rem; }

.l_flex {
  display: flex;
  flex-wrap: wrap; }

main {
  position: relative; }

:root {
  --color1: #00A7EA;
  --color2: #6E6E6E;
  --color3: #DAAB66;
  --color4: #30BCA7;
  --color5: #FFF100;
  --color6: #696969;
  --color7: #CCDFE4;
  --color8: #EFFAFF; }

/*---------------------------textalign----------------*/
.textCenter {
  text-align: center; }

/*---------------------------img----------------*/
.img_full {
  width: 100%;
  max-height: 100%;
  object-fit: contain;
  margin: auto;
  display: block; }

.img_cover {
  width: 100%;
  object-fit: cover; }

.img_contain {
  object-fit: contain; }

.loaded,
.move {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
  -webkit-transition: 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  -o-transition: 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  transition: 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
  .loaded.active,
  .move.active {
    opacity: 1;
    transform: translate3d(0, 0px, 0); }

#header {
  background-color: #fff;
  display: flex;
  flex-wrap: wrap;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  -webkit-align-items: center;
  align-items: center;
  height: 10rem;
  padding-left: 3.5rem;
  padding-right: 11rem; }
  #header .logo_wrap a {
    display: -webkit-flex;
    display: flex;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-align-items: center;
    align-items: center; }
  #header .logo_wrap .logo {
    width: 25.4rem; }
  #header .logo_wrap .chuwa {
    width: 21.2rem; }
  #header #menu ul li {
    list-style: none;
    margin-left: 4rem;
    display: inline-block; }
    #header #menu ul li a {
      font-weight: 500;
      font-size: 1.4rem;
      letter-spacing: 0.02em;
      -webkit-transition: all 0.3s ease;
      -moz-transition: all 0.3s ease;
      -o-transition: all 0.3s ease;
      transition: all  0.3s ease; }
      #header #menu ul li a:hover {
        color: #0066B5; }

.contact {
  width: 70rem;
  margin: 0 auto;
  margin-bottom: 5.5rem;
  background-color: #D4EFF8;
  padding-top: 1.5rem;
  padding-bottom: 2rem;
  text-align: left; }
  .contact h3 {
    text-align: center;
    font-size: 2.4rem;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #3A89A5;
    padding-bottom: 2.5rem;
    line-height: 1; }
  .contact .contact_inner {
    display: flex;
    flex-wrap: wrap; }
  .contact .tel {
    background: url(../images/common/icon_tel.svg) 3rem 0 no-repeat;
    background-size: 3.6rem auto;
    padding-left: 8rem;
    width: 50%; }
  .contact .fax {
    background: url(../images/common/icon_fax.svg) 0 0 no-repeat;
    background-size: 4.4rem auto;
    padding-left: 5.8rem;
    width: 50%; }
  .contact .num {
    display: block;
    font-size: 3rem;
    line-height: 1;
    color: #3A89A5;
    font-weight: 700;
    letter-spacing: 0; }
  .contact .time {
    padding-top: 0.5rem;
    font-size: 1.4rem;
    display: block; }

#eyecatch {
  background-color: #E0F0FC;
  margin-bottom: 8rem;
  padding-top: 5rem;
  padding-bottom: 5rem; }
  #eyecatch h2 span {
    display: block;
    line-height: 1;
    text-align: center; }
  #eyecatch h2 .jp {
    color: #0066B5;
    font-size: 3.6rem;
    letter-spacing: 0.05em;
    font-weight: 700;
    padding-bottom: 1.3rem;
    position: relative; }
    #eyecatch h2 .jp:after {
      content: "";
      width: 21.2rem;
      height: 1px;
      background-color: #707070;
      position: absolute;
      bottom: 0;
      left: 50%;
      -webkit-transform: translateX(-50%);
      transform: translateX(-50%); }
  #eyecatch h2 .en {
    padding-top: 1.2rem;
    font-size: 1.6rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    color: #000000; }

.ttl {
  color: #3A89A5;
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
  position: relative; }
  .ttl:after {
    content: "";
    width: 12.5rem;
    height: 0.3rem;
    background-color: #3A89A5;
    position: absolute;
    bottom: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%); }

#footer {
  background-color: #E0F0FC; }
  #footer .footer_inner {
    width: 120rem;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    padding-top: 3rem;
    padding-bottom: 3rem; }
  #footer .footer_left .logo_wrap {
    width: 25.6rem;
    padding-bottom: 2.5rem; }
  #footer .footer_left p {
    color: #0066B5;
    font-size: 1.2rem;
    line-height: 2; }
  #footer .footer_right a {
    color: #0066B5;
    font-size: 1.6rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-align: center;
    display: block; }
  #footer small {
    background-color: #0066B5;
    display: block;
    width: 100%;
    text-align: center;
    color: #fff;
    font-size: 1.2rem;
    letter-spacing: 0.05em;
    padding: 1em 0;
    line-height: 1; }

@media screen and (max-width: 1280px) {
  html, body {
    font-size: calc(1000vw / 1280); } }
@media screen and (max-width: 767px) {
  html, body {
    font-size: calc(1000vw / 390); }

  .l_con,
  .s_con,
  .c_con {
    width: 100%;
    padding-left: 2rem;
    padding-right: 2rem; }

  body {
    position: static; }
    body.is-open {
      overflow: hidden;
      position: fixed;
      width: 100%; }

  #header {
    height: 10rem;
    padding-left: 2rem;
    padding-right: 0;
    position: relative; }
    #header .logo_wrap .logo {
      width: 25.4rem; }
    #header .logo_wrap .chuwa {
      display: none; }
    #header #menu_trigger {
      cursor: pointer;
      background: url(../images/common/menu_open.png) center center no-repeat;
      background-size: 3.2rem auto;
      width: 9.2rem;
      height: 100%; }
      #header #menu_trigger.is-open {
        background: url(../images/common/menu_close.png) center center no-repeat;
        background-size: 3.6rem auto; }
    #header #menu {
      display: none;
      background-color: #EFF7FD;
      position: absolute;
      top: 100%;
      left: 0;
      width: 100vw;
      height: calc(100vh - 10.0rem);
      z-index: 100; }
      #header #menu .menu_inner {
        padding-top: 8rem;
        padding-bottom: 4rem;
        height: 100%;
        overflow: auto;
        -webkit-overflow-scrolling: touch;
        text-align: center; }
      #header #menu ul {
        width: 27.7rem;
        margin: 0 auto;
        padding-bottom: 3rem; }
        #header #menu ul li {
          margin-left: 0;
          display: block;
          margin-bottom: 3rem; }
          #header #menu ul li:last-child {
            display: none; }
          #header #menu ul li a {
            display: block;
            font-size: 2rem;
            line-height: 1;
            text-align: center;
            padding: 2.4rem 0;
            letter-spacing: 0.05em;
            color: #fff;
            background-color: #3A89A5; }
            #header #menu ul li a:hover {
              color: #fff;
              opacity: 0.8; }
      #header #menu #menu_contact {
        margin-bottom: 0; }

  .contact {
    width: 35rem;
    margin-bottom: 9rem;
    padding-top: 2rem;
    padding-left: 2.5rem;
    padding-right: 2.5rem;
    padding-bottom: 3rem; }
    .contact h3 {
      padding-bottom: 2.0rem; }
    .contact .tel {
      background-position: 1rem 0;
      margin-bottom: 2.8rem;
      padding-left: 5.5rem;
      width: 100%; }
    .contact .fax {
      background: url(../images/common/icon_fax.svg) 0 0 no-repeat;
      background-size: 4.4rem auto;
      padding-left: 5.5rem;
      width: 100%; }

  #eyecatch {
    margin-bottom: 6rem;
    padding-top: 4rem;
    padding-bottom: 4rem; }
    #eyecatch h2 .jp {
      font-size: 2.4rem;
      padding-bottom: 1.2rem; }
      #eyecatch h2 .jp:after {
        width: 15.5rem; }
    #eyecatch h2 .en {
      padding-top: 1.2rem;
      font-size: 1.4rem; }

  .ttl {
    font-size: 2rem; }
    .ttl:after {
      width: 8.3rem;
      height: 0.2rem; }

  #footer .footer_inner {
    width: 100%;
    padding-top: 3.5rem;
    padding-bottom: 5.8rem;
    text-align: center;
    display: block; }
  #footer .footer_left {
    padding-bottom: 6.5rem; }
    #footer .footer_left .logo_wrap {
      width: 25.6rem;
      margin: 0 auto;
      padding-bottom: 3.4rem; }
    #footer .footer_left p {
      font-size: 1.2rem;
      line-height: 2; }
  #footer .footer_right img {
    width: 21.8rem;
    display: block;
    margin: 0 auto; }
  #footer small {
    font-size: 1.0rem;
    padding: 1.5rem 0; } }
