@charset "UTF-8";
:root {
  --f-notosans: "Noto Sans JP", sans-serif;
  --f-en: "遊明朝 Yumincho", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝",
      "MS PMincho", serif;
  --f-zen: "Zen Maru Gothic", serif;
  --f-oswald: "Oswald", sans-serif;
  --main-color: #2367a8;
  --clr1: #343434;
  --clr2: #4cae50;
  --clr3: #46b6e4;
  --ttl_size: 28px;
  --wrapper: 130px;
}

/*==========================================================================*/
/*//////////////////////////////////////////////////////////////////////////*/
/*//////                                                              //////*/
/*//////  Copyright (C) 2009 株式会社フリーセル All Rights Reserved.  //////*/
/*//////                                                              //////*/
/*//////////////////////////////////////////////////////////////////////////*/
/*                                                                          */
/*    base.css  --> スタイルの初期設定を行うため、変更しないで下さい。      */
/*    fonts.css --> フォントの初期設定を行うため、変更しないで下さい。      */
/*                                                                          */
/*==========================================================================*/
/*==========================================================================*/
/*                           Common-Setting                                 */
/*==========================================================================*/
body {
  background-color: #ffffff;
  -webkit-text-size-adjust: none;
  letter-spacing: 0.1em;
  color: var(--clr1);
  font-family: var(--f-notosans);
}

h1,
h2,
h3,
h4,
h5,
h6,
input,
button,
textarea,
select,
p,
blockquote,
th,
td,
pre,
address,
li,
dt,
dd {
  font-size: 100%;
  -webkit-text-size-adjust: none;
}

header,
section,
footer,
aside,
nav,
main,
article,
figure,
picture {
  display: block;
  padding: 0;
  margin: 0;
}

img {
  display: table;
  vertical-align: bottom;
  max-width: 100%;
  height: auto;
}

a:not(.tel_click) {
  color: inherit;
  font-family: inherit;
  font-weight: inherit;
  color: #64b5f7;
}
a.tel_click {
  text-decoration: none;
  color: inherit;
}

@media only screen and (min-width: 769px) {
  a:not([target*=_blank]) {
    transition: opacity 0.3s ease;
  }
  a:not([target*=_blank]):hover {
    opacity: 0.7;
  }
  a.tel_click {
    pointer-events: none;
  }
  a:not(.tel_click):hover, a:not(.tel_click):active {
    color: #64b5f7;
  }
}
a.logo:hover,
.logo a:hover,
a.ft_logo:hover,
.ft_logo a:hover,
a.tel_click:hover {
  opacity: 1 !important;
}

table {
  width: 100%;
}

iframe {
  width: 100%;
  height: 100%;
}

.captcha_box iframe {
  height: auto;
}

.link > a {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 1;
}

.flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

p {
  line-height: 2.1875;
  letter-spacing: inherit;
  word-wrap: break-word;
  word-break: break-word;
  margin-bottom: 15px;
}
p:empty {
  display: none !important;
}
p:last-child {
  margin-bottom: 0;
}

.red {
  color: #ca0a0a !important;
}

.bold {
  font-weight: bold !important;
}

.fl {
  float: left;
}

.fr {
  float: right;
}

*,
::after,
::before {
  box-sizing: border-box;
}

/*==========================================================================*/
/*                            Container                                     */
/*==========================================================================*/
html {
  overflow-x: auto !important;
}

.wrapper {
  padding-top: var(--wrapper);
  overflow: hidden;
}

.inner_max,
.inner_big,
.inner,
.inner_sm {
  margin: 0 auto;
  padding-left: 20px;
  padding-right: 20px;
}

.inner_max {
  max-width: 1480px;
}

.inner_big {
  max-width: 1320px;
}

.inner {
  max-width: 1210px;
}

.inner_sm {
  max-width: 1020px;
}

.fullWidthBreak {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                           WordPress Core                                 */
/*==========================================================================*/
.alignnone {
  margin: 5px 20px 20px 0;
}

.aligncenter,
div.aligncenter {
  display: block;
  margin: 5px auto 35px;
}

.alignright {
  float: right;
  margin: 5px 0 20px 20px;
}

.alignleft {
  float: left;
  margin: 5px 20px 20px 0;
}

a img.alignright {
  float: right;
  margin: 5px 0 20px 20px;
}
a img.alignnone {
  margin: 5px 20px 20px 0;
}
a img.alignleft {
  float: left;
  margin: 5px 20px 20px 0;
}
a img.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.wp-caption {
  background: #fff;
  border: 1px solid #f0f0f0;
  max-width: 96%;
  /* Image does not overflow the content area */
  padding: 5px 3px 10px;
  text-align: center;
}
.wp-caption.alignnone {
  margin: 5px 20px 20px 0;
}
.wp-caption.alignleft {
  margin: 5px 20px 20px 0;
}
.wp-caption.alignright {
  margin: 5px 0 20px 20px;
}
.wp-caption img {
  border: 0 none;
  height: auto;
  margin: 0;
  max-width: 98.5%;
  padding: 0;
  width: auto;
}
.wp-caption p.wp-caption-text {
  font-size: 11px;
  line-height: 17px;
  margin: 0;
  padding: 0 4px 5px;
}

/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
  /* Many screen reader and browser combinations announce broken words as they would appear visually. */
}
.screen-reader-text:focus {
  background-color: #eee;
  clip: auto !important;
  -webkit-clip-path: none;
          clip-path: none;
  color: #444;
  display: block;
  font-size: 1em;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar. */
}

