@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::-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%);
}
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 {
  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: 0.6em;
}
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.25em;
  font-size: 1.6em;
  letter-spacing: 0.1em;
  line-height: 1.5;
  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);
  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;
}

/* 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: 1600px) {
  .pc_navi {
    padding-top: 1.25em;
    height: 12em;
  }
  .pc_navi .inner_big {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
}

@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: 1560px) {
  .topic_path .idx_topic_ttl {
    max-width: calc(100% - 9em);
  }
}
@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.3em;
  line-height: 1;
  position: relative;
  top: -0.07em;
}
.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: 1.125em 0 1em;
  font-weight: 500;
  transition: 0.3s all;
}
.TabPager li[data-index="03"] p {
  letter-spacing: 0.05em;
}
.TabPager li p {
  margin-bottom: 0;
  line-height: 1.5;
}
.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: 156px;
}
.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.title {
  padding: 0.5em 0;
  background-color: #fff;
  line-height: 1.5;
  border: 1px solid var(--main-color);
  text-align: center;
  height: auto;
  font-size: 1em;
  font-weight: 500;
  color: var(--main-color);
}
.fixed_banner p .tt {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  font-weight: 500;
  font-family: var(--f-en);
  line-height: 1.25;
  flex-direction: column;
  letter-spacing: 0;
}
.fixed_banner p .tt .sm1 {
  font-size: 0.84615em;
}
.fixed_banner p .tt .sm {
  display: block;
  font-size: 0.7692em;
}
.fixed_banner p .tt .st2 {
  letter-spacing: -0.02em;
}
.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 {
  margin-bottom: 0.5em;
  width: 1.75em;
  height: 1.75em;
  --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");
}
.fixed_banner .web {
  cursor: pointer;
}
.fixed_banner .web p {
  background-color: #fff;
}
.fixed_banner .web p .tt::before {
  margin-bottom: 0.5em;
  width: 1.9167em;
  height: 2.0083em;
  mask-image: unset;
  background: url(../images/ai_chat.png) no-repeat center/contain;
}
.fixed_banner .mail p {
  background-color: #0087ce;
}
.fixed_banner .mail p .tt {
  font-size: 1.3em;
  line-height: 1.125;
}
.fixed_banner .mail p .tt::before {
  margin-bottom: 0.5em;
  width: 3.25em;
  height: 2em;
  font-size: 0.875em;
  --mask: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg id='Layer_1' data-name='Layer 1' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 627.93'%3E%3Cpath d='M797.93,89.4c-3.61-18.17-11.66-34.79-22.91-48.52-2.37-2.99-4.85-5.67-7.54-8.35C747.56,12.49,719.59,0,689.03,0H110.97c-30.56,0-58.43,12.49-78.45,32.52-2.68,2.68-5.16,5.36-7.54,8.35-11.25,13.73-19.31,30.36-22.82,48.52-1.44,7.01-2.17,14.26-2.17,21.58v405.99c0,15.57,3.3,30.55,9.19,44.07,5.46,12.91,13.52,24.58,23.32,34.38,2.48,2.48,4.95,4.76,7.64,7.02,19.2,15.9,43.98,25.5,70.81,25.5h578.06c26.84,0,51.73-9.6,70.82-25.6,2.68-2.17,5.16-4.44,7.64-6.92,9.8-9.79,17.85-21.47,23.43-34.38v-.1c5.89-13.52,9.08-28.39,9.08-43.97V110.98c0-7.32-.71-14.57-2.06-21.58ZM72.67,72.67c9.91-9.9,23.23-15.9,38.3-15.9h578.06c15.07,0,28.5,6,38.3,15.9,1.75,1.76,3.4,3.73,4.86,5.68l-302.98,264.05c-8.36,7.32-18.68,10.94-29.21,10.94s-20.74-3.62-29.21-10.94L67.93,78.24c1.34-1.95,2.99-3.81,4.75-5.57ZM56.77,516.97V136.99l219.26,191.27-219.15,191.07c-.11-.72-.11-1.54-.11-2.37ZM689.03,571.15H110.97c-9.81,0-19-2.58-26.83-7.11l231.22-201.5,21.59,18.78c18.06,15.7,40.67,23.65,63.06,23.65s45.11-7.95,63.18-23.65l21.58-18.78,231.13,201.5c-7.85,4.53-17.03,7.11-26.85,7.11ZM743.23,516.97c0,.83,0,1.64-.11,2.37l-219.14-190.96,219.25-191.28v379.88Z'/%3E%3C/svg%3E");
}
.fixed_banner .web2 p {
  background-color: #123875;
}
.fixed_banner .web2 p .tt {
  font-size: 1.3em;
  line-height: 1.2;
}
.fixed_banner .web2 p .tt::before {
  margin-bottom: 0.35em;
  width: 1.6154em;
  height: 1.6154em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='21px' height='21px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M20.547,19.938 C20.547,20.526 20.047,21.001 19.430,21.001 L1.555,21.001 C0.938,21.001 0.438,20.526 0.438,19.938 L0.438,6.124 C0.438,5.540 1.570,4.374 2.188,4.374 L4.906,4.374 L4.906,1.050 C4.906,0.466 5.406,-0.011 6.023,-0.011 C6.640,-0.011 7.141,0.466 7.141,1.050 L7.141,4.374 L13.844,4.374 L13.844,1.050 C13.844,0.466 14.344,-0.011 14.961,-0.011 C15.578,-0.011 16.078,0.466 16.078,1.050 L16.078,4.374 L17.937,4.374 L18.813,4.374 C20.186,4.374 20.563,5.540 20.563,6.124 L20.547,19.938 ZM9.654,13.351 L7.651,11.447 C7.215,11.035 6.508,11.035 6.071,11.447 C5.635,11.862 5.635,12.533 6.071,12.949 L8.864,15.601 C9.074,15.803 9.358,15.914 9.654,15.914 C9.951,15.914 10.235,15.803 10.444,15.601 L14.913,11.357 C15.350,10.942 15.350,10.270 14.913,9.856 C14.477,9.439 13.770,9.439 13.333,9.856 L9.654,13.351 Z'/%3E%3C/svg%3E");
}
.fixed_banner .web3 p {
  background-color: #46a7c1;
}
.fixed_banner .web3 p .tt {
  font-size: 1.3em;
}
.fixed_banner .web3 p .tt::before {
  margin-bottom: 0.4em;
  width: 1.6154em;
  height: 1.6923em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='41px' height='44px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M39.020,27.071 L38.017,27.986 L36.640,29.246 L23.785,40.997 L18.734,36.379 L31.589,24.630 L32.967,23.371 L33.970,22.452 C35.366,21.184 37.625,21.184 39.020,22.452 C40.412,23.728 40.412,25.793 39.020,27.071 ZM22.504,29.971 L20.294,31.991 L12.614,39.009 C11.872,39.688 10.865,40.072 9.815,40.072 L3.345,40.072 C1.922,40.070 0.768,39.016 0.767,37.712 L0.767,10.444 L9.237,10.444 C10.660,10.442 11.814,9.390 11.815,8.086 L11.815,0.345 L29.861,0.345 C31.285,0.347 32.438,1.403 32.440,2.704 L32.440,18.976 C32.440,20.199 31.907,21.377 30.960,22.241 L22.504,29.971 ZM7.764,23.912 L15.867,23.912 C16.477,23.903 16.966,23.447 16.959,22.890 C16.953,22.341 16.467,21.897 15.866,21.890 L7.764,21.890 C7.154,21.900 6.666,22.360 6.676,22.915 C6.684,23.460 7.167,23.902 7.764,23.912 ZM25.442,13.811 L7.764,13.811 C7.155,13.809 6.660,14.263 6.659,14.817 L6.659,14.819 C6.658,15.379 7.152,15.829 7.761,15.832 C7.762,15.832 7.763,15.832 7.764,15.832 L25.442,15.832 C26.052,15.832 26.547,15.379 26.547,14.819 C26.547,14.263 26.052,13.811 25.442,13.811 ZM9.237,8.424 L1.422,8.424 C1.455,8.388 1.489,8.358 1.525,8.324 L9.495,1.039 C9.530,1.005 9.567,0.973 9.606,0.944 L9.606,8.086 C9.602,8.273 9.439,8.423 9.237,8.424 ZM17.398,37.676 L22.365,42.219 C22.329,42.235 16.746,43.939 16.746,43.939 C16.552,43.997 16.342,43.997 16.148,43.939 C15.633,43.788 15.350,43.285 15.515,42.815 C15.515,42.815 17.380,37.710 17.398,37.676 Z'/%3E%3C/svg%3E");
}

@media only screen and (min-width: 769px) {
  .fixed_banner {
    font-size: 10px;
    --size: 7.2em;
  }
  .fixed_banner.st2 {
    right: auto;
    left: 0;
  }
  .fixed_banner.st2 .tel:hover {
    transform: translateX(calc(0em + var(--w_tel)));
  }
  .fixed_banner.st2 .tel .ov {
    right: var(--size);
    left: auto;
  }
  .fixed_banner.st2 .tel .ov::before {
    right: 0;
    left: auto;
  }
  .fixed_banner.st2 p {
    border-radius: 0px 10px 10px 0px;
  }
  .fixed_banner.st2 p.title {
    border-right-width: 1px;
    border-left-width: 0;
  }
  .fixed_banner > div {
    width: var(--size);
    height: var(--size);
    margin-bottom: 2px;
  }
  .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 p.title {
    margin-bottom: 1em;
    border-right-width: 0;
  }
  .fixed_banner p.title span {
    font-size: 1.125em;
  }
  .fixed_banner .tel {
    --w_tel: 20em;
    transform: translateX(calc(-var(--size) - var(--w_tel)));
    transition: all 0.3s ease;
  }
  .fixed_banner .tel p {
    box-shadow: -15px 0px 40px 0px rgba(42, 68, 97, 0.2);
  }
  .fixed_banner .tel p .tt::before {
    margin-bottom: 0.3571428571em;
    margin-top: 0.25em;
    width: 1.5714em;
    height: 1.5714em;
  }
  .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 .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 .web {
    height: unset;
  }
  .fixed_banner .web:hover {
    opacity: 0.8;
  }
  .fixed_banner .web p {
    height: unset;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--main-color);
    border-right: 0;
    padding-top: 1.45em;
    box-shadow: -15px 0px 40px 0px rgba(42, 68, 97, 0.2);
  }
  .fixed_banner .web 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;
    padding-top: 46px;
    position: relative;
    font-weight: 500;
    letter-spacing: 0.1em;
    padding-bottom: 47px;
    text-transform: uppercase;
  }
  .fixed_banner .web p .tt::before {
    width: 1.6875em;
    height: 1.9375em;
    top: 0;
    left: calc(50% - 0.875em);
    position: absolute;
  }
  .fixed_banner .web 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 .web2:hover {
    opacity: 1;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1440px) {
  .totop {
    bottom: 70px;
  }
  .totop .icon {
    width: 60px;
    height: 60px;
  }
}
@media only screen and (min-width: 769px) and (max-height: 840px), (min-width: 769px) and (max-width: 1440px) {
  .fixed_banner {
    font-size: min(0.75vw, 8.75px, 1.3vh);
    top: calc(50% - 40em);
  }
}
@media only screen and (max-height: 730px) and (min-width: 769px) {
  .fixed_banner {
    top: calc(3em + 2vh);
  }
}
@media only screen and (max-height: 730px) and (min-width: 769px) {
  .totop {
    bottom: 70px;
    right: 90px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .fixed_banner {
    font-size: min(0.8vw, 7.5px);
    top: calc(10em + 3vh);
  }
  .totop .icon {
    width: 50px;
    height: 50px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 992px) {
  .fixed_banner {
    top: calc(21em + 2vh);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1440px) and (max-height: 600px) {
  .totop {
    right: 90px;
  }
  .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 */