@charset "UTF-8";
:root {
  --f-jp: "Noto Serif JP", serif;
  --f-en: "Zen Kaku Gothic New", sans-serif;
  --f-play: "Playfair Display", serif;
  --main-color: #ba802a;
  --clr1: #4d4d4d;
  --clr2: #5d2b4a;
  --ttl_size: 28px;
  --wrapper: 90px;
  --border-radius: 0;
}

/*==========================================================================*/
/*//////////////////////////////////////////////////////////////////////////*/
/*//////                                                              //////*/
/*//////  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-jp);
}
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 {
  display: table;
  vertical-align: bottom;
  max-width: 100%;
  height: auto;
}

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

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

table {
  width: 100%;
}

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

.captcha_box iframe {
  height: auto;
}

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

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

.red {
  color: #ca0a0a !important;
}

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

.fl {
  float: left;
}

.fr {
  float: right;
}

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

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

.wrapper {
  overflow: hidden;
}

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

.inner_max {
  max-width: 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 .TabContent {
  position: relative;
  z-index: 2;
  overflow: hidden;
}
.TabContainer .TabContent .content {
  transition: all 0.3s ease-in-out;
  background-color: #ccc;
}
.TabContainer .TabContent .content > div {
  opacity: 0;
  z-index: -10;
  visibility: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transition: unset;
}
.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;
}

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

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

.btn {
  margin: 25px auto 0;
  max-width: 260px;
}
.btn a {
  cursor: pointer;
  text-decoration: none;
  font-size: 16px;
  letter-spacing: 0.18em;
  line-height: 1.5;
  min-height: 4.375em;
  border-radius: 3px;
  display: flex;
  width: 100%;
  align-items: center;
  font-weight: 500;
  padding-bottom: 0.1em;
  position: relative;
  transition: 0.3s all;
  padding-left: 1.25em;
  padding-right: 2.8125em;
  padding-top: 0.1em;
}
.btn a::after, .btn a::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  width: 24px;
  height: 24px;
  right: 14px;
  top: calc(50% - 12px);
}
.btn a::before {
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
}
.btn a::after {
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-image: url(../images/shared_btn_icon.png);
  background-color: #fff;
}
.btn a:hover {
  opacity: 1;
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .btn a {
    letter-spacing: 0 !important;
    min-height: 60px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .btn a {
    font-size: 14px;
  }
}
@media only screen and (max-width: 768px) {
  .btn a {
    letter-spacing: 0 !important;
    min-height: 60px;
    font-size: 14px;
  }
}
.btn.bg1 a {
  background-color: var(--main-color);
  color: #fff;
}
.btn.bg1 a:hover {
  color: #fff;
}
@media only screen and (min-width: 769px) {
  .btn.bg1 a:not([target*=_blank]):hover {
    background-color: var(--clr2);
  }
}
.btn.bg2 a {
  background: rgba(92, 82, 67, 0.4);
  color: #fff;
}
.btn.bg2 a:hover {
  color: #fff;
}
@media only screen and (min-width: 769px) {
  .btn.bg2 a:not([target*=_blank]):hover {
    background-color: var(--clr2);
  }
}
.btn.bg3 a {
  background: var(--clr2);
  color: #fff;
}
.btn.bg3 a:hover {
  color: #fff;
}
@media only screen and (min-width: 769px) {
  .btn.bg3 a:not([target*=_blank]):hover {
    background-color: var(--main-color);
  }
}
.btn.bg4 a {
  background: var(--main-color);
  color: #fff;
}
.btn.bg4 a:hover {
  color: #fff;
}
@media only screen and (min-width: 769px) {
  .btn.bg4 a:not([target*=_blank]):hover {
    background-color: var(--clr2);
  }
}
.btn.inter a {
  letter-spacing: 0.09em;
}

.btn-group {
  margin: 40px auto 0;
}
.btn-group .btn {
  margin: 0;
}
.btn-group.col2 {
  max-width: 530px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.btn-group.col2 .btn {
  width: calc(50% - 5px);
}
.btn-group.col3 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.btn-group.col3 .btn {
  width: calc(33.3333333333% - 5px);
}
@media only screen and (max-width: 768px) {
  .btn-group.col2 {
    max-width: 260px;
    display: block;
  }
  .btn-group.col2 .btn {
    width: 100%;
  }
  .btn-group.col2 .btn:not(:last-child) {
    margin-bottom: 10px;
  }
  .btn-group.col3 {
    max-width: 260px;
    display: block;
  }
  .btn-group.col3 .btn {
    width: 100%;
  }
  .btn-group.col3 .btn:not(:last-child) {
    margin-bottom: 10px;
  }
}

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

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

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

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

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

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

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

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

header.active .logo,
.ovh header .logo {
  background-color: #fff;
  padding: 20px;
  top: 0;
  left: 0;
  border-radius: 0 0 10px 0;
}
header.active .logo img,
.ovh header .logo img {
  filter: unset;
}

.ovh header {
  background-color: #fff;
}

.header_top {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  justify-content: space-between;
  margin: 0 auto;
  height: 100%;
  transition: all 0.3s ease-in-out;
}

.logo {
  width: 15%;
  max-width: 258px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  z-index: 1;
  top: 58px;
  left: 56px;
}
.logo a {
  display: block;
  width: 100%;
  text-align: center;
}
.logo img {
  width: 100%;
  height: auto;
  filter: brightness(0) invert(1);
}

.h_btn {
  max-width: 380px;
  width: 40%;
  border-radius: 25px;
  background-color: var(--main-color);
}
.h_btn > div {
  width: 50%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.h_btn > div a {
  color: #fff;
  line-height: 1;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  width: 100%;
}
.h_btn > div a:hover {
  opacity: 1;
  color: #fff;
}
.h_btn > div a::before {
  content: "";
  display: block;
  width: 1em;
  height: 1em;
}
.h_btn .web a {
  background-color: var(--clr2);
  border-radius: 25px 0 0 25px;
  font-size: 1em;
  letter-spacing: 0.1em;
  padding-right: 0.1em;
}
.h_btn .web a::before {
  background: url(../images/fixed_icon_web.png) no-repeat center/contain;
  margin-right: 0.8125em;
}
.h_btn .tel a {
  background-color: var(--main-color);
  border-radius: 0 25px 25px 0;
  font-size: 1.125em;
  letter-spacing: 0.03em;
  padding-bottom: 0.2222em;
}
.h_btn .tel a::before {
  width: 0.8889em;
  height: 0.8889em;
  background: url(../images/fixed_icon_tel.png) no-repeat center/contain;
  margin-right: 0.6667em;
  position: relative;
  top: 0.1111em;
}

.right_head {
  width: 75%;
  max-width: 1190px;
  padding-right: calc(var(--wrapper) + 53px);
  padding-left: 86px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-left: auto;
  background-color: #fff;
  border-radius: 0 0 0 10px;
  align-items: center;
}

.pc_navi {
  width: 54.3%;
}
.pc_navi > ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  text-align: center;
  width: 100%;
}
.pc_navi > ul > li {
  position: relative;
}
.pc_navi > ul > li:hover > a,
.pc_navi > ul > li:hover > p {
  opacity: 0.8;
  color: var(--main-color);
}
.pc_navi > ul > li.menu-item-has-children > a::after,
.pc_navi > ul > li.menu-item-has-children > p::after {
  content: "";
  position: absolute;
  background: url(../images/shared_header_nav.png) no-repeat center/contain;
  bottom: -3px;
  width: 10px;
  height: 7px;
  left: calc(50% - 5px);
  transition: 0.3s all;
}
.pc_navi > ul > li.menu-item-has-children > a:hover::after,
.pc_navi > ul > li.menu-item-has-children > p:hover::after {
  transform: translateY(2px);
}
.pc_navi > ul > li > a,
.pc_navi > ul > li > p {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin: 0;
  height: 40px;
  text-decoration: none;
  text-align: center;
  font-weight: 500;
  font-size: 1em;
  line-height: 1.5;
  letter-spacing: 0.14em;
  transition: all 0.2s ease;
  color: #575551;
}
.pc_navi > ul > li > a span,
.pc_navi > ul > li > p span {
  display: block;
  width: 100%;
  padding-top: 0px;
  font-size: 66.6666666667%;
  font-weight: 600;
}
.pc_navi > ul .subInner {
  position: absolute;
  width: 18em;
  right: 50%;
  top: 100%;
  padding-top: 1em;
  transform: translateX(50%);
  transition: all 0.2s ease-in-out;
  opacity: 0;
  visibility: hidden;
  z-index: 1;
}
.pc_navi > ul .subInner.active {
  opacity: 1;
  visibility: visible;
}
.pc_navi > ul .subInner ul {
  background-color: var(--main-color);
  padding-bottom: 10px;
}
.pc_navi > ul .subInner ul li {
  padding: 0 10px;
}
.pc_navi > ul .subInner ul li a {
  position: relative;
  display: block;
  padding: 1.2em 0.6em 1.2em 1.6em;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.7);
  transition: all 0.2s ease;
  font-size: 0.875em;
  font-weight: 500;
  color: #fff;
  text-decoration: none;
  text-align: left;
  letter-spacing: 0.05em;
}
.pc_navi > ul .subInner ul li a::before {
  content: "›";
  display: block;
  position: absolute;
  top: 50%;
  left: 0.6em;
  transform: translateY(-54%);
}

@media only screen and (min-width: 769px) {
  .pc_navi > ul .col2 .subInner {
    width: 500px;
  }
  .pc_navi > ul .col2 .subInner ul {
    display: flex;
    flex-wrap: wrap;
  }
  .pc_navi > ul .col2 .subInner ul li {
    width: 50%;
  }
  .menu_toggle .inside .ft_link {
    width: 100%;
    max-width: 1280px;
    margin: auto;
    min-height: 100%;
    display: flex;
    align-items: center;
  }
  .menu_toggle .inside .ft_link .link_list {
    width: 100%;
  }
  .menu_toggle .inside .ft_link .link_list .title {
    background: #fff;
  }
  .menu_toggle .inside .ft_link .menu01,
  .menu_toggle .inside .ft_link .menu02 {
    margin: 0;
    width: 48%;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .pc_navi > ul {
    font-size: 1.4vw;
  }
  .pc_navi > ul .subInner ul li a {
    font-size: 12px;
  }
}
.idx_gallery .list .img img {
  overflow: hidden;
}
@media only screen and (min-width: 769px) and (max-width: 1600px) {
  .idx_gallery .list .img img {
    height: auto;
    width: 350px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .idx_gallery .list .img img {
    height: auto;
    width: 250px;
  }
}

.time_sheet {
  margin: 0px auto;
  max-width: 464px;
}
.time_sheet .note {
  margin-top: 15px;
  margin-left: -2px;
  line-height: 2;
  font-size: 14px;
  letter-spacing: 0.1em;
}
.time_sheet .note span {
  display: inline-block;
}
.time_sheet table {
  font-feature-settings: "palt";
}
.time_sheet table th,
.time_sheet table td {
  border-top: none;
  border-right: none;
  border-left: none;
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.1em;
  width: 9.9%;
  border-bottom: 1px solid var(--clr1);
}
.time_sheet table th:first-child,
.time_sheet table td:first-child {
  width: auto;
  padding-left: 1.9%;
}
.time_sheet table th:last-child,
.time_sheet table td:last-child {
  width: 16.05%;
  padding-left: 0.8em;
  text-align: left;
}
.time_sheet table th {
  padding: 0.6em 0.2em;
}
.time_sheet table td {
  padding: 1.35em 0.2em 1.65em;
  color: var(--main-color);
}
.time_sheet table td:first-child {
  color: #333;
}
.time_sheet table tr:nth-child(3) td {
  padding-bottom: 1.6em;
}

@media only screen and (max-width: 992px) and (min-width: 769px) {
  :root {
    --ttl_size: 22px;
    --wrapper: 80px;
  }
}
.totop {
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  position: fixed;
  z-index: 19;
  bottom: 25px;
  right: 25px;
  border-radius: 50%;
  box-shadow: 10px 17.321px 44.5px 5.5px rgba(0, 0, 0, 0.05);
}
.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: 60px;
  height: 60px;
  margin: 0;
}

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

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

@keyframes bounces {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-5px);
  }
}
@keyframes fixed_banner {
  0% {
    left: 0;
    opacity: 1;
  }
  100% {
    left: -3px;
    opacity: 0.7;
  }
}
.fixed_banner {
  position: fixed;
  top: calc(50% - 5em);
  right: 0px;
  z-index: 15;
  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;
  line-height: 1.2222222222;
  text-align: center;
  text-decoration: none;
}
.fixed_banner p:hover {
  color: #fff;
}
.fixed_banner p .tt {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  height: 100%;
  flex-direction: column;
}
.fixed_banner p .tt::before {
  content: "";
  display: block;
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: 100% auto;
  -webkit-mask-size: 100% auto;
  mask-position: center;
  -webkit-mask-position: center;
  background-color: #fff;
}
.fixed_banner .tel p {
  background-color: #ba802a;
}
.fixed_banner .tel p .tt::before {
  margin-bottom: 0.5em;
  width: 1.916667em;
  height: 2em;
  --mask: url(../images/fixed_icon_tel.png);
}
.fixed_banner .web p {
  background-color: #5d2b4a;
}
.fixed_banner .web p .tt::before {
  margin-bottom: 0.5em;
  width: 2em;
  height: 2em;
  --mask: url(../images/fixed_icon_web.png);
}
.fixed_banner .ai p {
  background: linear-gradient(to top, rgb(186, 128, 42) 0%, rgb(93, 43, 74) 100%);
}
.fixed_banner .ai p .tt::before {
  margin-bottom: 0.5em;
  width: 2.333em;
  height: 1.6667em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='51px' height='36px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M48.526,10.929 L48.526,5.534 C48.526,5.019 48.949,4.600 49.471,4.600 C49.993,4.600 50.416,5.019 50.416,5.534 L50.416,12.655 C50.411,12.648 50.407,12.642 50.402,12.637 C49.895,11.973 49.268,11.402 48.526,10.929 ZM46.058,25.124 C47.128,22.862 47.669,20.468 47.669,17.1000 C47.669,15.534 47.127,13.139 46.058,10.877 C48.915,11.805 50.995,13.868 50.995,17.1000 C50.995,22.358 48.915,24.195 46.058,25.124 ZM25.497,35.996 C21.441,35.996 17.650,35.025 14.430,33.342 C13.021,34.558 11.189,35.295 9.318,35.369 C10.283,34.128 10.835,32.581 10.887,31.019 C6.849,27.742 4.334,23.121 4.334,17.1000 C4.334,8.062 13.809,0.005 25.497,0.005 C37.186,0.005 46.661,8.062 46.661,17.1000 C46.661,27.939 37.186,35.996 25.497,35.996 ZM38.679,9.310 C37.892,8.448 36.774,7.952 35.599,7.952 L15.395,7.952 C14.235,7.952 13.123,8.431 12.343,9.279 C10.135,11.685 8.819,14.712 8.819,17.1000 C8.819,21.289 10.135,24.315 12.344,26.720 C13.124,27.570 14.235,28.047 15.395,28.047 L35.599,28.047 C36.760,28.047 37.871,27.570 38.651,26.720 C40.860,24.315 42.176,21.289 42.176,17.1000 C42.176,14.726 40.871,11.710 38.679,9.310 ZM33.350,17.442 C31.497,17.442 30.610,18.377 29.995,17.442 C29.400,16.536 31.042,14.303 33.350,14.303 C35.658,14.303 37.300,16.536 36.705,17.442 C36.090,18.377 35.203,17.442 33.350,17.442 ZM25.497,21.698 C24.204,21.698 23.350,20.684 23.315,20.641 C23.121,20.407 23.156,20.062 23.393,19.871 C23.629,19.680 23.978,19.715 24.171,19.948 C24.175,19.953 24.736,20.604 25.497,20.604 C26.259,20.604 26.819,19.953 26.825,19.946 C27.018,19.713 27.366,19.680 27.603,19.871 C27.839,20.061 27.873,20.407 27.680,20.641 C27.644,20.684 26.791,21.698 25.497,21.698 ZM17.645,17.442 C15.792,17.442 14.904,18.377 14.290,17.442 C13.695,16.536 15.337,14.303 17.645,14.303 C19.953,14.303 21.595,16.536 20.1000,17.442 C20.385,18.377 19.498,17.442 17.645,17.442 ZM4.937,25.124 C2.079,24.195 0.000,22.358 0.000,17.1000 C0.000,13.868 2.079,11.805 4.937,10.877 C3.868,13.139 3.326,15.534 3.326,17.1000 C3.326,20.468 3.867,22.862 4.937,25.124 ZM0.579,12.655 L0.579,5.534 C0.579,5.019 1.002,4.600 1.524,4.600 C2.046,4.600 2.469,5.019 2.469,5.534 L2.469,10.929 C1.727,11.402 1.100,11.973 0.593,12.637 C0.588,12.642 0.583,12.648 0.579,12.655 Z'/%3E%3C/svg%3E");
}

@media only screen and (min-width: 769px) {
  .fixed_banner {
    font-size: 10px;
    --size: 8em;
    width: 8em;
  }
  .fixed_banner > div {
    width: var(--size);
    height: var(--size);
    margin-bottom: 0.5em;
  }
  .fixed_banner p {
    width: var(--size);
    height: var(--size);
  }
  .fixed_banner p .tt {
    font-size: 1.2em;
    letter-spacing: 0.05em;
  }
  .fixed_banner .tel {
    --w_tel: 15em;
    transform: translateX(calc(-var(--size) - var(--w_tel)));
    transition: all 0.3s ease;
  }
  .fixed_banner .tel .tt::before {
    margin-bottom: 0.45em;
  }
  .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 {
    border-top-left-radius: 0.833em;
  }
  .fixed_banner .tel .ov {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--main-color);
    position: absolute;
    left: var(--size);
    height: 100%;
    top: 0;
    width: var(--w_tel);
    border-left: 1px solid #fff;
  }
  .fixed_banner .tel .ov .text {
    font-size: 1.5em;
    font-family: var(--f-en);
  }
  .fixed_banner .web p .tt::before {
    margin-bottom: 0.5em;
  }
  .fixed_banner .mail p {
    border-bottom-left-radius: 0.833em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px), (min-width: 769px) and (max-height: 650px) {
  .fixed_banner {
    font-size: 8.75px;
  }
  .totop .icon {
    width: 60px;
    height: 60px;
  }
}
footer {
  background-color: #fcf8f2;
  padding-bottom: 99px;
}
footer .ft_info {
  width: 50%;
  position: relative;
  z-index: 1;
  margin-top: -150px;
}
footer .ft_bg {
  background-color: #fff;
  padding: 80px 10px 82px;
}
footer .ft_logo {
  display: table;
  margin: 0 auto;
}
footer .ft_address {
  text-align: center;
  letter-spacing: 0.1em;
  margin: 16px 0 22px;
}
footer .ft_address .jp {
  padding-left: 5px;
}
footer .ft_tel {
  display: table;
  margin: 0 auto;
}
footer .ft_tel a {
  display: flex;
  align-items: center;
  text-decoration: none;
  font-size: 24px;
  letter-spacing: 0.08em;
  position: relative;
  color: var(--clr2);
  font-weight: 500;
  line-height: 1;
  padding-left: 2.25em;
}
footer .ft_tel a::before, footer .ft_tel a::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  width: 1.6667em;
  height: 1.6667em;
  left: 0;
  top: calc(50% - 0.75em);
}
footer .ft_tel a::before {
  border-radius: 50%;
  background-color: var(--clr2);
}
footer .ft_tel a::after {
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-image: url(../images/ft_logo_tel.png);
  background-color: #fff;
}
footer .ft_tel a:hover {
  color: var(--clr2);
  opacity: 1;
}
footer .shared_tbl {
  margin-top: 63px;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}
footer .shared_tbl p {
  padding-bottom: 23px;
}
footer .ft_map {
  max-width: 560px;
  margin: 53px auto 0;
  height: 299px;
}
footer .ft_menu {
  width: 48%;
  max-width: 652px;
  padding-top: 86px;
}
footer .copyright {
  padding-top: 50px;
}
footer .copyright .flex {
  align-items: center;
  justify-content: center;
}
footer .copyright p {
  line-height: 1;
  margin: 0;
}
footer .copyright .textwidget p {
  color: #575551;
  border-left: 1px solid rgba(206, 206, 206, 0.5);
  padding-left: 19px;
  margin-left: 19px;
  line-height: 23px;
  letter-spacing: 0.1em;
}

.ft_link {
  --clr1: #575551;
}
.ft_link .ft_title {
  position: relative;
  z-index: 1;
}
.ft_link .ft_title::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  z-index: -1;
  right: 0;
  left: 0;
  height: 1px;
  background-color: #d9d5d0;
  top: 1.1875em;
}
.ft_link .title {
  margin-bottom: 0.8684em;
  padding-left: 0;
  font-size: 38px;
  font-weight: 400;
  letter-spacing: 0.14em;
  line-height: 1;
  pointer-events: none;
  font-family: var(--f-jp);
  color: var(--main-color);
  display: table;
  background-color: #fcf8f2;
  min-width: 4.5263em;
}
.ft_link .title::before {
  display: none;
}
.ft_link ul:last-child {
  margin-bottom: 0;
}
.ft_link li {
  margin-bottom: 14px;
  letter-spacing: 0.1em;
  line-height: 1.6;
}
.ft_link a {
  text-decoration: none;
  display: table;
  position: relative;
  padding-left: 14px;
  color: inherit;
  font-size: 15px;
  letter-spacing: 0.1em;
  color: var(--clr1);
  line-height: 2;
}
.ft_link a::before {
  content: "";
  border-radius: 50%;
  width: 3px;
  height: 3px;
  background-color: var(--clr1);
  position: absolute;
  top: 0.9em;
  left: 2px;
}
.ft_link a:hover {
  opacity: 1;
}
@media only screen and (min-width: 1440px) {
  .ft_link a {
    white-space: nowrap;
  }
}
@media only screen and (min-width: 769px) {
  .ft_link .link_list > div > ul {
    display: flex;
    flex-flow: column wrap;
    align-content: flex-start;
  }
  .ft_link .link_list > div > ul li {
    width: 50%;
  }
}
@media only screen and (min-width: 769px) and (min-width: 1919px) {
  .ft_link .link_list > div > ul li {
    width: 53%;
  }
}
@media only screen and (min-width: 769px) {
  .ft_link a:hover {
    color: var(--main-color);
  }
  .ft_link a:hover::before {
    background-color: var(--main-color);
  }
  .ft_link .menu01 {
    width: 100%;
  }
  .ft_link .menu01 > ul {
    max-height: 17em;
  }
  .ft_link .menu02 {
    margin-top: 28px;
    width: 100%;
  }
}
@media only screen and (min-width: 769px) and (min-width: 1919px) {
  .ft_link .menu02 .title {
    margin-bottom: 36px;
  }
}
@media only screen and (min-width: 769px) {
  .ft_link .menu02 > ul {
    max-height: 35em;
  }
}

@media only screen and (min-width: 769px) and (max-width: 1440px) {
  .logo {
    top: 25px;
    left: 25px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .right_head {
    padding-right: calc(var(--wrapper) + 40px);
    padding-left: 40px;
  }
  .ft_link .title {
    margin-bottom: 15px;
    font-size: 30px;
  }
  .ft_link ul li {
    margin-bottom: 10px;
  }
  .ft_link ul li a {
    letter-spacing: 0;
    font-size: 14px;
  }
  .menu_toggle .inside .ft_link {
    padding: 30px 20px 0 !important;
  }
  .ft_link .menu01 > ul {
    max-height: 16em;
  }
  .ft_link .menu02 > ul {
    max-height: 30em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1280px) {
  .ft_link a {
    letter-spacing: 0;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .logo {
    top: 10px;
    left: 10px;
    padding: 10px;
  }
  header.active .logo,
  .ovh header .logo {
    padding: 10px;
  }
  .right_head {
    padding-right: calc(var(--wrapper) + 20px);
    padding-left: 10px;
    width: 80%;
  }
  .pc_navi > ul > li > a,
  .pc_navi > ul > li > p {
    letter-spacing: 0;
  }
  .pc_navi {
    width: 51%;
  }
  .h_btn {
    width: 47%;
  }
  .h_btn > div a {
    letter-spacing: 0 !important;
  }
  .h_btn .web a {
    font-size: 0.875em;
  }
  .h_btn .web a::before {
    margin-right: 0.5em;
  }
  .h_btn .tel a {
    font-size: 1em;
  }
  .h_btn .tel a::before {
    margin-right: 0.25em;
  }
  .ft_link .title {
    font-size: 24px;
    letter-spacing: 0;
  }
  .ft_link ul li a {
    letter-spacing: 0;
    font-size: 13px;
  }
  .ft_link .menu01 > ul {
    max-height: 19em;
  }
  .ft_link .menu02 > ul {
    max-height: 43em;
  }
  footer .ft_info {
    margin-top: -60px;
  }
  footer .ft_bg {
    padding: 60px 10px;
  }
  footer .copyright img {
    width: 120px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1600px) {
  .totop {
    right: 15px;
  }
}
@media only screen and (min-width: 851px) and (max-width: 1024px) {
  .menu_toggle .ft_link .menu01 {
    width: 46% !important;
  }
  .menu_toggle .ft_link .menu02 {
    width: 52% !important;
  }
  .menu_toggle .ft_link .menu01 > ul {
    max-height: 14em;
  }
  .menu_toggle .ft_link .menu02 > ul {
    max-height: 27em;
  }
  .menu_toggle .ft_link ul li {
    margin-bottom: 5px;
  }
  .menu_toggle .ft_link ul li a {
    letter-spacing: 0;
    font-size: 13px;
  }
  .menu_toggle .ft_link ul li a br {
    display: none;
  }
}
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                INDEX                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                Under                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
.shared_tbl {
  border: 1px solid #efeae4;
  background-color: #fbfbfb;
}
.shared_tbl table tr th,
.shared_tbl table tr td {
  line-height: 1;
  text-align: center;
  padding: 0;
  width: 8.8%;
  border: 0;
  font-weight: 400;
  font-size: 18px;
}
.shared_tbl table tr th:first-child,
.shared_tbl table tr td:first-child {
  width: auto;
}
.shared_tbl table tr th:last-child,
.shared_tbl table tr td:last-child {
  width: 15.2%;
  padding-right: 16px;
}
.shared_tbl table tr th {
  font-family: var(--f-en);
  padding-top: 24px;
  padding-bottom: 28px;
  border-bottom: 1px solid #efeae4;
}
.shared_tbl table tr th:first-child {
  letter-spacing: 0.1em;
}
.shared_tbl table tr th:last-child {
  letter-spacing: 0.05em;
}
.shared_tbl table tr td {
  letter-spacing: 0;
  padding-top: 21px;
  padding-bottom: 8px;
  color: var(--main-color);
}
.shared_tbl table tr td:first-child {
  letter-spacing: 0.05em;
  color: var(--clr1);
}
.shared_tbl table tr td small {
  display: block;
  letter-spacing: 0em;
  padding-top: 6px;
  font-size: 14px;
}
.shared_tbl p {
  font-size: 14px;
  letter-spacing: 0.14em;
  padding-left: 22px;
  padding-top: 21px;
  padding-bottom: 24px;
}
@media only screen and (max-width: 1024px) {
  .shared_tbl table tr th,
  .shared_tbl table tr td {
    letter-spacing: 0;
    font-size: 14px;
    width: 7.5%;
  }
  .shared_tbl table tr th:first-child,
  .shared_tbl table tr td:first-child {
    width: auto;
    text-align: center;
  }
  .shared_tbl table tr th:last-child,
  .shared_tbl table tr td:last-child {
    padding-right: 0;
    text-align: center;
    width: 17%;
  }
  .shared_tbl table tr th {
    padding: 14px 0;
  }
  .shared_tbl table tr th:last-child {
    letter-spacing: 0;
  }
  .shared_tbl small {
    letter-spacing: 0;
    font-size: 12px;
    line-height: 1.4;
    text-align: center;
  }
  .shared_tbl p {
    letter-spacing: 0;
    padding: 10px;
  }
}
@media only screen and (max-width: 480px) {
  .shared_tbl table tr th,
  .shared_tbl table tr td {
    letter-spacing: 0 !important;
    font-size: 12px;
  }
  .shared_tbl table tr th:first-child,
  .shared_tbl table tr td:first-child {
    width: auto;
  }
  .shared_tbl table tr th:last-child,
  .shared_tbl table tr td:last-child {
    width: 18%;
  }
  .shared_tbl table tr th small,
  .shared_tbl table tr td small {
    font-size: 12px;
  }
  .shared_tbl table tr th small br,
  .shared_tbl table tr td small br {
    display: block;
  }
}

.br769 {
  display: none;
}

@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .br769 {
    display: block;
  }
}
.ai_chat {
  position: absolute;
  bottom: 0;
  right: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  z-index: 1;
  max-width: 379px;
  width: 30%;
}
.ai_chat.active {
  position: fixed;
  bottom: 120px !important;
  right: 0;
  max-width: 320px;
  z-index: 18;
}
.ai_chat.active img {
  border-radius: 0 0 0 10px;
}
@media only screen and (min-width: 1919px) {
  .ai_chat {
    bottom: 135px;
  }
  .ai_chat.bottom {
    bottom: 0;
  }
}
@media only screen and (min-width: 769px) {
  .ai_chat:hover {
    transition: 0.3s all;
    opacity: 0.9;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1600px) {
  .ai_chat.active {
    bottom: 15px !important;
    right: 90px;
  }
  .ai_chat.active img {
    border-radius: 0 10px 10px 10px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .ai_chat.active {
    bottom: 20px !important;
  }
}
@media only screen and (max-width: 768px) {
  .ai_chat {
    max-width: 230px;
    width: 50%;
  }
}