/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*                              General                                     */
/*==========================================================================*/
@media only screen and (max-width: 768px) {
  .pc_only {
    display: none !important;
  }
}
@media only screen and (min-width: 769px) {
  .sp_only {
    display: none !important;
  }
}
.accBtn::before, .accBtn::after {
  transition: all 0.3s ease-in-out;
}
.accBtn.triangle, .accBtn.triangle_btt {
  position: relative;
}
.accBtn.triangle::after {
  content: "";
  position: absolute;
  right: 10px;
  top: 50%;
  width: 0;
  height: 0;
  border-radius: 20px;
  border-color: inherit;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 10px solid;
  transform: translateY(-50%);
  transition: all 0.3s ease-in-out;
}
.accBtn.triangle.rotate::after {
  transform: translateY(-50%) rotateX(180deg);
}
.accBtn.triangle_btt::after {
  content: "";
  position: relative;
  top: 0px;
  width: 0;
  height: 0;
  border-radius: 20px;
  border-color: inherit;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 10px solid;
  display: block;
  margin: 10px auto 0;
  transition: all 0.3s ease-in-out;
}
.accBtn.rotate::after {
  transform: rotateX(180deg);
}

.TabContainer .TabContent {
  position: relative;
  z-index: 2;
  overflow: hidden;
}
.TabContainer .TabContent > ul {
  transition: all 0.3s ease-in-out;
  background-color: #000;
}
.TabContainer .TabContent > ul > li {
  opacity: 0;
  z-index: -10;
  visibility: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transition: all 0.5s ease-in-out;
}
.TabContainer .TabContent > ul > li.active {
  opacity: 1;
  z-index: 1;
  visibility: visible;
}
.TabContainer .TabPager {
  display: flex;
  justify-content: space-between;
  min-width: 290px;
}
.TabContainer .TabPager li {
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  margin: 0;
  padding: 9px 20px;
  box-shadow: 2px 1px 10px rgba(0, 0, 0, 0.4);
  width: calc(33.33% - 1px);
  transition: all 0.3s ease;
  cursor: pointer;
  color: #797b7d;
}
.TabContainer .TabPager li p {
  margin: 0;
}
.TabContainer .TabPager li.active {
  background-color: #edf0f5;
  z-index: 1;
}

.rel {
  position: relative;
}

.ovh {
  overflow: hidden !important;
}

.ovs {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  /* Lets it scroll lazy */
}

.lt0 {
  letter-spacing: 0 !important;
}

figure,
picture {
  text-align: center;
  line-height: 1;
}

