@charset "UTF-8";
:root {
  --f-notosans: "Noto Sans JP", sans-serif;
  --f-jp: "Shippori Mincho", serif;
  --f-en: "Cinzel", serif;
  --main-color: #173a6f;
  --clr1: #051828;
  --clr2: #395f89;
  --ttl_size: 28px;
  --wrapper: 80px;
  --height: 56vw;
  --min-height: 550px;
  --max-height: 750px;
}

/*==========================================================================*/
/*//////////////////////////////////////////////////////////////////////////*/
/*//////                                                              //////*/
/*//////  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;
}

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

p {
  line-height: 2.25;
  letter-spacing: 0.1em;
  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 {
  overflow: hidden;
}

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

.inner_max {
  max-width: 1320px;
}

.inner_big {
  max-width: 1158px;
}

.inner {
  max-width: 1064px;
}

.inner_sm {
  max-width: 1020px;
}

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

.txt_ver {
  writing-mode: vertical-rl;
}

@media only screen and (min-width: 769px) {
  .txt_ver_pc {
    writing-mode: vertical-rl;
  }
}
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                           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);
  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;
  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;
  }
}
.TabContainer .TabContent {
  position: relative;
  overflow: hidden;
}
.TabContainer .TabContent .content {
  transition: all 0.3s ease-in-out;
  background-color: #fff;
}
.TabContainer .TabContent .content > div {
  opacity: 0;
  z-index: -10;
  visibility: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transition: all 0.5s ease-in-out;
}
.TabContainer .TabContent .content > div.active {
  opacity: 1;
  z-index: 1;
  visibility: visible;
}
.TabContainer .TabPager {
  display: flex;
  justify-content: center;
  z-index: 2;
  margin: 0px auto;
}
.TabContainer .TabPager.st1 > div::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  --w: 14px;
  bottom: calc(-1 * var(--w) + 0px);
  left: calc(50% - var(--w) - 0px);
  width: 0;
  height: 0;
  border-left: calc(var(--w) + 0px) solid transparent;
  border-right: calc(var(--w) + 0px) solid transparent;
  border-top: var(--w) solid #173a6f;
  opacity: 0;
}
.TabContainer .TabPager.st1 > div:not(.active):hover {
  background-color: #473a2e;
}
.TabContainer .TabPager.st1 > div.active {
  background-color: #173a6f;
  z-index: 1;
}
.TabContainer .TabPager.st1 > div.active::before {
  opacity: 1;
}
.TabContainer .TabPager.st2 {
  background-color: #fff;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.TabContainer .TabPager.st2::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  inset: 0;
  z-index: -1;
  border-radius: 40px;
  border: 1px solid #173a6f;
}
.TabContainer .TabPager.st2 > div {
  padding: 1.41em 1em;
  background-color: transparent;
  color: var(--main-color);
  border-radius: 40px;
}
.TabContainer .TabPager.st2 > div p {
  font-size: 1.25em;
}
.TabContainer .TabPager.st2 > div.active {
  background-color: #173a6f;
  z-index: 1;
  color: #fff;
}
@media only screen and (min-width: 769px) {
  .TabContainer .TabPager.st2 > div:hover {
    color: #fff;
    background-color: #473a2e;
  }
}
.TabContainer .TabPager > div {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  margin: 0;
  padding: 2.0625em 0.25em 1.75em;
  width: calc(50% - 0px);
  transition: all 0.3s ease;
  cursor: pointer;
  color: #ffffff;
  background-color: #395f89;
}
.TabContainer .TabPager > div p {
  font-family: var(--f-jp);
  margin: 0;
  font-size: min(1.75em, 5.1vw);
  font-weight: 500;
  line-height: 2;
  border-bottom: 1px solid transparent;
  line-height: 1.2;
}
.TabContainer .TabPager > div p .en {
  margin-top: 0.5em;
  display: block;
  font-size: 0.5em;
  letter-spacing: 0.07em;
}

.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: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.key {
  position: relative;
}
.key .key_text {
  width: calc(100% - var(--wrapper));
  overflow: hidden;
}

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

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

.link > a {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.tel_click {
  display: table;
  text-decoration: none;
}

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

.btn a {
  position: relative;
  color: var(--main-color);
  text-decoration: none;
}
.btn a::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  width: 0.45em;
  height: 0.55em;
  right: 0%;
  top: calc(50% - 0.35em);
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='82px' height='98px'%3E%3Cpath fill-rule='evenodd' fill='rgb(23, 58, 111)' d='M81.544,49.059 L0.294,97.965 L0.294,0.153 L81.544,49.059 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);
}
.btn a::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  left: 0;
  bottom: -1px;
  width: 0;
  height: 0;
  border-bottom: 1px solid;
}

.btn-group {
  font-size: 0.625em;
}
.btn-group .btn {
  font-size: 1em;
}
.btn-group .btn.style01 {
  width: auto;
  line-height: 1.5;
  display: table;
  font-size: 1.8em;
}
.btn-group .btn.style01:not(.en) {
  font-family: var(--f-jp);
}
.btn-group .btn.style01 a {
  display: table;
  min-width: 9.8333em;
  padding: 0.45em 2.15em 0.45em 0;
  font-size: 1em;
  letter-spacing: 0.1em;
  line-height: 1.5;
  color: var(--main-color);
  font-weight: 500;
  border-bottom: 1px solid #d6dae1;
  transition: all 0.3s;
}
.btn-group .btn.style01 a:hover {
  opacity: 1;
}
@media only screen and (min-width: 769px) {
  .btn-group .btn.style01 a:hover::before {
    width: 100%;
  }
}
.btn-group .btn.style01.md a {
  min-width: 8em;
}
.btn-group .btn.white a {
  color: #fff;
}
.btn-group .btn.white a::before {
  background-color: #d6dae1;
}
.btn-group .btn.white a::after {
  background-color: white;
}
.yt {
  max-width: 960px;
  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%;
}

.slick-arrow {
  display: block;
  border: none;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-color: transparent;
  position: absolute;
  top: 37%;
  width: 2em;
  height: 2em;
  transform: translateY(-50%);
  cursor: pointer;
  color: transparent;
}
.slick-arrow:focus {
  outline: 0;
}

.slick-prev {
  left: -1em;
}

.slick-next {
  right: -1em;
}

/* Tablet
-------------------------------------------*/
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  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: calc(var(--wrapper) + 15px);
  z-index: 20;
  font-size: 0.625em;
  --clr: #fff;
  transition: all 0.3s;
}

