@charset "UTF-8";
:root {
  --f-notosans: "Noto Sans JP", sans-serif;
  --f-jp: "Noto Sans JP", sans-serif;
  --f-en: "Poppins", sans-serif;
  --f-barlow: "Barlow", sans-serif;
  --main-color: #0087ce;
  --clr1: #333;
  --clr2: #ccc;
  --ttl_size: 28px;
  --wrapper: 100px;
}

/*==========================================================================*/
/*//////////////////////////////////////////////////////////////////////////*/
/*//////                                                              //////*/
/*//////  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);
}
body::-webkit-scrollbar {
  display: block;
  width: 10px;
  height: 10px;
}
body::-webkit-scrollbar-track {
  border-radius: 10px;
  background: #fff;
  box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
}
body::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background: linear-gradient(to bottom, var(--clr2) 0%, var(--main-color) 50%, var(--clr2) 100%);
  box-shadow: inset 0 0 6px #fff;
}
body::-webkit-scrollbar-thumb:window-inactive {
  background: linear-gradient(to bottom, var(--clr2) 0%, var(--main-color) 50%, var(--clr2) 100%);
}

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 {
  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.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: 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;
}

.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 {
  min-height: 100vh;
}
.TabContainer .TabContent {
  position: relative;
  z-index: 2;
  overflow: hidden;
}
.TabContainer .TabContent .content {
  transition: all 0.3s ease-in-out;
}
.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;
  width: 90%;
  margin: 0px auto;
  max-width: 1118px;
}
.TabContainer .TabPager > div {
  background-color: #a4c7ce;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  margin: 0;
  padding: 20px 20px;
  width: calc(50% - 0px);
  transition: all 0.3s ease;
  cursor: pointer;
  color: #ffffff;
  border-radius: 10px 10px 0px 0px;
}
.TabContainer .TabPager > div p {
  margin: 0;
  font-size: 1.5em;
  line-height: 2;
  border-bottom: 1px solid transparent;
}
.TabContainer .TabPager > div.active {
  background-color: #fff;
  z-index: 1;
  color: #3d9e81;
}
.TabContainer .TabPager > div.active p {
  border-bottom: 1px solid;
}

.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;
}

.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;
}

ul {
  line-height: 2.25;
}

.tel_click {
  display: table;
  text-decoration: none;
}
.tel_click .icon {
  display: flex;
  align-items: center;
  font-weight: 700;
  color: var(--main-color);
  letter-spacing: 0.05em;
  font-size: 1.5em;
}
.tel_click .icon::before {
  content: "";
  display: block;
  margin-right: 0.9em;
  width: 1.125em;
  height: 1.125em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 210 210' %3E%3Cpath d='M209.897,156.496 L209.897,197.732 C209.899,203.879 205.161,208.944 199.051,209.367 C193.955,209.737 189.793,209.912 186.574,209.912 C83.524,209.912 -0.003,126.370 -0.003,23.316 C-0.003,20.104 0.172,15.944 0.533,10.847 C0.962,4.732 6.046,-0.005 12.172,-0.005 L53.405,-0.005 C56.402,-0.005 58.912,2.260 59.212,5.246 C59.480,7.934 59.725,10.055 59.959,11.681 C62.276,27.857 67.024,43.568 74.045,58.343 C75.152,60.681 74.430,63.471 72.331,64.953 L47.165,82.941 C62.551,118.792 91.122,147.374 126.974,162.746 L144.932,137.623 C146.447,135.502 149.259,134.782 151.613,135.894 C166.366,142.916 182.091,147.641 198.258,149.948 C199.880,150.185 202.013,150.432 204.673,150.679 C207.649,151.008 209.912,153.500 209.908,156.496 L209.897,156.496 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);
}

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

.btn a {
  position: relative;
  color: var(--main-color);
  text-decoration: none;
  font-family: var(--f-jp);
}

.btn-group {
  font-size: 0.625em;
}
.btn-group .btn {
  font-size: 1em;
}
.btn-group .btn.style01 {
  width: 100%;
  max-width: 24em;
  overflow: hidden;
}
.btn-group .btn.style01 a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.75em;
  padding: 0.5em 0.15em;
  font-size: 1.6em;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s;
  border-radius: 5px;
  background-color: rgba(0, 0, 0, 0.16);
  color: #fff;
}
.btn-group .btn.style01 a.active {
  color: var(--main-color);
  pointer-events: none;
  background-color: #fff;
}
.btn-group .btn.style01 a span {
  display: inline-block;
}
.btn-group .btn.style01 a:hover {
  opacity: 1;
}
@media only screen and (min-width: 769px) {
  .btn-group .btn.style01 a:not(.active):hover {
    background-color: rgba(0, 0, 0, 0.36);
  }
  .btn-group .btn.style01 a:not(.active):hover::after {
    right: 0.5em;
  }
}
.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;
}

.br_auto {
  display: inline-block;
}
@media only screen and (max-width: 319px) {
  .br_auto {
    display: inline;
  }
}

.br_1280 {
  display: none;
}

@media only screen and (min-width: 769px) and (max-width: 1280px) {
  .br_1280 {
    display: block;
  }
  .dis_1280 {
    display: none;
  }
}
.br_1170 {
  display: none;
}

@media only screen and (min-width: 769px) and (max-width: 1170px) {
  .br_1170 {
    display: block;
  }
  .dis_1170 {
    display: none;
  }
}
.br_992 {
  display: none;
}

@media only screen and (min-width: 769px) and (max-width: 992px) {
  .br_992 {
    display: block;
  }
  .dis_992 {
    display: none;
  }
}
.br_769 {
  display: none;
}

@media only screen and (min-width: 769px) and (max-width: 992px) {
  .br_769 {
    display: block;
  }
  .dis_769 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_769 {
    display: none;
  }
}
.br_750 {
  display: none;
}

@media only screen and (max-width: 750px) {
  .br_750 {
    display: block;
  }
  .in_750 {
    display: inline;
  }
  .dis_750 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_750 {
    display: none;
  }
}
.br_640 {
  display: none;
}

@media only screen and (max-width: 640px) {
  .br_640 {
    display: block;
  }
  .in_640 {
    display: inline;
  }
  .dis_640 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_640 {
    display: none;
  }
}
.br_520 {
  display: none;
}

@media only screen and (max-width: 520px) {
  .br_520 {
    display: block;
  }
  .in_520 {
    display: inline;
  }
  .dis_520 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_520 {
    display: none;
  }
}
.br_480 {
  display: none;
}

@media only screen and (max-width: 480px) {
  .br_480 {
    display: block;
  }
  .in_480 {
    display: inline;
  }
  .dis_480 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_480 {
    display: none;
  }
}
.br_430 {
  display: none;
}

@media only screen and (max-width: 430px) {
  .br_430 {
    display: block;
  }
  .in_430 {
    display: inline;
  }
  .dis_430 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_430 {
    display: none;
  }
}
.br_390 {
  display: none;
}

@media only screen and (max-width: 390px) {
  .br_390 {
    display: block;
  }
  .in_390 {
    display: inline;
  }
  .dis_390 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_390 {
    display: none;
  }
}
.br_375 {
  display: none;
}

@media only screen and (max-width: 375px) {
  .br_375 {
    display: block;
  }
  .in_375 {
    display: inline;
  }
  .dis_375 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_375 {
    display: none;
  }
}
.br_360 {
  display: none;
}

@media only screen and (max-width: 360px) {
  .br_360 {
    display: block;
  }
  .in_360 {
    display: inline;
  }
  .dis_360 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_360 {
    display: none;
  }
}
.br_320 {
  display: none;
}

@media only screen and (max-width: 320px) {
  .br_320 {
    display: block;
  }
  .in_320 {
    display: inline;
  }
  .dis_320 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_320 {
    display: none;
  }
}
/* 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: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--wrapper);
  z-index: 20;
}

@media only screen and (min-width: 769px) {
  header.active .logo,
  .ovh header .logo {
    position: fixed;
    min-width: 100px;
    width: 40%;
    max-width: 26.1875em;
    font-size: 0.75em;
  }
  header.active .logo a,
  .ovh header .logo a {
    padding: 20px;
    border-bottom-right-radius: 20px;
    height: 8em;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  header.active .logo a img,
  .ovh header .logo a img {
    max-width: 19.4375em;
    margin: 0px auto;
    height: auto;
    max-height: 100%;
  }
  header.active .logo a .main,
  .ovh header .logo a .main {
    display: none;
  }
  header.active .logo a .ov,
  .ovh header .logo a .ov {
    display: block;
  }
}
.header_top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
  justify-content: space-between;
  margin: 0 auto;
  height: 100%;
  transition: all 0.3s ease-in-out;
}

.logo {
  width: 25%;
  max-width: 262px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1;
}
.logo a {
  background-color: #fff;
  border-radius: 0 0 40px 0;
  padding: 3.1875em 2.75em 3.125em 2.8125em;
  display: block;
  width: 100%;
  text-align: center;
}
.logo img {
  width: auto;
}
.logo .ov {
  display: none;
}
@media only screen and (min-width: 769px) and (max-width: 1600px) {
  .logo {
    width: 16%;
  }
  .logo a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    border-bottom-right-radius: 20px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .logo {
    width: 16%;
  }
}

.right_head {
  max-width: 100%;
  width: 100%;
}

.pc_navi {
  width: 100%;
  padding-top: 62px;
  position: relative;
  overflow: hidden;
}
@media only screen and (min-width: 769px) and (max-width: 1840px) {
  .pc_navi .inner_big {
    max-width: 100%;
    width: 83%;
    margin-left: auto;
    margin-right: 0;
  }
}
@media only screen and (min-width: 769px) and (max-width: 992px) {
  .pc_navi .inner_big {
    padding-left: 15px;
    padding-right: 15px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1600px) {
  .pc_navi {
    padding-top: 1.25em;
  }
}

@media only screen and (min-width: 2000px) {
  .pc_navi .inner_big {
    max-width: 100%;
    width: calc(100% - 300px);
    margin-left: auto;
    margin-right: 0;
  }
}
.topic_path {
  line-height: 1.45;
  letter-spacing: 0.05em;
  position: relative;
  z-index: 1;
  padding: 0.1875em 0 0.3125em;
}
.topic_path::after, .topic_path::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  background-color: #dedede;
  width: 100vw;
  height: 1px;
  left: 0;
  top: 0;
}
.topic_path::after {
  top: unset;
  bottom: 0;
}
.topic_path ul {
  display: flex;
  flex-wrap: wrap;
  padding: 0.35em 0em 0.45em 0.125em;
}
.topic_path ul::after {
  content: "";
  display: block;
  clear: both;
}
.topic_path ul li {
  line-height: 2;
}
.topic_path .idx_topic_ttl {
  max-width: calc(100% - 8em);
}
.topic_path a {
  text-decoration: none;
  color: var(--clr1);
  transition: 0.3s all;
}
.topic_path a:hover {
  opacity: 1;
}
@media only screen and (min-width: 769px) {
  .topic_path a:hover {
    text-decoration: underline;
    color: var(--main-color);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .topic_path ul {
    padding: 0.5em 0px;
  }
  .topic_path li {
    letter-spacing: 0;
    font-size: 13px;
    line-height: 1.45;
  }
}
.topic_path span {
  display: inline-block;
  padding: 0 0.5625em 0 0.25em;
  line-height: 1;
  position: relative;
  top: -0.07em;
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .topic_path span {
    top: -0.2em;
  }
}
.topic_path .home a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.topic_path .home a::before {
  content: "";
  mask-image: url(../images/icon_home.svg);
  mask-repeat: no-repeat;
  mask-size: contain;
  width: 1.25em;
  height: 1.1875em;
  background-color: var(--clr1);
  margin: 0em 0.75em 0 0.3125em;
  transition: 0.3s all;
}
@media only screen and (min-width: 769px) {
  .topic_path .home a:hover::before {
    background-color: var(--main-color);
  }
}

.TabPager {
  display: flex;
  flex-wrap: wrap;
  margin-top: 1.5em;
  margin-left: 0.4375em;
}
.TabPager li {
  position: relative;
  cursor: pointer;
  max-width: 240px;
  width: calc(33.33% - 0.75em);
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  color: var(--main-color);
  border-radius: 5px;
  border: 1px solid var(--main-color);
  background-color: #fff;
  padding: 10px 0 9px;
  font-weight: 500;
  transition: 0.3s all;
}
.TabPager li.mw260 {
  max-width: 260px;
}
.TabPager li[data-index="03"] p {
  letter-spacing: 0.05em;
}
.TabPager li p {
  margin-bottom: 0;
  line-height: 1.2;
}
.TabPager li:not(:first-child) {
  margin-left: 12px;
}
.TabPager li.active {
  background-color: var(--main-color);
  color: #fff;
}
@media only screen and (min-width: 769px) {
  .TabPager li:hover {
    background-color: var(--main-color);
    color: #fff;
  }
}

.idx_gallery .list {
  display: flex;
}
.idx_gallery .list .img {
  padding-top: 2em;
}
.idx_gallery .list .img img {
  overflow: hidden;
  border-radius: 0.625em;
  margin: 0 6px;
}

@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: 30px;
  right: 10px;
}
.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;
  border-radius: 50%;
  border: 1px solid var(--main-color);
}

@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: 20;
  transition: right 0.3s ease-in-out;
  top: 266px;
}
.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;
  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%;
  font-weight: 500;
  font-family: var(--f-en);
  line-height: 1.33333;
  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: auto 100%;
  -webkit-mask-size: auto 100%;
  mask-position: center;
  -webkit-mask-position: center;
  background-color: #fff;
}
.fixed_banner .tel p {
  background-color: #0087ce;
}
.fixed_banner .tel p .tt::before {
  width: 1.5385em;
  height: 1.6154em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 21' %3E%3Cpath d='M19.830,15.361 L19.830,19.235 C19.830,19.811 19.387,20.286 18.816,20.326 C18.339,20.360 17.950,20.377 17.649,20.377 C8.011,20.377 0.199,12.534 0.199,2.860 C0.199,2.556 0.215,2.167 0.249,1.689 C0.289,1.116 0.765,0.670 1.338,0.670 L5.194,0.670 C5.474,0.670 5.709,0.882 5.737,1.163 C5.762,1.413 5.785,1.615 5.807,1.766 C6.024,3.285 6.468,4.760 7.124,6.147 C7.228,6.366 7.160,6.628 6.964,6.767 L4.610,8.456 C6.049,11.823 8.722,14.503 12.075,15.948 L13.754,13.591 C13.896,13.392 14.159,13.321 14.379,13.427 C15.759,14.087 17.230,14.530 18.742,14.746 C18.893,14.770 19.093,14.791 19.341,14.817 C19.620,14.845 19.831,15.082 19.831,15.361 L19.830,15.361 Z'/%3E%3C/svg%3E");
}
.fixed_banner .chatbot {
  cursor: pointer;
}
.fixed_banner .chatbot p {
  background-color: #fff;
}
.fixed_banner .chatbot p .tt::before {
  width: 1.9167em;
  height: 2.0083em;
  mask-image: unset;
  background: url(../images/ai_chat_v2.png) no-repeat center/contain;
}
.fixed_banner .web p {
  background-color: #8cb597;
}
.fixed_banner .web p .tt::before {
  width: 2em;
  height: 2em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' %3E%3Cpath d='M19.095,19.008 C19.095,19.563 18.622,20.012 18.040,20.012 L1.158,20.012 C0.575,20.012 0.103,19.563 0.103,19.008 L0.103,5.963 C0.103,5.410 1.173,4.309 1.756,4.309 L4.323,4.309 L4.323,1.171 C4.323,0.618 4.796,0.168 5.379,0.168 C5.961,0.168 6.434,0.618 6.434,1.171 L6.434,4.309 L12.764,4.309 L12.764,1.171 C12.764,0.618 13.237,0.168 13.819,0.168 C14.402,0.168 14.874,0.618 14.874,1.171 L14.874,4.309 L16.630,4.309 L17.456,4.309 C18.754,4.309 19.109,5.410 19.109,5.963 L19.095,19.008 ZM8.808,12.787 L6.916,10.989 C6.504,10.599 5.836,10.599 5.424,10.989 C5.012,11.381 5.012,12.015 5.424,12.407 L8.062,14.912 C8.259,15.102 8.528,15.207 8.808,15.207 C9.087,15.207 9.356,15.102 9.554,14.912 L13.774,10.904 C14.186,10.513 14.186,9.878 13.774,9.487 C13.362,9.093 12.694,9.093 12.282,9.487 L8.808,12.787 Z'/%3E%3C/svg%3E");
}
.fixed_banner .mail p {
  background-color: #c2a05e;
}
.fixed_banner .mail p .tt::before {
  width: 1.7273em;
  height: 1.8182em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 19 20' %3E%3Cpath d='M17.901,12.306 L17.445,12.723 L16.820,13.295 L10.980,18.633 L8.686,16.535 L14.526,11.198 L15.152,10.626 L15.607,10.208 C16.241,9.632 17.267,9.632 17.901,10.208 C18.533,10.789 18.533,11.726 17.901,12.306 ZM10.398,13.625 L9.395,14.542 L5.906,17.730 C5.569,18.038 5.112,18.213 4.635,18.213 L1.695,18.213 C1.049,18.211 0.525,17.733 0.524,17.141 L0.524,4.754 L4.372,4.754 C5.019,4.753 5.542,4.275 5.543,3.683 L5.543,0.166 L13.741,0.166 C14.387,0.168 14.911,0.647 14.912,1.238 L14.912,8.630 C14.912,9.185 14.670,9.720 14.240,10.113 L10.398,13.625 ZM3.703,10.871 L7.383,10.871 C7.661,10.868 7.883,10.661 7.880,10.408 C7.877,10.159 7.656,9.956 7.383,9.954 L3.703,9.954 C3.426,9.958 3.204,10.166 3.209,10.420 C3.212,10.667 3.432,10.867 3.703,10.871 ZM11.733,6.284 L3.703,6.284 C3.426,6.283 3.201,6.489 3.201,6.741 L3.201,6.742 C3.201,6.996 3.425,7.200 3.702,7.202 C3.702,7.202 3.703,7.202 3.703,7.202 L11.733,7.202 C12.010,7.202 12.235,6.996 12.235,6.742 C12.235,6.489 12.010,6.284 11.733,6.284 ZM4.372,3.837 L0.822,3.837 C0.837,3.821 0.852,3.806 0.869,3.791 L4.489,0.482 C4.505,0.467 4.522,0.452 4.540,0.439 L4.540,3.683 C4.538,3.768 4.464,3.835 4.372,3.837 ZM10.336,19.188 C10.319,19.196 7.783,19.969 7.783,19.969 C7.695,19.995 7.600,19.995 7.511,19.969 C7.278,19.901 7.149,19.672 7.224,19.459 C7.224,19.459 8.071,17.140 8.079,17.124 L10.336,19.188 Z'/%3E%3C/svg%3E");
}

@media only screen and (min-width: 769px) {
  .fixed_banner {
    font-size: 10px;
    --size: 7.2em;
  }
  .fixed_banner > div {
    width: var(--size);
    height: var(--size);
    margin-bottom: 0.3em;
  }
  .fixed_banner p {
    width: var(--size);
    height: var(--size);
    border-radius: 10px 0 0 10px;
  }
  .fixed_banner p .tt {
    font-size: 1.3em;
    letter-spacing: 0.1em;
  }
  .fixed_banner .tel {
    --w_tel: 20em;
    transform: translateX(calc(-var(--size) - var(--w_tel)));
    transition: all 0.3s ease;
  }
  .fixed_banner .tel:hover {
    transform: translateX(calc(0em - var(--w_tel)));
  }
  .fixed_banner .tel:hover a {
    width: calc(var(--size) + var(--w_tel));
  }
  .fixed_banner .tel p .tt::before {
    margin-bottom: 0.4615em;
  }
  .fixed_banner .tel .ov {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: var(--size);
    height: 100%;
    top: 0;
    width: var(--w_tel);
    background-color: #0087ce;
  }
  .fixed_banner .tel .ov::before {
    content: "";
    display: block;
    position: absolute;
    transition: all 0.3s;
    left: 0;
    top: 10%;
    width: 1px;
    height: 80%;
    background-color: #fff;
    opacity: 0.5;
  }
  .fixed_banner .tel .ov .text {
    font-size: 2em;
    letter-spacing: 0.1em;
  }
  .fixed_banner .chatbot {
    height: unset;
  }
  .fixed_banner .chatbot:hover {
    opacity: 0.8;
  }
  .fixed_banner .chatbot p {
    height: unset;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--main-color);
    border-right: 0;
    padding-top: 15px;
  }
  .fixed_banner .chatbot p .tt {
    height: unset;
    color: var(--main-color);
    writing-mode: vertical-rl;
    font-size: 1.6em;
    letter-spacing: 0.1em;
    white-space: nowrap;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    font-weight: 500;
    letter-spacing: 0.1em;
    padding-top: 2.875em;
    padding-bottom: 2.875em;
    text-transform: uppercase;
  }
  .fixed_banner .chatbot p .tt::before {
    width: 1.6875em;
    height: 1.9375em;
    top: 0;
    left: calc(50% - 0.875em);
    position: absolute;
  }
  .fixed_banner .chatbot p .tt::after {
    content: "";
    display: block;
    position: absolute;
    transition: all 0.3s;
    background: url(../images/ai_arr.png) no-repeat center/contain;
    width: 1.25em;
    height: 1.25em;
    left: calc(50% - 0.625em);
    bottom: 0.875em;
  }
  .fixed_banner .mail p .tt {
    font-size: 1.1em;
    line-height: 1.4545454545;
  }
  .fixed_banner .mail p .tt::before {
    margin-bottom: 0.3636em;
  }
  .fixed_banner .web p .tt {
    font-size: 1em;
  }
  .fixed_banner .web p .tt::before {
    margin-bottom: 0.5em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1440px) {
  .totop .icon {
    width: 60px;
    height: 60px;
  }
}
@media only screen and (min-width: 769px) and (max-height: 830px), (min-width: 769px) and (max-width: 1560px) {
  .fixed_banner {
    font-size: 8.75px;
    top: calc(50% - 15em);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .fixed_banner {
    font-size: 8px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) and (max-height: 600px) {
  .totop .icon {
    width: 50px;
    height: 50px;
  }
}
footer {
  padding: 39px 55px;
  position: relative;
}
footer p {
  margin-bottom: 0;
}
footer .ft_logo {
  font-size: min(1em, 3vw);
  max-width: 17.375em;
}
footer .menu a {
  margin-top: 0.15em;
  color: var(--clr1);
  text-decoration: none;
  letter-spacing: 0;
  display: flex;
  align-items: center;
}
footer .menu a::before {
  content: "";
  display: block;
  width: 1.25em;
  height: 19px;
  margin-right: 0.75em;
  background-size: 100% auto;
  background-repeat: no-repeat;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='201px' height='190px'%3E%3Cpath fill-rule='evenodd' fill='rgb(51, 51, 51)' d='M198.516,88.399 C204.427,99.630 191.489,111.053 181.445,103.431 L104.697,25.036 C101.525,22.539 98.448,22.559 95.302,25.036 L18.334,103.623 C10.910,108.667 2.756,104.846 -0.001,96.647 L-0.001,91.472 C1.144,89.490 1.842,87.337 3.505,85.669 L79.481,8.083 C91.269,-2.693 108.353,-2.653 120.317,7.881 C128.298,14.907 135.272,24.187 143.358,31.232 L143.358,17.868 C143.358,13.764 148.316,8.467 152.240,7.800 C160.167,6.405 165.807,11.510 166.419,19.445 C167.299,30.858 165.667,43.363 166.486,54.887 C176.905,66.311 188.513,76.632 198.516,88.399 ZM29.286,115.592 L96.473,46.992 C98.024,45.638 100.181,45.163 102.066,46.082 C125.433,68.615 147.732,92.533 170.713,115.592 L172.081,117.795 L172.283,169.877 C172.889,178.186 162.959,190.004 154.882,190.004 L118.749,190.004 L118.749,138.347 C118.749,138.296 118.204,137.750 118.163,137.750 L81.835,137.750 C81.794,137.750 81.249,138.296 81.249,138.347 L81.249,190.004 L45.116,190.004 C37.288,190.004 27.535,178.692 27.719,170.675 L27.917,117.795 L29.286,115.592 Z'/%3E%3C/svg%3E");
  -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(--clr1);
  transition: all 0.3s;
}
footer .menu a:hover {
  color: var(--main-color);
}
footer .menu a:hover::before {
  background-color: var(--main-color);
}
footer .ft_info .des {
  margin-bottom: 26px;
  font-size: 14px;
  letter-spacing: 0.1em;
}
footer .ft_link {
  width: 50%;
}
.ft_link a {
  text-decoration: none;
}
@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 .link_list > div > ul li {
    width: 50%;
  }
  .ft_link .menu01 {
    width: 100%;
  }
  .ft_link .menu01 > ul {
    max-height: 13em;
  }
  .ft_link .menu02 {
    margin-top: 2em;
    width: 100%;
  }
  .ft_link .menu02 > ul {
    max-height: 10em;
  }
  .ft_link .menu02 > ul > li:nth-child(n+3) {
    max-width: 20em;
  }
}
.ft_link .title {
  margin-bottom: 28px;
  padding-left: 0;
  font-size: calc(var(--ttl_size) + 4px);
  font-weight: 400;
  letter-spacing: 0.2em;
  line-height: 1;
  pointer-events: none;
  font-family: var(--f-en);
}
.ft_link .title::before {
  display: none;
}
.ft_link ul:last-child {
  margin-bottom: 0;
}
.ft_link li {
  margin-bottom: 1.15em;
  letter-spacing: 0.1em;
  line-height: 1.6;
}
.ft_link a {
  display: table;
  position: relative;
  padding-left: 0em;
  color: inherit;
  font-size: 0.9375em;
  letter-spacing: 0.05em;
  color: var(--clr1);
  line-height: 1.6;
}
.ft_link a::before {
  content: "・";
  margin-left: -0.35em;
  border-radius: 100%;
  width: auto;
  height: auto;
}
.ft_link a:hover {
  opacity: 1;
}

.copyright {
  margin: 0 auto 0;
  color: #fff;
  padding: 17px 0px 23px;
  position: relative;
  z-index: 1;
}
.copyright .flex {
  align-items: center;
  justify-content: flex-start;
  min-height: 40px;
}
.copyright .inner_big {
  max-width: 1135px;
}
.copyright::before {
  position: absolute;
  content: "";
  display: block;
  z-index: -1;
  left: calc(50% - 50vw);
  top: 0;
  height: 100%;
  width: 100vw;
  background-color: var(--main-color);
}
.copyright .textwidget {
  display: block;
  margin-top: 2px;
  line-height: 20px;
  padding-left: 19px;
  padding-bottom: 3px;
  margin-left: 19px;
  border-left: 1px solid #cecece;
  font-weight: 400;
  letter-spacing: 0.1em;
}
.copyright .textwidget p {
  margin-bottom: 0;
  font-size: 13px;
  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: 159px;
}

/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                INDEX                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                Under                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/

/*# sourceMappingURL=style.css.map */