.fblock {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.key {
  position: relative;
  margin: 30px auto 0;
  max-width: calc(100% - 60px);
  border-radius: 30px;
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .key {
    margin: 20px auto 0;
    max-width: calc(100% - 40px);
  }
}
@media only screen and (max-width: 768px) {
  .key {
    margin: 10px auto 0;
    max-width: calc(100% - 20px);
  }
}

.gMap {
  width: 100%;
  height: 100%;
}

.txt_l {
  float: left;
  width: calc(100% - 385px);
}

.txt_r {
  float: right;
  width: calc(100% - 385px);
}

.image_alone {
  display: table;
  max-width: 500px;
  margin: 0 auto;
  border: 7px solid rgba(231, 231, 231, 0.5);
  border-radius: 11px;
  overflow: hidden;
}

.tel_click {
  text-decoration: none;
}
.tel_click span {
  display: flex;
  align-items: center;
  font-family: var(--f-en);
  font-weight: 700;
  color: var(--main-color);
  letter-spacing: 0.05em;
  font-size: 1.5em;
}
.tel_click span::before {
  content: "";
  display: block;
  margin-right: 0.3214em;
  margin-top: 0.1786em;
  width: 0.893em;
  height: 0.893em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 101' %3E%3Cpath d='M97.829,82.824 C98.198,91.823 96.073,94.826 87.308,97.205 C74.144,100.791 61.788,98.752 50.561,91.066 C33.671,79.497 19.384,65.207 7.912,48.225 C-0.287,36.096 -1.826,22.855 2.769,8.952 C4.752,2.953 8.059,0.771 14.407,0.925 C23.639,1.157 23.633,1.157 26.561,10.079 C27.869,14.063 29.100,18.078 30.561,22.007 C32.367,26.859 31.432,30.918 27.914,34.711 C22.303,40.765 22.378,40.854 26.680,47.891 C33.854,59.628 43.600,68.580 55.717,75.040 C57.758,76.123 59.178,76.250 60.774,74.416 C62.051,72.951 63.620,71.738 65.076,70.429 C68.123,67.696 71.576,66.743 75.537,68.072 C82.013,70.255 88.532,72.319 94.923,74.723 C96.087,75.162 97.048,76.900 97.511,78.240 C97.992,79.641 97.756,81.285 97.829,82.824 Z'/%3E%3C/svg%3E");
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: 100% auto;
  -webkit-mask-size: 100% auto;
  mask-position: center;
  -webkit-mask-position: center;
  background-color: var(--main-color);
}

.en {
  font-family: var(--f-en);
}

.btn a {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 4.375em;
  color: var(--clr1);
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-decoration: none;
  border: 1px solid var(--main-color);
  border-radius: 35px;
  padding-top: 0.1875em;
  font-weight: 500;
  transition: 0.3s all;
  position: relative;
}
.btn a:hover {
  opacity: 1;
  color: var(--clr1);
}
@media only screen and (min-width: 769px) {
  .btn a:hover {
    background-color: var(--main-color);
    color: #fff;
  }
  .btn a:hover::before {
    background-color: #fff;
  }
}
.btn.white a {
  background-color: #fff;
  color: var(--clr1);
}
.btn.white a::before {
  background-color: var(--main-color);
}
.btn.white a:hover {
  opacity: 1;
  color: var(--clr1);
}
@media only screen and (min-width: 769px) {
  .btn.white a:hover {
    background-color: var(--clr2);
    color: #fff;
  }
  .btn.white a:hover::before {
    background-color: #fff;
  }
}

.btn_group {
  margin: 25px auto 0;
  max-width: 300px;
  width: 100%;
}

.yt {
  max-width: 800px;
  margin: 0px auto;
}

.video-wrapper {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.video-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* Tablet
-------------------------------------------*/
@media only screen and (min-width: 769px) and (max-width: 1170px) {
  body {
    font-size: 87.5%;
  }
}
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                           Header - Footer                                */
/*==========================================================================*/
h1 {
  position: absolute;
  overflow: hidden;
  height: 1px;
  width: 1px;
  padding: 0;
  border: 0;
}

header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--wrapper);
  z-index: 20;
  background-color: var(--main-color);
}

.header_top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
  justify-content: space-between;
  margin: 0 auto;
  padding: 0 1.375em 0 3.125em;
  height: 100%;
  transition: all 0.3s ease-in-out;
}
@media only screen and (min-width: 769px) and (max-width: 1440px) {
  .header_top {
    padding: 0 20px;
  }
}

.logo {
  width: 35%;
  max-width: 585px;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}
@media only screen and (min-width: 769px) and (max-width: 1600px) {
  .logo {
    width: 25%;
  }
}

.right_head {
  width: 60%;
  max-width: 1047px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}
@media only screen and (min-width: 769px) and (max-width: 1600px) {
  .right_head {
    width: 70%;
  }
}