header.active,
.ovh header {
  background-color: #fff;
  --clr: #173a6f;
  height: var(--wrapper);
}
header.active .logo,
.ovh header .logo {
  padding-left: 0;
  max-width: 342px;
}
header.active .logo a,
.ovh header .logo a {
  max-width: 22.3em;
}
header.active .ov,
.ovh header .ov {
  display: block;
}
header.active .main,
.ovh header .main {
  display: none;
}
header.active .header_top,
.ovh header .header_top {
  align-items: center;
}
header.active .pc_navi,
.ovh header .pc_navi {
  margin-bottom: 0;
}

.header_top {
  position: relative;
  z-index: 11;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  width: 100%;
  justify-content: space-between;
  margin: 0 auto;
  padding: 5px 2em;
  height: 100%;
  transition: all 0.3s ease-in-out;
}

.logo {
  width: 27%;
  max-width: 378px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.logo a {
  max-width: 25.8em;
  display: block;
  width: 100%;
  text-align: center;
}
.logo img {
  width: auto;
}
.logo .ov {
  max-width: 22.3em;
  display: none;
}

.right_head {
  width: 72%;
  max-width: 864px;
  padding-right: 10.6em;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.pc_navi {
  width: 100%;
  margin-bottom: 10px;
  position: relative;
  z-index: 11;
}
.pc_navi > ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  text-align: center;
  width: 100%;
}
.pc_navi > ul > li {
  position: relative;
  border-left: 1px solid var(--clr);
  height: 1.375em;
  font-size: 1.6em;
}
.pc_navi > ul > li:first-child {
  border-left: none;
}
.pc_navi > ul > li:hover > a,
.pc_navi > ul > li:hover > p {
  opacity: 0.75;
  color: var(--clr);
}
.pc_navi > ul > li.menu-item-has-children > a::after,
.pc_navi > ul > li.menu-item-has-children > p::after {
  content: "";
  margin-left: 0.5em;
  width: 9px;
  height: 5px;
  transition: all 0.5s ease;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='9px' height='5px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M8.989,0.907 L4.628,4.994 L0.014,0.667 L0.741,-0.012 L4.586,3.591 L8.220,0.185 L8.989,0.907 Z'/%3E%3C/svg%3E");
  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(--clr);
}
.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 {
  padding: 0em 2.1875em;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin: 0;
  text-decoration: none;
  text-align: center;
  font-weight: 500;
  line-height: 1.375em;
  letter-spacing: 0.1em;
  transition: all 0.2s ease;
  color: var(--clr);
}
.pc_navi > ul > li > a span,
.pc_navi > ul > li > p span {
  display: block;
  width: 100%;
  padding-top: 0px;
  font-size: 66.6666666667%;
  font-weight: 600;
}
.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: var(--main-color);
  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: 400px;
    max-width: 32em;
  }
  .pc_navi > ul .col2 .subInner ul {
    display: flex;
    flex-wrap: wrap;
  }
  .pc_navi > ul .col2 .subInner ul li {
    width: 50%;
  }
  header .menu_toggle .inside {
    font-size: min(1.6em, 1.5vw);
    display: flex;
    align-items: center;
  }
  header .menu_toggle .inside .ft_link {
    padding: 0;
    width: 55.1%;
  }
  header .menu_toggle .inside .menu_row {
    padding-top: 1.125em;
    padding-bottom: 1.125em;
    width: 100%;
    min-height: 40em;
    max-height: 41.5em;
    height: 100%;
    align-items: center;
    flex-direction: column;
    justify-content: space-between;
    display: flex;
  }
  header .menu_toggle .inside .menu_bottom {
    width: 100%;
  }
  header .menu_toggle .inside .menu01 {
    width: 40%;
    max-width: 15.4375em;
  }
  header .menu_toggle .inside .menu01 ul {
    max-height: 100em;
  }
  header .menu_toggle .inside .menu02 {
    width: 60%;
  }
  header .menu_toggle .inside .banner {
    width: 42%;
    max-width: 27.25em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1560px) and (max-height: 750px) {
  header .menu_toggle .inside .menu_row {
    min-height: 36em;
    max-height: 37em;
    font-size: min(1em, 2.1vmin);
    max-width: 72.375em;
  }
  header .menu_toggle .menu_row .banner {
    font-size: min(1em, 1.8vmin);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) and (max-height: 750px) {
  header .menu_toggle .inside .menu_row {
    max-height: 38em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  :root {
    --wrapper: 70px;
  }
  .right_head {
    padding-right: 8.5em;
  }
  .pc_navi > ul > li > a,
  .pc_navi > ul > li > p {
    padding: 0em 1.85em;
  }
  .pc_navi > ul .subInner ul li a {
    font-size: 12px;
  }
}
.idx_gallery {
  padding-top: 100px;
}
.idx_gallery.swiper-container-free-mode > .swiper-wrapper {
  transition-timing-function: linear;
}
.idx_gallery .item {
  width: 340px;
  max-width: 30vw;
}
.idx_gallery .list {
  display: flex;
}
.idx_gallery .list .img.mt {
  margin-top: 30px;
}
.idx_gallery .list .img img {
  overflow: hidden;
  margin: 0 0px;
}

.time_sheet {
  margin: 0px 0;
  max-width: 100%;
}
.time_sheet .note {
  margin-top: 11px;
  line-height: 1.846153;
  font-size: 13px;
  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: 400;
  letter-spacing: 0.1em;
  width: 8.95%;
  border-bottom: 1px solid #ababab;
  color: #173a6f;
}
.time_sheet table th:first-child,
.time_sheet table td:first-child {
  width: 30.4%;
  padding-left: 1%;
  color: #051828;
  border-right: 1px solid #ababab;
}
.time_sheet table th:nth-child(2),
.time_sheet table td:nth-child(2) {
  width: 13.5%;
  padding-right: 0.8em;
  text-align: right;
}
.time_sheet table th:last-child,
.time_sheet table td:last-child {
  width: auto;
  padding-left: 0.8em;
  text-align: left;
}
.time_sheet table thead th {
  color: #051828;
}
.time_sheet table th {
  padding: 0.8em 0.2em 1.03em;
  letter-spacing: 0.14em;
}
.time_sheet table td {
  padding: 1.15em 0.2em 1.35em;
  color: var(--main-color);
}
.time_sheet table tr:last-child td {
  border-bottom: none;
}

@media only screen and (max-width: 992px) and (min-width: 769px) {
  :root {
    --ttl_size: 22px;
    --wrapper: 65px;
  }
}
.totop {
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  position: fixed;
  z-index: 19;
  bottom: 45px;
  left: 40px;
}
.totop.active {
  opacity: 1;
  visibility: visible;
}
.totop .icon {
  background-image: url(../images/totop.png);
  background-repeat: no-repeat;
  background-size: 100% auto;
  border: 0px;
  width: 70px;
  height: 70px;
  margin: 0;
}

@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;
  right: 0px;
  z-index: 15;
  transition: right 0.3s ease-in-out;
  font-family: var(--f-jp);
}
.fixed_banner > div {
  position: relative;
  transition: all 0.3s ease;
}
.fixed_banner a {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  z-index: 2;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.fixed_banner p {
  display: block;
  width: 100%;
  height: 100%;
  margin-bottom: 0;
  color: #fff;
  letter-spacing: 0.1em;
  line-height: 1.2222222222;
  text-align: center;
  text-decoration: none;
}
.fixed_banner p:hover {
  color: #fff;
}
.fixed_banner p .tt {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  height: 100%;
  flex-direction: column;
}
.fixed_banner p .tt::before {
  content: "";
  display: block;
  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: #fff;
}
.fixed_banner .tel p {
  color: var(--main-color);
  background-color: #f3efea;
}
.fixed_banner .tel p .tt::before {
  width: 1.71428em;
  height: 1.71428em;
  background-color: var(--main-color);
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='330px' height='331px'%3E%3Cpath fill-rule='evenodd' fill='rgb(23, 58, 111)' d='M329.969,246.176 L329.969,310.994 C329.972,320.623 322.527,328.623 312.925,329.282 C304.917,329.830 298.374,330.140 293.315,330.140 C131.368,330.140 0.099,198.822 0.099,36.822 C0.099,31.757 0.374,25.215 0.943,17.202 C1.616,7.599 9.606,0.140 19.231,0.140 L84.031,0.140 C88.742,0.140 92.689,3.708 93.159,8.410 C93.581,12.624 93.966,15.981 94.332,18.527 C97.974,43.945 105.437,68.684 116.470,91.873 C118.209,95.540 117.074,99.919 113.775,102.274 L74.229,130.541 C98.407,186.891 143.310,231.798 199.651,255.996 L227.874,216.497 C230.254,213.179 234.674,212.025 238.375,213.773 C261.557,224.781 286.270,232.246 311.677,235.867 C314.225,236.223 317.578,236.652 321.758,237.035 C326.435,237.509 329.991,241.480 329.986,246.176 L329.969,246.176 Z'/%3E%3C/svg%3E");
}
.fixed_banner .web p {
  background-color: #395f89;
}
.fixed_banner .web p .tt::before {
  width: 1.7857em;
  height: 1.7857em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='66px' height='66px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M62.333,66.000 L3.667,66.000 C1.642,66.000 -0.000,64.444 -0.000,62.526 L-0.000,13.895 C-0.000,11.976 1.642,10.421 3.667,10.421 L14.666,10.421 L14.666,3.473 C14.666,1.557 16.308,0.000 18.333,0.000 C20.358,0.000 21.1000,1.557 21.1000,3.473 L21.1000,10.421 L43.1000,10.421 L43.1000,3.473 C43.1000,1.557 45.641,0.000 47.666,0.000 C49.691,0.000 51.333,1.557 51.333,3.473 L51.333,10.421 L58.667,10.421 L62.333,10.421 C64.359,10.421 65.1000,11.976 65.1000,13.895 L65.1000,62.526 C65.1000,64.444 64.359,66.000 62.333,66.000 ZM30.249,40.247 L23.675,34.020 C22.243,32.661 19.923,32.661 18.490,34.020 C17.058,35.375 17.058,37.573 18.490,38.931 L27.657,47.614 C28.345,48.266 29.278,48.632 30.249,48.632 C31.222,48.632 32.154,48.266 32.842,47.614 L47.509,33.720 C48.941,32.362 48.941,30.164 47.509,28.808 C46.076,27.450 43.756,27.450 42.324,28.808 L30.249,40.247 Z'/%3E%3C/svg%3E");
}
.fixed_banner .map p {
  background-color: #173a6f;
}
.fixed_banner .map p .tt::before {
  width: 1.9286em;
  height: 2.6429em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='270px' height='371px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M135.030,0.130 C60.625,0.130 0.100,59.691 0.100,132.912 C0.100,225.344 123.101,361.358 128.337,367.109 C130.040,368.976 132.474,370.044 135.030,370.044 C137.586,370.044 140.020,368.976 141.725,367.109 C146.960,361.358 269.960,225.344 269.960,132.912 C269.960,59.691 209.435,0.130 135.030,0.130 ZM135.030,172.384 C114.325,172.384 97.481,155.811 97.481,135.438 C97.481,115.059 114.325,98.485 135.030,98.485 C155.736,98.485 172.579,115.059 172.579,135.438 C172.579,155.811 155.736,172.384 135.030,172.384 Z'/%3E%3C/svg%3E");
}
.fixed_banner .ins {
  position: absolute;
  bottom: 0;
  left: 0;
}

.ins a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: auto;
  font-size: 1.2em;
  font-family: var(--f-jp);
  text-transform: uppercase;
  font-weight: 500;
  color: #173a6f;
  text-decoration: none;
  white-space: nowrap;
  font-family: var(--f-en);
}
.ins a::after {
  content: "";
  display: block;
  width: 1.8333em;
  height: 1.8333em;
  margin-top: 1.4em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='220px' height='222px'%3E%3Cpath fill-rule='evenodd' fill='rgb(23, 58, 111)' d='M109.977,0.962 C139.857,0.962 143.585,1.074 155.308,1.615 C167.021,2.169 174.993,4.015 182.010,6.739 C189.268,9.536 195.382,13.321 201.496,19.415 C207.089,24.935 211.416,31.577 214.176,38.931 C216.892,45.935 218.740,53.928 219.291,65.655 C219.807,77.381 219.950,81.114 219.950,111.010 C219.950,140.913 219.840,144.639 219.291,156.372 C218.740,168.092 216.892,176.072 214.176,183.090 C211.423,190.443 207.096,197.098 201.496,202.592 C195.998,208.191 189.348,212.518 182.010,215.281 C175.005,218.005 167.021,219.838 155.308,220.399 C143.585,220.920 139.857,221.065 109.977,221.065 C80.098,221.065 76.370,220.953 64.648,220.399 C52.935,219.838 44.962,218.005 37.947,215.281 C30.604,212.524 23.953,208.198 18.459,202.592 C12.866,197.091 8.539,190.437 5.779,183.090 C3.052,176.079 1.215,168.092 0.666,156.372 C0.149,144.639 0.006,140.913 0.006,111.010 C0.006,81.114 0.116,77.381 0.666,65.655 C1.215,53.908 3.052,45.948 5.779,38.931 C8.531,31.577 12.859,24.922 18.459,19.415 C23.955,13.829 30.605,9.489 37.947,6.739 C44.962,4.015 52.924,2.169 64.648,1.615 C76.370,1.107 80.098,0.962 109.977,0.962 ZM109.977,55.986 C79.610,55.986 54.992,80.619 54.992,111.010 C54.992,141.394 79.610,166.034 109.977,166.034 C140.346,166.034 164.964,141.394 164.964,111.010 C164.964,80.619 140.346,55.986 109.977,55.986 ZM181.460,53.236 C181.460,45.638 175.305,39.478 167.713,39.478 C160.121,39.478 153.967,45.638 153.967,53.236 C153.967,60.840 160.121,66.987 167.713,66.987 C175.305,66.987 181.460,60.840 181.460,53.236 ZM109.977,78.001 C128.198,78.001 142.969,92.768 142.969,111.010 C142.969,129.239 128.198,144.026 109.977,144.026 C91.757,144.026 76.986,129.239 76.986,111.010 C76.986,92.768 91.757,78.001 109.977,78.001 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);
}
@media only screen and (min-width: 769px) {
  .fixed_banner {
    --size: var(--wrapper);
    font-size: 0.625em;
    width: var(--wrapper);
    top: var(--wrapper);
    height: calc(var(--height) - var(--wrapper));
    min-height: calc(var(--min-height) - var(--wrapper));
    max-height: calc(var(--max-height) - var(--wrapper));
    background-color: #fff;
    transition: all 0.3s;
  }
  .fixed_banner::before {
    content: "";
    display: block;
    position: absolute;
    transition: all 0.3s;
    left: -1px;
    top: 0;
    width: 0;
    height: calc(100vh - var(--wrapper));
    border-left: 1px solid #ababab;
  }
  .fixed_banner.active {
    min-height: 0;
    height: calc(2 * var(--wrapper) + 15em);
  }
  .fixed_banner > div {
    width: var(--wrapper);
    height: var(--wrapper);
    margin-bottom: 0em;
  }
  .fixed_banner p {
    width: var(--wrapper);
    height: var(--wrapper);
  }
  .fixed_banner p .tt {
    font-size: 1.4em;
    letter-spacing: 0.05em;
  }
  .fixed_banner p .tt::before {
    margin-bottom: 0.5em;
  }
  .fixed_banner .tel p .tt::before {
    --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='241px' height='240px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M240.022,152.159 C240.156,152.404 240.295,152.645 240.400,152.907 C240.478,153.098 240.523,153.300 240.584,153.498 C240.655,153.734 240.738,153.963 240.785,154.209 C240.837,154.477 240.847,154.753 240.868,155.028 C240.881,155.202 240.920,155.369 240.920,155.546 L240.920,226.234 C240.920,235.652 229.923,239.939 219.699,239.939 C99.317,232.895 7.484,141.432 0.929,22.467 C-0.278,10.591 4.327,1.993 12.965,0.221 C13.053,0.200 13.138,0.175 13.228,0.158 C13.250,0.154 13.271,0.146 13.294,0.142 C13.551,0.092 13.802,0.095 14.056,0.075 C14.227,0.062 14.390,0.023 14.565,0.023 L14.634,0.023 C14.688,0.023 14.742,0.022 14.795,0.023 L85.162,0.023 C85.178,0.023 85.193,0.024 85.208,0.023 L85.301,0.023 C85.404,0.023 85.500,0.049 85.602,0.054 C85.972,0.068 86.340,0.093 86.697,0.164 C86.776,0.180 86.848,0.210 86.926,0.228 C87.301,0.316 87.669,0.422 88.022,0.568 C88.101,0.602 88.173,0.649 88.251,0.685 C88.586,0.839 88.912,1.006 89.218,1.210 C89.306,1.268 89.381,1.341 89.466,1.403 C89.743,1.606 90.014,1.815 90.259,2.058 C90.363,2.159 90.447,2.277 90.544,2.385 C90.744,2.609 90.946,2.831 91.118,3.081 C91.243,3.262 91.338,3.462 91.447,3.655 C91.558,3.856 91.682,4.046 91.774,4.259 C91.897,4.538 91.978,4.836 92.065,5.133 C92.105,5.273 92.169,5.400 92.201,5.544 L92.225,5.649 C92.227,5.660 92.230,5.671 92.232,5.682 L106.494,69.089 C107.020,71.410 106.336,73.837 104.684,75.552 L82.477,98.525 C94.178,117.809 109.467,134.603 127.416,148.120 C130.723,150.606 131.350,155.414 128.514,158.428 C128.482,158.468 128.449,158.494 128.416,158.527 C125.932,161.145 121.873,161.640 118.991,159.470 C98.056,143.714 80.459,123.862 67.479,100.911 C65.776,97.910 66.523,94.199 69.063,92.055 L91.857,68.475 L79.641,14.164 L15.741,14.164 C15.364,14.780 14.634,17.462 15.028,21.379 C21.203,133.366 107.447,219.210 220.114,225.825 C222.311,225.806 225.238,225.176 226.772,224.507 L226.772,161.199 L172.491,149.010 L148.853,172.436 C147.472,173.802 145.675,174.481 143.873,174.481 C142.056,174.481 140.233,173.795 138.851,172.397 C136.101,169.627 136.115,165.149 138.892,162.399 L165.280,136.242 C166.993,134.547 169.446,133.821 171.814,134.369 L235.225,148.614 C235.265,148.622 235.304,148.633 235.344,148.641 L235.401,148.654 C235.477,148.671 235.543,148.707 235.618,148.726 C235.992,148.823 236.359,148.934 236.707,149.088 C236.842,149.147 236.961,149.229 237.092,149.296 C237.368,149.440 237.643,149.582 237.897,149.759 C238.039,149.858 238.162,149.978 238.295,150.088 C238.514,150.266 238.735,150.440 238.931,150.643 C239.050,150.766 239.147,150.906 239.257,151.038 C239.438,151.255 239.622,151.468 239.776,151.707 C239.870,151.851 239.939,152.009 240.022,152.159 Z'/%3E%3C/svg%3E") ;
  }
  .fixed_banner .web p .tt::before {
    --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='241px' height='241px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M221.594,240.603 L18.994,240.603 C8.519,240.603 -0.000,232.082 -0.000,221.602 L-0.000,44.335 C-0.000,33.855 8.519,25.340 18.994,25.340 L63.313,25.340 L63.313,6.346 C63.313,2.844 66.145,0.008 69.644,0.008 C73.143,0.008 75.976,2.844 75.976,6.346 L75.976,56.991 C75.976,60.493 73.143,63.322 69.644,63.322 C66.145,63.322 63.313,60.493 63.313,56.991 L63.313,37.997 L18.994,37.997 C15.500,37.997 12.663,40.832 12.663,44.335 L12.663,221.602 C12.663,225.097 15.500,227.940 18.994,227.940 L221.594,227.940 C225.087,227.940 227.926,225.097 227.926,221.602 L227.926,44.335 C227.926,40.832 225.087,37.997 221.594,37.997 L208.932,37.997 C205.432,37.997 202.600,35.174 202.600,31.665 C202.600,28.170 205.432,25.340 208.932,25.340 L221.594,25.340 C232.068,25.340 240.588,33.855 240.588,44.335 L240.588,221.602 C240.588,232.082 232.068,240.603 221.594,240.603 ZM170.944,63.322 C167.445,63.322 164.613,60.493 164.613,56.991 L164.613,37.997 L107.632,37.997 C104.132,37.997 101.300,35.174 101.300,31.665 C101.300,28.170 104.132,25.340 107.632,25.340 L164.613,25.340 L164.613,6.346 C164.613,2.844 167.445,0.008 170.944,0.008 C174.444,0.008 177.275,2.844 177.275,6.346 L177.275,56.991 C177.275,60.493 174.444,63.322 170.944,63.322 ZM156.971,115.834 C159.444,113.354 163.451,113.354 165.924,115.834 C168.396,118.307 168.396,122.310 165.924,124.777 L115.273,175.435 C114.037,176.668 112.417,177.282 110.797,177.282 C109.177,177.282 107.557,176.668 106.321,175.435 L74.665,143.771 C72.191,141.298 72.191,137.295 74.665,134.828 C77.138,132.348 81.144,132.348 83.617,134.828 L110.797,162.001 L156.971,115.834 Z'/%3E%3C/svg%3E");
  }
  .fixed_banner .tel,
  .fixed_banner .web {
    --w_tel: 18em;
    transform: translateX(calc(-var(--size) - var(--w_tel)));
    transition: all 0.3s ease;
  }
  .fixed_banner .tel p .tt::before,
  .fixed_banner .web p .tt::before {
    margin-bottom: 0.45em;
  }
  .fixed_banner .tel:hover,
  .fixed_banner .web:hover {
    transform: translateX(calc(0em - var(--w_tel)));
  }
  .fixed_banner .tel:hover a,
  .fixed_banner .web:hover a {
    width: calc(var(--size) + var(--w_tel));
  }
  .fixed_banner .tel p,
  .fixed_banner .web p {
    background-color: #395f89;
    --main-color: #fff;
  }
  .fixed_banner .tel .ov,
  .fixed_banner .web .ov {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #395f89;
    position: absolute;
    left: var(--size);
    height: 100%;
    top: 0;
    width: var(--w_tel);
  }
  .fixed_banner .tel .ov::before,
  .fixed_banner .web .ov::before {
    content: "";
    display: block;
    position: absolute;
    transition: all 0.3s;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 6em;
    opacity: 0.6;
    border-left: 1px solid #fff;
  }
  .fixed_banner .tel .ov .text,
  .fixed_banner .web .ov .text {
    font-size: 2em;
    font-weight: 500;
    font-family: var(--f-jp);
  }
  .fixed_banner .web p {
    background-color: #173a6f;
  }
  .fixed_banner .web p .tt::before {
    margin-bottom: 0.5em;
  }
  .fixed_banner .web p .ov {
    background-color: #173a6f;
  }
  .fixed_banner .ins {
    height: 11.4em !important;
  }
  .fixed_banner .ins p {
    height: 11.4em !important;
    display: block;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px), (min-width: 769px) and (max-height: 650px) {
  header,
  .fixed_banner {
    font-size: min(8.75px, 0.95vw);
  }
  .totop {
    bottom: 80px;
  }
  .totop .icon {
    width: 60px;
    height: 60px;
  }
}
.ft_bnr {
  margin-top: 1px;
}
.ft_bnr a {
  width: 100%;
  max-width: 29em;
  height: 6.875em;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
  margin-right: auto;
  background-color: var(--main-color);
  text-decoration: none;
}
.ft_bnr p {
  margin-bottom: 10px;
}
.ft_bnr .icon {
  --main-color: #fff;
  display: flex;
  align-items: center;
  font-family: var(--f-jp);
  font-weight: 500;
  color: var(--main-color);
  letter-spacing: 0.05em;
  font-size: 1.875em;
  line-height: 1.1;
  width: 9.45em;
}
.ft_bnr .icon .top {
  display: block;
  font-size: 0.533333em;
  text-align: center;
}
.ft_bnr .icon::before {
  content: "";
  display: block;
  margin-right: 0.9em;
  margin-top: 0em;
  width: 1.1333em;
  height: 1.1333em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='341px' height='340px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M338.105,214.375 C338.257,214.576 338.403,214.781 338.539,214.993 C338.573,215.046 338.604,215.101 338.637,215.154 C338.772,215.373 338.900,215.596 339.018,215.826 C339.049,215.885 339.076,215.945 339.105,216.005 C339.214,216.230 339.319,216.457 339.412,216.691 C339.444,216.771 339.471,216.854 339.501,216.935 C339.580,217.149 339.655,217.363 339.720,217.583 C339.755,217.704 339.782,217.826 339.813,217.948 C339.859,218.132 339.906,218.316 339.942,218.504 C339.976,218.677 339.998,218.853 340.022,219.028 C340.042,219.171 340.065,219.313 340.078,219.458 C340.099,219.677 340.106,219.899 340.112,220.122 C340.114,220.212 340.125,220.300 340.125,220.391 L340.125,220.561 C340.125,220.569 340.126,220.578 340.125,220.586 L340.125,320.500 C340.125,333.836 324.557,339.910 310.082,339.910 C139.651,329.931 9.639,200.407 0.357,31.945 C-1.326,15.373 4.978,3.320 16.855,0.573 C17.168,0.482 17.488,0.406 17.813,0.346 C17.830,0.342 17.846,0.337 17.864,0.334 C18.005,0.306 18.144,0.295 18.285,0.274 C18.416,0.256 18.545,0.231 18.677,0.218 C19.178,0.163 19.674,0.148 20.165,0.169 L119.392,0.169 C122.916,0.001 126.187,1.719 128.098,4.556 C128.117,4.583 128.134,4.612 128.152,4.640 C128.301,4.866 128.444,5.097 128.575,5.336 C128.629,5.432 128.675,5.533 128.726,5.631 C128.816,5.809 128.906,5.986 128.986,6.171 C129.058,6.336 129.119,6.506 129.183,6.676 C129.231,6.806 129.283,6.935 129.326,7.068 C129.394,7.276 129.449,7.489 129.503,7.703 C129.526,7.793 129.557,7.880 129.578,7.971 L129.617,8.147 C129.618,8.149 129.618,8.150 129.618,8.152 L149.811,97.963 C150.556,101.261 149.586,104.690 147.249,107.104 L115.816,139.647 C132.380,166.960 154.022,190.730 179.431,209.871 C184.113,213.406 185.001,220.206 180.987,224.473 C180.939,224.526 180.895,224.579 180.848,224.625 C177.331,228.318 171.584,229.017 167.503,225.951 C137.864,203.639 112.953,175.530 94.576,143.035 C92.151,138.749 93.233,133.448 96.881,130.418 L129.087,97.086 L111.796,20.185 L21.319,20.185 C20.784,21.089 19.763,24.878 20.318,30.401 C29.061,188.984 151.161,310.541 310.669,319.913 C313.781,319.888 317.925,318.989 320.096,318.054 L320.096,228.396 L243.247,211.131 L209.781,244.305 C207.825,246.251 205.282,247.227 202.730,247.227 C200.159,247.227 197.576,246.224 195.621,244.252 C191.728,240.328 191.747,233.990 195.679,230.099 L233.039,193.060 C235.463,190.646 238.935,189.630 242.289,190.396 L332.313,210.623 C332.401,210.643 332.484,210.673 332.572,210.696 C332.794,210.752 333.016,210.810 333.233,210.881 C333.328,210.912 333.419,210.949 333.513,210.983 C333.732,211.062 333.949,211.144 334.161,211.237 C334.257,211.280 334.349,211.328 334.444,211.373 C334.644,211.470 334.842,211.568 335.035,211.676 C335.132,211.731 335.224,211.791 335.319,211.849 C335.502,211.960 335.683,212.074 335.857,212.196 C335.948,212.260 336.034,212.328 336.122,212.394 C336.294,212.523 336.464,212.654 336.627,212.794 C336.704,212.860 336.776,212.930 336.851,212.998 C337.017,213.150 337.180,213.303 337.336,213.466 C337.396,213.528 337.452,213.594 337.511,213.658 C337.672,213.835 337.828,214.015 337.976,214.203 C338.021,214.259 338.062,214.317 338.105,214.375 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);
}
.ft_bnr .web {
  background-color: #473a2e;
}
.ft_bnr .web .icon .sm {
  font-size: 0.933333;
}
.ft_bnr .web .icon::before {
  margin-right: 2.1em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='341px' height='340px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M313.272,339.883 L26.852,339.883 C12.044,339.883 -0.000,327.860 -0.000,313.067 L-0.000,62.672 C-0.000,47.879 12.044,35.855 26.852,35.855 L89.506,35.855 L89.506,9.026 C89.506,4.073 93.510,0.089 98.457,0.089 C103.403,0.089 107.407,4.073 107.407,9.026 L107.407,80.558 C107.407,85.504 103.403,89.514 98.457,89.514 C93.510,89.514 89.506,85.504 89.506,80.558 L89.506,53.735 L26.852,53.735 C21.912,53.735 17.902,57.745 17.902,62.672 L17.902,313.067 C17.902,317.994 21.912,322.004 26.852,322.004 L313.272,322.004 C318.211,322.004 322.223,317.994 322.223,313.067 L322.223,62.672 C322.223,57.745 318.211,53.735 313.272,53.735 L295.371,53.735 C290.424,53.735 286.421,49.738 286.421,44.792 C286.421,39.852 290.424,35.855 295.371,35.855 L313.272,35.855 C328.080,35.855 340.125,47.879 340.125,62.672 L340.125,313.067 C340.125,327.860 328.080,339.883 313.272,339.883 ZM241.667,89.514 C236.721,89.514 232.717,85.504 232.717,80.558 L232.717,53.735 L152.161,53.735 C147.213,53.735 143.210,49.738 143.210,44.792 C143.210,39.852 147.213,35.855 152.161,35.855 L232.717,35.855 L232.717,9.026 C232.717,4.073 236.721,0.089 241.667,0.089 C246.615,0.089 250.618,4.073 250.618,9.026 L250.618,80.558 C250.618,85.504 246.615,89.514 241.667,89.514 ZM221.913,163.671 C225.408,160.169 231.074,160.169 234.569,163.671 C238.065,167.154 238.065,172.812 234.569,176.308 L162.965,247.847 C161.216,249.594 158.926,250.458 156.637,250.458 C154.345,250.458 152.056,249.594 150.308,247.847 L105.554,203.131 C102.058,199.649 102.058,193.983 105.554,190.488 C109.051,186.999 114.714,186.999 118.211,190.488 L156.637,228.879 L221.913,163.671 Z'/%3E%3C/svg%3E");
}

.idx_bnr {
  padding: 56px 20px;
  background-color: #f3efea;
}
.idx_bnr .flex {
  justify-content: center;
}
.idx_bnr .bnr {
  margin: 14px;
  max-width: calc(50% - 28px);
  width: 27.25em;
}

.ft_top {
  padding: 99px 0 81px;
}

.ft_bottom {
  padding: 118px 0px 143px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url(../images/ft_bg.jpg);
  --color: #fff;
}

footer {
  position: relative;
}
footer p {
  margin-bottom: 0;
}
footer p,
footer a {
  text-decoration: none;
}
footer .ft_logo {
  padding: 0px 0 30px;
  max-width: 355px;
}
footer .ft_info {
  width: 49%;
  max-width: 545px;
}
footer .ft_info .des {
  margin-bottom: 2.4375em;
  letter-spacing: 0.1em;
}
footer .ft_info .des span {
  display: block;
}
footer .ft_right {
  width: 48%;
  max-width: 464px;
}
footer .ft_map {
  margin-top: 41px;
  height: 190px;
  filter: grayscale(1);
}

.ft_link {
  max-width: 997px;
}
.ft_link a {
  text-decoration: none;
}
.ft_link a span {
  display: inline-block;
}
@media only screen and (min-width: 769px) {
  .ft_link .link_list > div > ul {
    display: flex;
    flex-flow: column wrap;
    align-content: space-between;
  }
  .ft_link a span {
    display: block;
  }
  .ft_link a:hover {
    color: var(--color);
    text-decoration: underline;
    text-underline-position: under;
  }
  .ft_link a:hover span {
    text-decoration: underline;
    text-underline-position: under;
  }
  .ft_link .menu01 {
    width: 48.5%;
    max-width: 482px;
  }
  .ft_link .menu01 > ul {
    max-height: 21em;
  }
  .ft_link .menu01 li {
    min-width: 49%;
  }
  .ft_link .menu02 {
    max-width: 452px;
    width: 51.5%;
  }
  .ft_link .menu02 li {
    min-width: 45.5%;
  }
  .ft_link .menu02 > ul {
    max-height: 23em;
  }
  .ft_link .menu02 > ul > li:nth-child(n+3) {
    max-width: 20em;
  }
}
.ft_link .title {
  margin-bottom: 29px;
  padding-left: 0;
  font-size: 1.875em;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1;
  pointer-events: none;
  color: var(--color);
  font-family: var(--f-en);
}
.ft_link .title::before {
  display: none;
}
.ft_link ul:last-child {
  margin-bottom: 0;
}
.ft_link li {
  margin-bottom: 1em;
  letter-spacing: 0.1em;
  line-height: 1.6;
}
.ft_link a {
  display: table;
  position: relative;
  padding-left: 1.1em;
  color: inherit;
  font-size: 0.9375em;
  letter-spacing: 0.1em;
  color: var(--color);
  line-height: 1.6;
  text-underline-offset: 0.3em;
}
.ft_link a::before {
  position: absolute;
  left: 0;
  top: 0;
  content: "・";
  width: auto;
  height: auto;
}
.ft_link a:hover {
  opacity: 1;
}

.copyright {
  margin: 0 auto 0;
  color: #fff;
  padding: 20px 0px 20px;
  position: relative;
  z-index: 1;
}
.copyright .flex {
  align-items: center;
  justify-content: flex-start;
  min-height: 40px;
}
.copyright::before {
  position: absolute;
  content: "";
  display: block;
  z-index: -1;
  left: calc(50% - 50vw);
  top: 0;
  height: 100%;
  width: 100vw;
  background-color: #041a3d;
}
.copyright .textwidget {
  display: block;
  margin-top: 2px;
  line-height: 20px;
  padding-left: 19px;
  padding-bottom: 3px;
  margin-left: 23px;
  border-left: 1px solid rgba(206, 206, 206, 0.5);
  font-weight: 400;
  letter-spacing: 0.1em;
}
.copyright .textwidget p {
  margin-bottom: 0;
  font-size: 12px;
  line-height: inherit;
  letter-spacing: 0.1em;
}
.copyright .grits {
  margin-bottom: 0;
  line-height: 2.501;
}
.copyright .grits a {
  display: block;
}
.copyright .grits img {
  max-width: 158px;
}

@media only screen and (min-width: 769px) and (max-width: 1024px) {
  footer .ft_bnr {
    font-size: min(1em, 1.55vw);
  }
  footer .time_sheet {
    font-size: min(1em, 1.55vw);
  }
}
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                INDEX                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                Under                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/