@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: 22em;
  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;
  }
}

@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 1.05em;
  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: 220px;
  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;
}
.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;
  box-shadow: -15px 0px 40px 0px rgba(42, 68, 97, 0.2);
}
.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.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 {
  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 .ai_chat {
  cursor: pointer;
}
.fixed_banner .ai_chat p {
  background-color: #c69f61;
}
.fixed_banner .ai_chat p .tt::before {
  margin-bottom: 0.5em;
  width: 1.9167em;
  height: 2.0083em;
  mask-image: unset;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='25px' height='23px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M17.467,23.000 L7.532,23.000 C3.387,23.000 -0.000,19.560 -0.000,15.350 C-0.000,11.139 3.387,7.700 7.532,7.700 L17.467,7.700 C21.612,7.700 24.999,11.139 24.999,15.350 C24.999,19.560 21.612,23.000 17.467,23.000 ZM17.467,10.697 L7.532,10.697 C5.016,10.697 2.935,12.794 2.935,15.350 C2.935,17.905 5.016,20.002 7.532,20.002 L17.467,20.002 C19.983,20.002 22.048,17.905 22.048,15.350 C22.048,12.794 19.983,10.697 17.467,10.697 ZM17.596,15.988 C16.806,15.988 16.161,15.333 16.161,14.531 C16.161,13.711 16.806,13.073 17.596,13.073 C18.387,13.073 19.032,13.711 19.032,14.531 C19.032,15.333 18.387,15.988 17.596,15.988 ZM16.354,17.545 C16.354,17.856 16.096,18.118 15.774,18.118 L9.209,18.118 C8.903,18.118 8.645,17.856 8.645,17.545 C8.645,17.217 8.903,16.955 9.209,16.955 L15.774,16.955 C16.096,16.955 16.354,17.217 16.354,17.545 ZM7.403,15.988 C6.596,15.988 5.967,15.333 5.967,14.531 C5.967,13.711 6.596,13.073 7.403,13.073 C8.193,13.073 8.838,13.711 8.838,14.531 C8.838,15.333 8.193,15.988 7.403,15.988 ZM9.306,5.963 L15.693,5.963 C16.371,5.963 16.919,6.520 16.919,7.208 L8.080,7.208 C8.080,6.520 8.629,5.963 9.306,5.963 ZM12.1000,2.834 L12.1000,5.471 L11.1000,5.471 L11.1000,2.834 C11.451,2.621 11.064,2.080 11.064,1.458 C11.064,0.655 11.709,-0.000 12.500,-0.000 C13.290,-0.000 13.935,0.655 13.935,1.458 C13.935,2.080 13.548,2.621 12.1000,2.834 Z'/%3E%3C/svg%3E") no-repeat center/contain;
}
.fixed_banner .mail p {
  background-color: #5ac6d2;
}
.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 .web1 p {
  background-color: #4aa4de;
}
.fixed_banner .web1 p .tt::before {
  margin-bottom: 0.5em;
  width: 1.9167em;
  height: 2.0083em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='26px' height='26px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M24.828,24.706 C24.330,25.203 23.654,25.483 22.950,25.483 L3.481,25.483 C2.777,25.483 2.101,25.203 1.604,24.706 C1.106,24.208 0.826,23.533 0.826,22.828 L0.826,9.555 L25.605,9.555 L25.605,22.828 C25.605,23.533 25.326,24.208 24.828,24.706 ZM18.504,13.692 C18.468,13.580 18.410,13.477 18.333,13.386 C18.256,13.295 18.162,13.222 18.056,13.170 C17.951,13.117 17.836,13.088 17.718,13.079 C17.600,13.071 17.482,13.088 17.370,13.126 C17.258,13.165 17.156,13.226 17.068,13.304 L11.493,18.083 L9.416,16.007 C9.249,15.845 9.026,15.757 8.794,15.758 C8.562,15.761 8.340,15.853 8.176,16.018 C8.012,16.181 7.919,16.404 7.917,16.635 C7.915,16.867 8.004,17.092 8.165,17.259 L10.820,19.914 C10.978,20.072 11.189,20.163 11.411,20.173 C11.634,20.180 11.852,20.106 12.021,19.959 L18.216,14.650 L18.218,14.648 C18.310,14.573 18.386,14.482 18.441,14.378 C18.497,14.274 18.531,14.160 18.542,14.041 C18.552,13.924 18.539,13.806 18.504,13.692 ZM0.826,5.129 C0.826,4.425 1.106,3.750 1.604,3.250 C2.101,2.753 2.777,2.474 3.481,2.474 L7.021,2.474 L7.021,1.588 C7.021,1.354 7.114,1.130 7.280,0.963 C7.446,0.798 7.671,0.703 7.906,0.703 C8.140,0.703 8.366,0.798 8.531,0.963 C8.697,1.130 8.791,1.354 8.791,1.588 L8.791,2.474 L17.641,2.474 L17.641,1.588 C17.641,1.354 17.734,1.130 17.900,0.963 C18.066,0.798 18.291,0.703 18.525,0.703 C18.760,0.703 18.985,0.798 19.151,0.963 C19.317,1.130 19.410,1.354 19.410,1.588 L19.410,2.474 L22.950,2.474 C23.654,2.474 24.330,2.753 24.828,3.250 C25.326,3.750 25.605,4.425 25.605,5.129 L25.605,7.783 L0.826,7.783 L0.826,5.129 Z'/%3E%3C/svg%3E");
}
.fixed_banner .web2 p {
  background-color: #6fc2f8;
}
.fixed_banner .web2 p .tt::before {
  margin-bottom: 0.5em;
  width: 1.9167em;
  height: 2.0083em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24px' height='24px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M0.052,12.001 L23.971,12.001 L23.961,22.746 C23.975,23.424 23.440,23.984 22.765,23.1000 L1.248,23.1000 C0.575,23.987 0.039,23.430 0.051,22.754 C0.051,22.752 0.051,22.749 0.052,22.746 L0.052,12.001 ZM17.991,3.001 L22.975,3.001 C23.452,2.928 23.898,3.255 23.971,3.734 C23.985,3.822 23.985,3.912 23.971,4.001 L23.971,10.001 L0.052,10.001 L0.052,4.001 C-0.022,3.522 0.306,3.074 0.783,3.001 C0.871,2.987 0.960,2.987 1.048,3.001 L6.032,3.001 L6.032,0.001 L9.021,0.001 L9.021,3.001 L15.001,3.001 L15.001,0.001 L17.991,0.001 L17.991,3.001 Z'/%3E%3C/svg%3E");
}

@media only screen and (min-width: 1919px) {
  .fixed_banner {
    top: 417px;
  }
  .fixed_banner.active {
    top: 25%;
  }
}
@media only screen and (min-width: 769px) {
  .fixed_banner {
    font-size: 10px;
    --size: 8em;
  }
  .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: 3px;
  }
  .fixed_banner p {
    width: var(--size);
    height: var(--size);
    border-radius: 10px 0 0 10px;
  }
  .fixed_banner p .tt {
    font-size: 1.4em;
    letter-spacing: 0.1em;
    font-weight: 400;
    font-family: var(--f-notosans);
  }
  .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-top: 0.3em;
    width: 1.5715em;
    height: 1.5715em;
  }
  .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 .ai_chat {
    height: unset;
  }
  .fixed_banner .ai_chat:hover {
    opacity: 0.8;
  }
  .fixed_banner .ai_chat p {
    height: unset;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 0;
    padding-top: 2.1em;
    box-shadow: -15px 0px 40px 0px rgba(42, 68, 97, 0.2);
  }
  .fixed_banner .ai_chat p .tt {
    height: unset;
    color: #fff;
    writing-mode: vertical-rl;
    font-size: 1.6em;
    white-space: nowrap;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-top: 2.6em;
    position: relative;
    letter-spacing: 0.1em;
    padding-bottom: 2.875em;
    text-transform: uppercase;
    font-family: var(--f-en);
    font-weight: 500;
  }
  .fixed_banner .ai_chat p .tt::before {
    width: 1.6875em;
    height: 1.9375em;
    top: 0;
    left: calc(50% - 0.875em);
    position: absolute;
  }
  .fixed_banner .ai_chat 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 .web1:hover {
    opacity: 1;
  }
  .fixed_banner .web1 p .tt {
    font-size: 1.4em;
    padding-top: 0.4em;
    letter-spacing: 0.05em;
  }
  .fixed_banner .web1 p .tt::before {
    margin-bottom: 0.5em;
    width: 1.8571em;
    height: 1.8571em;
  }
  .fixed_banner .web2 p .tt::before {
    width: 1.7143em;
    height: 1.7143em;
  }
}
@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: 1440px) {
  .fixed_banner {
    top: calc(50% - 17em);
  }
  .fixed_banner.st2 {
    top: calc(50% - 14em);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1600px) {
  .fixed_banner {
    font-size: 8px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1440px) and (max-height: 600px) {
  .totop {
    bottom: 80px;
    right: 90px;
  }
  .totop .icon {
    width: 50px;
    height: 50px;
  }
  .fixed_banner {
    font-size: 6px;
  }
}
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                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
.br769 {
  display: none;
}

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