.pc_navi {
  width: 100%;
}
.pc_navi > ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  text-align: center;
  width: 100%;
}
.pc_navi > ul > li {
  position: relative;
}
.pc_navi > ul > li:not(:last-child)::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  width: 1px;
  height: 24px;
  background-color: rgba(255, 255, 255, 0.5);
  right: 0;
  top: calc(50% - 11px);
}
@media only screen and (min-width: 769px) and (max-width: 1600px) {
  .pc_navi > ul > li:not(:last-child)::before {
    right: -0.2em;
  }
}
.pc_navi > ul > li:nth-child(1) {
  width: 16%;
}
.pc_navi > ul > li:nth-child(2) {
  width: 18%;
}
.pc_navi > ul > li:nth-child(3) {
  width: 12%;
}
.pc_navi > ul > li:nth-child(4) {
  width: 15.5%;
}
.pc_navi > ul > li:nth-child(5) {
  width: 10.2%;
}
.pc_navi > ul > li:nth-child(6) {
  width: 13.3%;
}
.pc_navi > ul > li:nth-child(7) {
  width: 14.7%;
}
.pc_navi > ul > li::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  bottom: 0;
  right: 1.5em;
  left: 1.5em;
  background-color: #fff;
  transform: scaleX(0);
  height: 1px;
}
.pc_navi > ul > li:hover::after {
  transform: scaleX(1);
}
.pc_navi > ul > li:hover > a,
.pc_navi > ul > li:hover > p {
  opacity: 1;
  color: #fff;
}
.pc_navi > ul > li.menu-item-has-children > a::after,
.pc_navi > ul > li.menu-item-has-children > p::after {
  content: "";
  background: url(../images/shared_pc_navi_arrow.png) center no-repeat;
  background-size: 100% auto;
  width: 9px;
  height: 5px;
  position: absolute;
  bottom: 0px;
  left: calc(50% - 4.5px);
  transition: all 0.5s ease;
  /*border-color: #fff transparent transparent transparent;
  border-style: solid;
  border-width: 6px 6px 0px 6px;
  width: 0;
  height: 0;*/
}
.pc_navi > ul > li.menu-item-has-children > a:hover::after,
.pc_navi > ul > li.menu-item-has-children > p:hover::after {
  transform: translateY(5px);
}
.pc_navi > ul > li > a,
.pc_navi > ul > li > p {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  height: 40px;
  text-decoration: none;
  text-align: center;
  flex-direction: column;
  font-size: 0.9375em;
  line-height: 1;
  letter-spacing: 0.05em;
  transition: all 0.3s ease;
  color: #fff;
  opacity: 1;
}
.pc_navi > ul > li:hover a.title::after,
.pc_navi > ul > li:hover p.title::after {
  transform: translateY(5px);
}
.pc_navi > ul .subInner {
  position: absolute;
  width: 18em;
  right: 50%;
  bottom: -15px;
  padding-top: 0px;
  transform: translate(50%, 100%);
  transition: all 0.2s ease-in-out;
  opacity: 0;
  visibility: hidden;
  z-index: 1;
}
.pc_navi > ul .subInner.active {
  opacity: 1;
  visibility: visible;
}
.pc_navi > ul .subInner ul {
  background-color: black;
  padding-bottom: 10px;
}
.pc_navi > ul .subInner ul li {
  padding: 0 10px;
}
.pc_navi > ul .subInner ul li a {
  position: relative;
  display: block;
  padding: 1.2em 0.6em 1.2em 1.6em;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.7);
  transition: all 0.2s ease;
  font-size: 0.875em;
  font-weight: 500;
  color: #fff;
  text-decoration: none;
  text-align: left;
  letter-spacing: 0.05em;
}
.pc_navi > ul .subInner ul li a::before {
  content: "›";
  display: block;
  position: absolute;
  top: 50%;
  left: 0.6em;
  transform: translateY(-54%);
}

@media only screen and (min-width: 769px) {
  .pc_navi > ul .col2 .subInner {
    width: 440px;
  }
  .pc_navi > ul .col2 .subInner ul {
    display: flex;
    flex-wrap: wrap;
  }
  .pc_navi > ul .col2 .subInner ul li {
    width: 50%;
  }
  .menu_toggle .inside .ft_link {
    width: 100%;
    max-width: 900px;
    margin: auto;
    min-height: 100%;
    display: flex;
    align-items: center;
  }
  .menu_toggle .inside .ft_link .link_list {
    width: 100%;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1440px) {
  :root {
    --wrapper: 100px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .pc_navi > ul > li > a,
  .pc_navi > ul > li p {
    font-size: 1.35vw;
    letter-spacing: 0;
  }
  .pc_navi > ul > li > a .en,
  .pc_navi > ul > li p .en {
    letter-spacing: 0;
    font-size: 0.875em;
    margin-bottom: 8px;
  }
  .pc_navi > ul .subInner ul li a {
    font-size: 12px;
  }
}
.time_sheet {
  margin: 0px auto;
  max-width: 464px;
}
.time_sheet .note {
  margin-top: 15px;
  margin-left: -2px;
  line-height: 2;
  font-size: 14px;
  letter-spacing: 0.1em;
}
.time_sheet .note span {
  display: inline-block;
}
.time_sheet table {
  font-feature-settings: "palt";
}
.time_sheet table th,
.time_sheet table td {
  border-top: none;
  border-right: none;
  border-left: none;
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.1em;
  width: 9.9%;
  border-bottom: 1px solid var(--clr1);
}
.time_sheet table th:first-child,
.time_sheet table td:first-child {
  width: auto;
  padding-left: 1.9%;
}
.time_sheet table th:last-child,
.time_sheet table td:last-child {
  width: 16.05%;
  padding-left: 0.8em;
  text-align: left;
}
.time_sheet table th {
  padding: 0.6em 0.2em;
}
.time_sheet table td {
  padding: 1.35em 0.2em 1.65em;
  color: var(--main-color);
}
.time_sheet table td:first-child {
  color: #333;
}
.time_sheet table tr:nth-child(3) td {
  padding-bottom: 1.6em;
}

@media only screen and (max-width: 992px) and (min-width: 769px) {
  :root {
    --ttl_size: 22px;
    --wrapper: 80px;
  }
}
.totop {
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  position: fixed;
  z-index: 19;
  bottom: 20px;
  right: 20px;
  box-shadow: 5px 8.66px 40px 0px rgba(49, 110, 171, 0.1);
  border-radius: 50%;
}
.totop.active {
  opacity: 1;
  visibility: visible;
}
.totop .icon {
  --w: 70px;
  background-image: url(../images/totop.png), url(../images/totop_bg.png);
  background-repeat: no-repeat;
  background-size: var(--w), 100% auto;
  border: 0px;
  width: var(--w);
  height: var(--w);
  margin: 0;
  background-position: center;
  display: flex;
}

@media only screen and (min-width: 769px) {
  .totop:hover .icon {
    opacity: 0.9;
    animation-name: bounces;
  }
}
.bounce {
  animation-name: bounces;
}

.animateds {
  animation-duration: 0.5s;
  animation-fill-mode: both;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}

@keyframes bounces {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-5px);
  }
}
@keyframes fixed_banner {
  0% {
    left: 0;
    opacity: 1;
  }
  100% {
    left: -3px;
    opacity: 0.7;
  }
}
.fixed_banner {
  position: fixed;
  top: 50%;
  right: 0;
  z-index: 15;
  transition: right 0.3s ease-in-out;
  transform: translateY(-50%);
}
.fixed_banner:hover {
  right: 0;
}
@media only screen and (min-width: 769px) {
  .fixed_banner.active {
    top: 50%;
  }
}
@media only screen and (min-width: 1900px) {
  .fixed_banner {
    top: 37.45em;
  }
}
.fixed_banner > div {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  transition: all 0.3s ease;
  width: 5em;
  height: 5em;
}
.fixed_banner > div:not(.tel):hover {
  opacity: 0.7;
}
.fixed_banner a {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: block;
  z-index: 1;
}
.fixed_banner p {
  font-size: 0.8125em;
  letter-spacing: 0.05em;
  line-height: 1.2307692308;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  color: #fff;
  margin: 0;
}
.fixed_banner p::before {
  content: "";
  display: block;
  margin: 0 auto 7px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.fixed_banner .tel {
  background-color: #0d6fb8;
  padding-bottom: 1px;
}
.fixed_banner .tel p::before {
  background-image: url(../images/shared_icon_tel.png);
  width: 1.9230769231em;
  height: 1.8461538462em;
  margin-bottom: 0.4615384615em;
}
.fixed_banner .line {
  background-color: #4cae50;
}
.fixed_banner .line p::before {
  background-image: url(../images/shared_icon_line.png);
  width: 1.9230769231em;
  height: 1.8461538462em;
  position: relative;
  left: 1px;
  margin-bottom: 0.3846153846em;
}
.fixed_banner .line:hover {
  opacity: 1 !important;
}
.fixed_banner .web {
  background-color: #46b6e4;
  padding-top: 1px;
}
.fixed_banner .web p::before {
  background-image: url(../images/shared_icon_web.png);
  width: 1.9230769231em;
  height: 1.8461538462em;
  margin-bottom: 0.5384615385em;
}
.fixed_banner .web:hover {
  opacity: 1 !important;
}
.fixed_banner .contact {
  background-color: #2367a8;
  padding-bottom: 2px;
}
.fixed_banner .contact p::before {
  background-image: url(../images/shared_icon_contact.png);
  width: 1.9230769231em;
  height: 1.8461538462em;
  margin-bottom: 0.3076923077em;
}

@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .fixed_banner {
    top: 50%;
    font-size: 14px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .fixed_banner {
    top: 40%;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px), (min-width: 769px) and (max-height: 550px) {
  .fixed_banner {
    font-size: 12px;
  }
}
@media only screen and (min-width: 769px) {
  .fixed_banner > div {
    margin-left: auto;
  }
  .fixed_banner .tel {
    position: relative;
    transition: 0.3s all;
    border-radius: 10px 0 0 0;
  }
  .fixed_banner .tel span {
    border-left: 1px solid #fff;
    position: absolute;
    background-color: #0d6fb8;
    left: 100%;
    top: 0;
    bottom: 0;
    white-space: nowrap;
    color: #fff;
    font-size: 1.25em;
    padding: 0 0.4em 0;
    transition: 0.3s all;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.3s all;
  }
  .fixed_banner .tel:hover {
    transform: translateX(-10em);
  }
  .fixed_banner .contact {
    transition: 0.3s all;
    border-radius: 0 0 0 10px;
  }
  .fixed_banner .contact:hover {
    opacity: 1 !important;
    background-color: var(--main-color);
  }
}
.list_link {
  --fff: #fff;
}
.list_link .menu01 {
  width: 54.5%;
}
.list_link .menu02 {
  width: 45.5%;
}
.list_link .en {
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--fff);
  font-size: 2.25em;
  line-height: 1;
  margin-bottom: 28px;
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .list_link .en {
    letter-spacing: 0;
    font-size: 24px;
    margin-bottom: 1em;
  }
}
.list_link .ttl_small {
  font-weight: 700;
  font-size: 22px;
  letter-spacing: 0.05em;
  line-height: 1;
  margin: 11px 0 26px;
  color: var(--fff);
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .list_link .ttl_small {
    letter-spacing: 0;
    font-size: 18px;
    margin: 10px 0 20px;
  }
}
.list_link ul li:not(:last-child) {
  margin-bottom: 20px;
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .list_link ul li:not(:last-child) {
    margin-bottom: 10px;
  }
}
.list_link ul li a {
  display: table;
  letter-spacing: 0.03em;
  color: var(--fff);
  text-decoration: none;
  padding-left: 1.3em;
  position: relative;
  text-transform: uppercase;
  font-size: 0.875em;
  line-height: 2.1428571429;
  font-weight: 500;
}
.list_link ul li a::before {
  content: "";
  position: absolute;
  height: 2px;
  width: 2px;
  border-radius: 50%;
  background-color: var(--fff);
  top: 1em;
  left: 0.65em;
}
.list_link ul li a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 1.3em;
  right: 0;
  height: 1px;
  background-color: var(--fff);
  transform: scaleX(0);
  transition: 0.3s all;
}
.list_link ul li a:hover {
  opacity: 1;
  color: var(--fff);
}
@media only screen and (min-width: 769px) {
  .list_link ul li a:hover::after {
    transform: scaleX(1);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .list_link ul li a {
    letter-spacing: 0;
  }
}

footer .ft_gallery {
  --w: 320px;
  padding-top: 8px;
  padding-bottom: 8px;
}
footer .ft_gallery .img {
  margin: 0 4px;
  width: var(--w);
  height: calc(var(--w) / 1.4545454546);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  border-radius: 5px;
}
footer .ft_gallery .img1 {
  background-image: url(../images/ft_img1.jpg);
}
footer .ft_gallery .img2 {
  background-image: url(../images/ft_img2.jpg);
}
footer .ft_gallery .img3 {
  background-image: url(../images/ft_img3.jpg);
}
footer .ft_gallery .img4 {
  background-image: url(../images/ft_img4.jpg);
}
footer .ft_gallery .img5 {
  background-image: url(../images/ft_img5.jpg);
}
footer .ft_gallery .img6 {
  background-image: url(../images/ft_img6.jpg);
}
footer .ft_gallery .img7 {
  background-image: url(../images/ft_img7.jpg);
}
footer .ft_gallery .img8 {
  background-image: url(../images/ft_img8.jpg);
}
footer .ft_gallery .img9 {
  background-image: url(../images/ft_img9.jpg);
}
footer .ft_gallery .img10 {
  background-image: url(../images/ft_img10.jpg);
}
footer .ft_bg {
  background: url(../images/ft_bg.jpg) no-repeat top center/cover;
  padding: 140px 0;
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  footer .ft_bg {
    padding: 80px 0;
  }
}
footer .ft_banner {
  margin-top: 25px;
}
footer .ft_banner figure {
  width: calc(33.3333333333% - 16.66px);
}
footer .ft_banner figure img {
  border-radius: 10px;
  box-shadow: 5px 8.66px 40px 0px rgba(49, 110, 171, 0.1);
}
footer .ft_banner figure a:hover {
  opacity: 1;
}
footer .copyright {
  padding: 33px 0;
  background-color: #2367a8;
}
footer .copyright .flex {
  justify-content: center;
}
footer .copyright .grits {
  margin: 0;
}
footer .copyright .textwidget p {
  border-left: 1px solid #fff;
  line-height: 2.0714285714;
  color: #fff;
  font-weight: 300;
  letter-spacing: 0.1em;
  font-size: 0.875em;
  margin-left: 2.4285714286em;
  padding-left: 2.4285714286em;
  margin-top: 0.2142857143em;
}

@media only screen and (min-width: 769px) and (max-width: 1280px) {
  .pc_navi > ul > li > a,
  .pc_navi > ul > li > p {
    letter-spacing: 0;
    font-size: 14px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .pc_navi > ul > li > a,
  .pc_navi > ul > li > p {
    letter-spacing: 0;
    font-size: 12px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 850px) {
  .logo {
    width: 22%;
  }
  .right_head {
    width: 75%;
  }
  .pc_navi > ul > li:not(:last-child)::before {
    height: 16px;
    top: calc(50% - 8px);
  }
  .pc_navi > ul > li,
  .pc_navi > ul > li > a,
  .pc_navi > ul > li > p {
    font-size: 10px;
  }
}
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                INDEX                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                Under                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
.shared_tbl .ovs {
  overflow-y: hidden !important;
  overflow-x: auto !important;
}
.shared_tbl table {
  border-collapse: collapse;
  table-layout: fixed;
}
.shared_tbl table tr th,
.shared_tbl table tr td {
  letter-spacing: 0.1em;
  line-height: 1;
  position: relative;
  font-weight: 500;
  padding: 0;
  text-align: center;
  z-index: 1;
  border: 1px solid transparent;
}
.shared_tbl table tr th::before,
.shared_tbl table tr td::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  z-index: -1;
  border: 1px solid #164573;
  inset: -1px;
}
.shared_tbl table tr th:first-child,
.shared_tbl table tr td:first-child {
  width: auto;
}
.shared_tbl table tr th:last-child,
.shared_tbl table tr td:last-child {
  width: 20%;
}
.shared_tbl table tr th {
  background-color: #4799c9;
  color: #fff;
  padding-top: 0.9em;
  padding-bottom: 1em;
  font-size: 1.25em;
}
.shared_tbl table tr th::before {
  border-bottom-color: transparent;
}
.shared_tbl table tr th:first-child {
  border-radius: 8px 0 0 0;
}
.shared_tbl table tr th:last-child {
  border-radius: 0 8px 0 0;
}
.shared_tbl table tr th:first-child::before {
  border-radius: 10px 0 0 0;
}
.shared_tbl table tr th:last-child::before {
  border-radius: 0 10px 0 0;
}
.shared_tbl table tr td {
  padding-top: 1.4375em;
  padding-bottom: 1.3125em;
  color: var(--clr1);
  background-color: #fff;
}
.shared_tbl table tr td sup {
  font-size: 0.625em;
  line-height: 1;
  position: relative;
  top: -0.3125em;
  left: 0.0625em;
}
.shared_tbl table tr:nth-child(2) td::before {
  border-top-color: #4799c9;
}
.shared_tbl table tr:last-child td:first-child {
  border-radius: 0 0 0 10px;
}
.shared_tbl table tr:last-child td:last-child {
  border-radius: 0 0 10px 0;
}
.shared_tbl table tr:last-child td:first-child::before {
  border-radius: 0 0 0 10px;
}
.shared_tbl table tr:last-child td:last-child::before {
  border-radius: 0 0 10px 0;
}
@media only screen and (min-width: 1919px) {
  .shared_tbl table tr:nth-child(4) td {
    padding-top: 21px;
    padding-bottom: 23px;
  }
  .shared_tbl table tr:nth-child(5) td {
    padding-top: 20px;
    padding-bottom: 24px;
  }
}
@media only screen and (max-width: 768px) {
  .shared_tbl table {
    min-width: 800px;
  }
}
@media only screen and (max-width: 768px) {
  .shared_tbl .ovs {
    padding: 10px 10px 10px 1px;
  }
}
.shared_tbl .blue {
  color: #2367a8;
}
.shared_tbl.shared_tbl2 {
  text-align: center;
}
.shared_tbl.shared_tbl2 table {
  min-width: unset;
  table-layout: unset;
}
.shared_tbl.shared_tbl2 table tr th {
  line-height: 1.5;
  width: 33.3333333333%;
}
@media only screen and (max-width: 768px) {
  .shared_tbl.shared_tbl2 table {
    display: block;
  }
  .shared_tbl.shared_tbl2 table tbody,
  .shared_tbl.shared_tbl2 table tr,
  .shared_tbl.shared_tbl2 table th,
  .shared_tbl.shared_tbl2 table td {
    display: block;
  }
  .shared_tbl.shared_tbl2 table tr th,
  .shared_tbl.shared_tbl2 table tr td {
    width: 100% !important;
    border-radius: 0;
    padding-top: 15px;
    padding-bottom: 15px;
  }
  .shared_tbl.shared_tbl2 table tr th::before,
  .shared_tbl.shared_tbl2 table tr td::before {
    border-radius: 0;
  }
  .shared_tbl.shared_tbl2 table tr td {
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .shared_tbl.shared_tbl2 table tr:first-child td::before {
    border-bottom: 0;
  }
  .shared_tbl.shared_tbl2 table tr:first-child th {
    border-radius: 10px 10px 0 0;
  }
  .shared_tbl.shared_tbl2 table tr:first-child th::before {
    border-radius: 10px 10px 0 0;
  }
  .shared_tbl.shared_tbl2 table tr:last-child td {
    border-radius: 0 0 10px 10px;
  }
  .shared_tbl.shared_tbl2 table tr:last-child td::before {
    border-radius: 0 0 10px 10px;
  }
  .shared_tbl.shared_tbl2 table tr:nth-child(2) td::before {
    border-top: 0;
    border-bottom: 0;
  }
  .shared_tbl.shared_tbl2 table tr:nth-child(2) th::after {
    content: "";
    display: block;
    position: absolute;
    transition: all 0.3s;
    border-bottom: 1px solid #164573;
    left: 0;
    right: 0;
    bottom: -1px;
  }
}

.shared_p {
  margin-top: 26px;
  letter-spacing: 0.1em;
  line-height: 1.875;
  font-weight: 300;
}
@media only screen and (max-width: 768px) {
  .shared_p {
    margin-top: 1em;
    letter-spacing: 0;
  }
}

.idx_contact .idx_contact_bg {
  border-radius: 20px;
  background: url(../images/idx_shared_bg.jpg) no-repeat top center/cover;
  padding: 32px 0 50px;
}
.idx_contact .idx_contact_ttl {
  text-align: center;
  line-height: 1.5;
  letter-spacing: 0.1em;
  color: #fff;
  font-size: 24px;
  font-feature-settings: "palt";
  border-bottom: 1px solid rgba(255, 255, 255, 0.5);
  display: table;
  margin: 0 auto;
  padding-bottom: 8px;
}
.idx_contact .fblock {
  margin-top: 38px;
  padding: 0 40px;
}
@media only screen and (min-width: 1280px) {
  .idx_contact .fblock {
    padding: 0px 89px 0 86px;
  }
}
.idx_contact .fblock .idx_tel {
  width: 28.5%;
}
.idx_contact .fblock .idx_line {
  width: 33%;
  max-width: 360px;
}
.idx_contact .fblock .idx_web {
  width: 33%;
  max-width: 360px;
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .idx_contact .idx_contact_bg {
    padding: 20px;
  }
  .idx_contact .idx_contact_ttl {
    font-size: 20px;
    letter-spacing: 0;
  }
  .idx_contact .fblock {
    margin-top: 20px;
    font-size: 1.56vw;
    padding: 0;
  }
  .idx_contact .idx_tel .ttl01,
  .idx_contact .idx_tel .ttl02 {
    letter-spacing: 0;
  }
  .idx_contact .idx_tel .ttl01 {
    margin-bottom: 0.5em;
  }
  .idx_contact .idx_tel .ttl02 {
    font-size: 2em;
  }
}

.idx_tel {
  position: relative;
  padding-top: 0.8125em;
  padding-left: 2.875em;
  --clr: #fff;
}
.idx_tel::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-image: url(../images/idx_shared_icon_tel.png);
          mask-image: url(../images/idx_shared_icon_tel.png);
  background-color: var(--clr);
  width: 2.3125em;
  height: 2.3125em;
  top: 2.1em;
  left: 0.25em;
}
.idx_tel p {
  line-height: 1;
  text-align: center;
  color: var(--clr);
}
.idx_tel .ttl01 {
  letter-spacing: 0.2em;
  margin: 0 0 0.1875em 0;
}
.idx_tel .ttl02 {
  letter-spacing: 0.05em;
  font-size: 2.25em;
  font-weight: 500;
}

.idx_line {
  background-color: #4cce69;
  border-radius: 6px;
  position: relative;
  --clr: #fff;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 0.625em 0;
}
.idx_line::before {
  content: "";
  background: url(../images/idx_shared_icon_line.png) no-repeat 47% center/2.25em;
  width: 5.0625em;
  height: 3.75em;
  border-right: 1px solid rgba(255, 255, 255, 0.5);
  position: relative;
}
.idx_line .ttl {
  line-height: 1;
  letter-spacing: 0.1em;
  font-size: 1.125em;
  font-weight: 500;
  color: var(--clr);
  width: calc(100% - 4.5em);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 0.1111111111em;
}
@media only screen and (min-width: 1919px) {
  .idx_line .ttl {
    padding-left: 2.8888888889em;
    justify-content: flex-start;
  }
}

.idx_web {
  background-color: #fff;
  position: relative;
  border-radius: 6px;
  position: relative;
  --clr: #fff;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 0.625em 0;
}
.idx_web::before {
  content: "";
  background: url(../images/idx_shared_icon_web.png) no-repeat 51% center/2.25em;
  width: 5.0625em;
  height: 3.75em;
  border-right: 1px solid rgba(35, 103, 168, 0.5);
  position: relative;
}
.idx_web .ttl {
  line-height: 1;
  letter-spacing: 0.1em;
  font-size: 1.125em;
  font-weight: 500;
  color: var(--main-color);
  width: calc(100% - 4.5em);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 0.1111111111em;
}
@media only screen and (min-width: 1919px) {
  .idx_web .ttl {
    padding-left: 2.8888888889em;
    justify-content: flex-start;
  }
}

.clr1 {
  color: var(--main-color);
}

.br769,
.br480 {
  display: none;
}

@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .br769 {
    display: block;
  }
}
@media only screen and (max-width: 480px) {
  .br480 {
    display: block;
  }
}