@charset "UTF-8";
:root {
  --f-notosans: "Noto Serif JP", serif;
  --f-jp: "Noto Serif JP", serif;
  --f-en: "Poppins", sans-serif;
  --f-josefin: "Josefin Sans", sans-serif;
  --main-color: #f16100;
  --clr1: #626262;
  --clr2: #0064ff;
  --clr3: #333;
  --clr4: #f3f3f3;
  --cl-yl-old: #fffac8;
  --ttl_size: 30px;
  --wrapper: 100px;
  --line-height-p: 2.25;
  --lt-spc-p: 0.18em;
}

/*==========================================================================*/
/*//////////////////////////////////////////////////////////////////////////*/
/*//////                                                              //////*/
/*//////  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 {
  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.18em;
  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;
}

.clr-1 {
  color: var(--main-color) !important;
}

.clr-2 {
  color: var(--clr2) !important;
}

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

.fl {
  float: left;
}

.fr {
  float: right;
}

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

@media only screen and (min-width: 769px) {
  .find_a:hover,
  .find_out:hover {
    cursor: pointer;
  }
}
/*==========================================================================*/
/*                            Container                                     */
/*==========================================================================*/
html {
  overflow-x: auto !important;
}

.wrapper {
  overflow: hidden;
}

.inner_max,
.inner_big,
.inner,
.inner_sm {
  width: 100%;
  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;
}

.img_center img {
  margin: 0 auto;
}

.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 [data-index="01"] {
  --clr-tab: var(--main-color);
}
.TabContainer [data-index="02"] {
  --clr-tab: var(--clr2);
}
@media only screen and (min-width: 769px) {
  .TabContainer {
    font-size: 10px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .TabContainer {
    font-size: 8.75px;
  }
}
@media only screen and (max-width: 768px) {
  .TabContainer {
    font-size: clamp(6.5px, 2vw, 8.75px);
  }
}
.TabContainer .TabContent {
  position: relative;
  z-index: 2;
  overflow: hidden;
}
.TabContainer .TabContent .content {
  transition: all 0.3s ease-in-out;
  background-color: #fff;
}
.TabContainer .TabContent .content .btn-group {
  font-size: 1em;
}
@media only screen and (max-width: 360px) {
  .TabContainer .TabContent .content .btn-group .btn a {
    padding-left: 0.5em;
    padding-right: 1em;
  }
  .TabContainer .TabContent .content .btn-group .btn a::after {
    right: 0.5em;
  }
}
@media only screen and (min-width: 769px) {
  .TabContainer .TabContent .content .box_content {
    padding: 6.1em 6em 4.5em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .TabContainer .TabContent .content .box_content {
    padding: 3em;
  }
}
@media only screen and (max-width: 768px) {
  .TabContainer .TabContent .content .box_content {
    padding: 20px;
  }
}
.TabContainer .TabContent .content .flex_gr {
  justify-content: flex-start;
  margin: calc((var(--size-mg) - 0.5em) * -1) calc(var(--size-mg) * -1);
}
@media only screen and (min-width: 769px) {
  .TabContainer .TabContent .content .flex_gr .item {
    margin: calc(var(--size-mg) - 0.5em) var(--size-mg);
  }
}
@media only screen and (max-width: 768px) {
  .TabContainer .TabContent .content .flex_gr .item {
    width: calc(50% - 2 * var(--size-mg));
  }
}
@media only screen and (min-width: 769px) {
  .TabContainer .TabContent .content .flex_gr {
    --size-mg: min(1.5vw, 2em);
  }
}
@media only screen and (max-width: 768px) {
  .TabContainer .TabContent .content .flex_gr {
    --size-mg: min(1.5vw, 1em);
  }
}
.TabContainer .TabContent .content .box_ac dl dt {
  position: relative;
  cursor: pointer;
}
.TabContainer .TabContent .content .box_ac dl dt span {
  position: relative;
  font-size: 1.6em;
  color: #4d4d4d;
  text-decoration: none;
  font-family: var(--f-jp);
  background: #f8f7f7;
  width: 100%;
  min-height: 3.75em;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all 0.3s;
}
@media only screen and (min-width: 769px) {
  .TabContainer .TabContent .content .box_ac dl dt span {
    padding: 0.625em 2.5em;
  }
}
@media only screen and (max-width: 768px) {
  .TabContainer .TabContent .content .box_ac dl dt span {
    padding: 0.625em 1.4em;
  }
}
.TabContainer .TabContent .content .box_ac dl dt span::before, .TabContainer .TabContent .content .box_ac dl dt span::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 0.75em;
  height: 1px;
  background: var(--clr-tab);
  margin: auto;
  transition: all 0.5s;
  -webkit-transition: all 0.5s;
}
@media only screen and (min-width: 769px) {
  .TabContainer .TabContent .content .box_ac dl dt span::before, .TabContainer .TabContent .content .box_ac dl dt span::after {
    right: 1.25em;
  }
}
@media only screen and (max-width: 768px) {
  .TabContainer .TabContent .content .box_ac dl dt span::before, .TabContainer .TabContent .content .box_ac dl dt span::after {
    right: 0.8em;
  }
}
.TabContainer .TabContent .content .box_ac dl dt span::after {
  transform: rotate(90deg);
}
.TabContainer .TabContent .content .box_ac dl dt::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background-color: var(--clr-tab);
  z-index: 1;
}
@media only screen and (min-width: 769px) {
  .TabContainer .TabContent .content .box_ac dl dt:hover span {
    opacity: 1;
    color: #fff;
    background: var(--clr-tab);
  }
  .TabContainer .TabContent .content .box_ac dl dt:hover span::before, .TabContainer .TabContent .content .box_ac dl dt:hover span::after {
    background: #fff;
  }
  .TabContainer .TabContent .content .box_ac dl dt:hover::after {
    background-color: #fff;
    right: 0.5em;
  }
}
.TabContainer .TabContent .content .box_ac dl dt.rotate span {
  color: #fff;
  background: var(--clr-tab);
}
.TabContainer .TabContent .content .box_ac dl dt.rotate span::before, .TabContainer .TabContent .content .box_ac dl dt.rotate span::after {
  background: #fff;
}
.TabContainer .TabContent .content .box_ac dl dt.rotate span::after {
  transform: rotate(180deg);
}
.TabContainer .TabContent .content .box_ac dl dt.rotate:hover {
  opacity: 0.9;
}
@media only screen and (min-width: 769px) {
  .TabContainer .TabContent .content .box_ac dl dd {
    padding: 2em;
    padding-bottom: 0;
  }
}
@media only screen and (max-width: 768px) {
  .TabContainer .TabContent .content .box_ac dl dd {
    padding: 1em 0.5em;
    padding-bottom: 0;
  }
}
.TabContainer .TabContent .content .box_ac dl dd ul li:not(:last-child) {
  margin-bottom: 0.5em;
}
.TabContainer .TabContent .content .box_ac dl dd ul li a {
  font-size: 1.6em;
  text-decoration: none;
  color: var(--clr3);
}
.TabContainer .TabContent .content .box_ac dl dd ul li a:hover {
  color: var(--clr-tab);
}
.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;
  position: relative;
}
.TabContainer .TabPager {
  display: flex;
  justify-content: center;
  width: 90%;
  margin: 0px auto 2px;
  max-width: 1004px;
}
.TabContainer .TabPager > div {
  background-color: rgba(255, 255, 255, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  position: relative;
  margin: 0;
  width: 50%;
  transition: all 0.3s ease;
  cursor: pointer;
  color: var(--clr3);
  margin: 0 1px;
  z-index: 3;
}
@media only screen and (min-width: 769px) {
  .TabContainer .TabPager > div {
    padding: 1.7em 2em 1.8em;
  }
}
@media only screen and (max-width: 768px) {
  .TabContainer .TabPager > div {
    padding: 1.2em;
  }
}
.TabContainer .TabPager > div::after {
  content: "";
  position: absolute;
  width: 5em;
  height: 1.5em;
  top: 100%;
  left: 0px;
  right: 0px;
  margin: 0 auto;
  background: transparent;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
}
@media only screen and (max-width: 1900px) {
  .TabContainer .TabPager > div::after {
    top: calc(100% - 1px);
  }
}
.TabContainer .TabPager > div p {
  margin: 0;
  font-size: 2.4em;
  line-height: 1.25;
  font-weight: 500;
}
.TabContainer .TabPager > div p .en {
  text-transform: uppercase;
  font-size: 0.4167em;
  color: var(--clr-tab);
  display: block;
  margin-top: 2px;
  letter-spacing: 0.18em;
}
.TabContainer .TabPager > div:hover {
  background-color: #f8f7f7;
}
.TabContainer .TabPager > div.active {
  background-color: var(--clr-tab);
  color: #fff;
}
.TabContainer .TabPager > div.active::after {
  background: var(--clr-tab);
}
.TabContainer .TabPager > div.active p .en {
  color: #fff;
}

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

.sm {
  font-size: 80%;
}

.big {
  font-size: 120%;
}

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

.btn {
  --clr-btn: var(--main-color);
}
.btn.bg-w a {
  background: #fff;
}
.btn a {
  position: relative;
  font-size: 1.6em;
  line-height: 1.5;
  letter-spacing: 0.1em;
  color: #4d4d4d;
  text-decoration: none;
  font-family: var(--f-jp);
  background: #f8f7f7;
  max-width: 18.3125em;
  min-height: 3.75em;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  transition: all 0.3s;
  padding: 0.625em 1.875em;
}
.btn a::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px;
  background-color: var(--clr-btn);
}
.btn a::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  width: 0.3125em;
  height: 0.5em;
  right: 1.25em;
  top: 0;
  bottom: 0;
  margin: auto 0;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 8' %3E%3Cpath d='M4.993,4.100 L4.368,4.685 L4.261,4.585 L0.616,8.004 L-0.010,7.416 L3.636,3.999 L-0.010,0.582 L0.616,-0.006 L4.261,3.413 L4.368,3.313 L4.993,3.899 L4.886,3.1000 L4.993,4.100 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(--clr-btn);
}
@media only screen and (min-width: 769px) {
  .btn a:hover {
    opacity: 1;
    color: #fff;
    background: var(--clr-btn);
  }
  .btn a:hover::after {
    background-color: #fff;
  }
}
.btn.btn-02 {
  --clr-btn: var(--clr2);
}
.btn.btn-w a {
  border: 1px solid #fff;
  color: #fff;
  background: transparent;
}
.btn.btn-w a::before {
  height: 2px;
}
.btn.btn-w a::before, .btn.btn-w a::after {
  background-color: #fff;
}
@media only screen and (min-width: 769px) {
  .btn.btn-w a:hover {
    background: #fff;
    color: var(--clr-btn);
  }
  .btn.btn-w a:hover::after {
    background-color: var(--clr-btn);
  }
}
.btn.md {
  width: 100%;
  min-width: 120px;
  max-width: 200px;
  overflow: hidden;
}
.btn.md a {
  width: 100%;
}
.btn-ic a {
  display: block;
  position: relative;
  width: 50px;
  height: 50px;
  background: #ff7e27;
}
.btn-ic a::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  width: 5px;
  height: 8px;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 5 8' %3E%3Cpath d='M4.993,4.100 L4.368,4.685 L4.261,4.585 L0.616,8.004 L-0.010,7.416 L3.636,3.999 L-0.010,0.582 L0.616,-0.006 L4.261,3.413 L4.368,3.313 L4.993,3.899 L4.886,3.1000 L4.993,4.100 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: #fff;
}
@media only screen and (min-width: 769px) {
  .btn-ic a:hover {
    opacity: 1;
    background: var(--main-color);
  }
}

.btn-group {
  font-size: 10px;
}
.btn-group .btn {
  margin-bottom: 0;
}
.btn-group .btn.w-full {
  width: 100% !important;
  max-width: 100% !important;
}
.btn-group .btn.w-full a {
  max-width: 100%;
}
.btn-group .btn a {
  width: 100%;
}
.btn-group.center .btn a {
  margin: 0 auto;
}

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

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

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

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

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

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

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

.br_1170 {
  display: none;
}

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

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

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

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

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

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

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

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

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

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

@media only screen and (max-width: 320px) {
  .br_320 {
    display: block;
  }
  .in_320 {
    display: inline;
  }
  .dis_320 {
    display: none;
  }
}
@media only screen and (max-width: 319px) {
  .br_320 {
    display: none;
  }
}
.flex_gr {
  --size-mg: 5px;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin: calc(var(--size-mg) * -1);
}
.flex_gr .btn.style01 {
  min-width: unset;
}
.flex_gr .item {
  width: 100%;
  margin: var(--size-mg);
}
@media only screen and (min-width: 769px) {
  .flex_gr.col-2 .item {
    width: calc(50% - 2 * var(--size-mg));
  }
  .flex_gr.col-3 .item {
    width: calc(33.333333% - 2 * var(--size-mg));
  }
  .flex_gr.col-4 .item {
    width: calc(25% - 2 * var(--size-mg));
  }
  .flex_gr.col-5 .item {
    width: calc(20% - 2 * var(--size-mg));
  }
}

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

/* 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;
}
@media only screen and (min-width: 769px) {
  header {
    font-size: min(0.68vw, 10px);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  header {
    font-size: 0.85vw;
  }
}

header.active,
.ovh header {
  background-color: #fff;
}
header.active .logo,
.ovh header .logo {
  filter: brightness(1) invert(0);
}
header.active .pc_navi > ul > li > p,
header.active .pc_navi > ul > li > a,
.ovh header .pc_navi > ul > li > p,
.ovh header .pc_navi > ul > li > a {
  color: var(--clr3);
}
header.active .pc_navi > ul > li > p::after,
header.active .pc_navi > ul > li > a::after,
.ovh header .pc_navi > ul > li > p::after,
.ovh header .pc_navi > ul > li > a::after {
  filter: brightness(0);
}

.header_top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
  justify-content: space-between;
  margin: 0 auto;
  padding: 5px 4.9em;
  height: 100%;
  transition: all 0.3s ease-in-out;
  position: relative;
}
.header_top::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  bottom: -1px;
  left: 0px;
  right: 0px;
  background-color: rgba(255, 255, 255, 0.4);
}

.logo {
  width: 20%;
  max-width: 272px;
  display: flex;
  justify-content: center;
  align-items: center;
  filter: brightness(0) invert(1);
}
.logo a {
  display: block;
  width: 100%;
  text-align: center;
}
.logo img {
  width: auto;
}

.right_head {
  width: 80%;
  max-width: 850px;
  padding-right: 12em;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.pc_navi {
  width: 100%;
}
.pc_navi > ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  text-align: center;
  width: 100%;
}
.pc_navi > ul > li {
  position: relative;
}
.pc_navi > ul > li:not(:last-child) {
  margin-right: 6.7em;
}
.pc_navi > ul > li:hover > a,
.pc_navi > ul > li:hover > p {
  color: #fff;
  opacity: 0.6;
}
.pc_navi > ul > li.menu-item-has-children > a,
.pc_navi > ul > li.menu-item-has-children > p {
  padding-bottom: 0.8125em;
  margin-bottom: -0.8125em;
}
.pc_navi > ul > li.menu-item-has-children > a::after,
.pc_navi > ul > li.menu-item-has-children > p::after {
  content: "";
  background: url(../images/shared_pc_navi_arrow.png) center no-repeat;
  background-size: 100% auto;
  width: 0.6875em;
  height: 0.4375em;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  transition: all 0.5s ease;
}
.pc_navi > ul > li.menu-item-has-children > a:hover::after,
.pc_navi > ul > li.menu-item-has-children > p:hover::after {
  transform: translateY(5px);
}
.pc_navi > ul > li > a,
.pc_navi > ul > li > p {
  position: relative;
  margin: 0;
  text-decoration: none;
  text-align: center;
  font-weight: 500;
  font-size: 1.6em;
  line-height: 1.5;
  letter-spacing: 0.1em;
  transition: all 0.2s ease;
  color: #fff;
  display: block;
}
.pc_navi > ul > li > a span,
.pc_navi > ul > li > p span {
  display: block;
  width: 100%;
  padding-top: 0px;
  text-transform: uppercase;
  font-family: var(--f-en);
  font-size: 62.5%;
  letter-spacing: 0.1em;
  font-weight: 400;
  margin-bottom: 3px;
}
.pc_navi > ul > li:hover a.title::after,
.pc_navi > ul > li:hover p.title::after {
  transform: translateY(5px);
}
.pc_navi > ul > li.menu-item-has-children.lv3 > .subInner {
  width: 100em;
  transform: translate(13%, 100%);
}
.pc_navi > ul > li.menu-item-has-children.lv3 > .subInner > ul {
  display: flex;
  flex-flow: column wrap;
  align-content: space-between;
  max-height: 80em;
  padding-top: 2em;
}
.pc_navi > ul > li.menu-item-has-children.lv3 > .subInner > ul .menu_child {
  width: 25%;
}
.pc_navi > ul > li.menu-item-has-children.lv3 > .subInner > ul .menu_child:not(:last-child) {
  margin-bottom: 2em;
}
.pc_navi > ul > li.menu-item-has-children.lv3 > .subInner > ul .menu_child > a {
  font-size: 1.5em;
  font-weight: 700;
  pointer-events: none;
  border-bottom: 0;
  padding-top: 0;
  padding-bottom: 0.3571em;
}
.pc_navi > ul > li.menu-item-has-children.lv3 > .subInner > ul .menu_child > a::before {
  content: "";
  border-radius: 50%;
  width: 0.5714em;
  height: 0.5714em;
  background: #fff;
  top: 0.3571em;
  bottom: 0;
  margin: auto 0;
}
.pc_navi > ul > li.menu-item-has-children > .subInner {
  padding-top: 29px;
  position: absolute;
  width: 22em;
  right: 50%;
  bottom: 0;
  transform: translate(50%, 100%);
  transition: all 0.2s ease-in-out;
  opacity: 0;
  visibility: hidden;
  z-index: 1;
  font-size: min(0.6vw, 10px);
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .pc_navi > ul > li.menu-item-has-children > .subInner {
    padding-top: 21px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .pc_navi > ul > li.menu-item-has-children > .subInner {
    font-size: 0.9vw;
    padding-top: 22px;
  }
}
@media only screen and (max-width: 769px) {
  .pc_navi > ul > li.menu-item-has-children > .subInner {
    padding-top: 26px;
  }
}
.pc_navi > ul > li.menu-item-has-children > .subInner.active {
  opacity: 1;
  visibility: visible;
}
.pc_navi > ul > li.menu-item-has-children > .subInner ul {
  background-color: var(--main-color);
  padding-bottom: 10px;
}
.pc_navi > ul > li.menu-item-has-children > .subInner ul li {
  padding: 0 8px;
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .pc_navi > ul > li.menu-item-has-children > .subInner ul li {
    padding: 0 5px;
  }
}
.pc_navi > ul > li.menu-item-has-children > .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: 1.4em;
  font-weight: 500;
  color: #fff;
  text-decoration: none;
  text-align: left;
  letter-spacing: 0.05em;
}
.pc_navi > ul > li.menu-item-has-children > .subInner ul li a::before {
  content: "›";
  display: block;
  position: absolute;
  top: 50%;
  left: 0.6em;
  transform: translateY(-54%);
}

@media only screen and (min-width: 1024px) {
  .pc_navi > ul > li:first-child {
    margin-right: 6.6em;
  }
  .pc_navi > ul > li:nth-child(2) {
    margin-right: 6.5em;
  }
  .pc_navi > ul > li:nth-child(3) {
    margin-right: 6.6em;
  }
}
@media only screen and (min-width: 769px) {
  .pc_navi > ul li.menu-item-has-children.col2 .subInner {
    width: 44em;
  }
  .pc_navi > ul li.menu-item-has-children.col2 .subInner ul {
    display: flex;
    flex-wrap: wrap;
  }
  .pc_navi > ul li.menu-item-has-children.col2 .subInner ul li {
    width: 50%;
  }
  .menu_toggle .inside .ft_link {
    font-size: min(0.55vw, 10px);
    width: 100%;
    max-width: 1210px;
    margin: auto;
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .menu_toggle .inside .ft_link .menu01 > ul {
    justify-content: space-between;
  }
  .menu_toggle .inside .ft_link .menu01 > ul > li:last-child {
    width: fit-content !important;
  }
}
@media only screen and (min-width: 769px) and (min-width: 769px) and (max-width: 1366px) {
  .menu_toggle .inside .ft_link .menu01::before {
    width: 100%;
  }
}
@media only screen and (min-width: 769px) {
  .menu_toggle .inside .ft_link .menu_wrap > ul {
    column-count: 2;
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-gap: 20px;
    -webkit-column-gap: 20px;
    -moz-column-gap: 20px;
  }
  .menu_toggle .inside .ft_link .menu02 > ul {
    display: grid;
    grid-template-columns: repeat(3, 1fr) 155px;
  }
}
@media only screen and (min-width: 769px) and (min-width: 769px) and (max-width: 1366px) {
  .menu_toggle .inside .ft_link .menu02 > ul {
    grid-template-columns: repeat(3, 1fr) 130px;
  }
}
@media only screen and (min-width: 769px) {
  .menu_toggle .inside .ft_link .menu02 > ul .menu_col > a {
    display: none;
  }
  .menu_toggle .inside .ft_link .menu02 .menu_child.ft_menu_child {
    display: none;
  }
  .menu_toggle .inside .ft_link .menu02 .menu_child > a {
    position: relative;
    padding-right: 20px;
  }
  .menu_toggle .inside .ft_link .menu02 .menu_child > a::after {
    content: "";
    position: absolute;
    width: 12px;
    height: 6px;
    top: 0px;
    bottom: 0px;
    right: 0px;
    margin: auto 0;
    background: var(--clr2);
    clip-path: polygon(50% 100%, 0 0, 100% 0);
    transition: all 0.3s;
  }
  .menu_toggle .inside .ft_link .menu02 .menu_child > a:hover {
    color: var(--main-color);
  }
  .menu_toggle .inside .ft_link .menu02 .menu_child > a:hover::after {
    background: var(--main-color);
  }
  .menu_toggle .inside .ft_link .menu02 .menu_child > a.rotate::after {
    transform: rotateX(180deg);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  :root {
    --wrapper: 80px;
  }
}
@media only screen and (max-width: 1366px) and (min-width: 769px) {
  .menu_toggle .inside .ft_link {
    font-size: min(0.35vw, 10px);
    --ttl_size: 25px;
  }
  .menu_toggle .inside .ft_link .title {
    margin-bottom: 15px;
  }
  .menu_toggle .inside .ft_link .menu02 .menu_child:not(:last-child) {
    margin-bottom: 15px;
  }
  .menu_toggle .inside .ft_link a {
    font-size: 14px;
    line-height: 2.25;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .pc_navi > ul > li:not(:last-child) {
    margin-right: 4em;
  }
  .pc_navi > ul .subInner ul li a {
    font-size: 13px;
  }
  .menu_toggle .inside .ft_link a {
    font-size: 12px;
  }
}
.idx_gallery {
  margin-bottom: 5px;
}
.idx_gallery .list {
  display: flex;
}
@media only screen and (min-width: 769px) {
  .idx_gallery .list .img {
    padding-top: 2em;
  }
}
.idx_gallery .list .img img {
  overflow: hidden;
  margin: 0 2.5px;
}
@media only screen and (max-width: 1024px) {
  .idx_gallery .list .img img {
    max-width: 250px;
  }
}

.idx_banner_gr {
  display: flex;
  justify-content: center;
  align-items: center;
  background: url("../images/idx_bnr_bg03.jpg") no-repeat center/cover;
}
@media only screen and (min-width: 769px) {
  .idx_banner_gr {
    padding: 60px 20px;
  }
}

.time_sheet {
  font-size: 10px;
}
.time_sheet .note {
  color: var(--clr3);
  margin-top: 1.0625em;
  margin-left: -0.125em;
  line-height: 1.875;
  font-size: 16px;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 1024px) {
  .time_sheet .note {
    font-size: 14px;
  }
}
@media only screen and (max-width: 430px) {
  .time_sheet .note {
    font-size: 12px;
  }
}
.time_sheet .note > span {
  display: inline-block;
  position: relative;
  padding-left: 1.5625em;
}
.time_sheet .note > span::before {
  content: "※";
  position: absolute;
  font-size: inherit;
  top: 0px;
  left: 0.125em;
  color: inherit;
}
.time_sheet table {
  font-feature-settings: "palt";
  position: relative;
}
.time_sheet table::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  top: 0;
  left: 0px;
  right: 0px;
  background: #a8abae;
}
.time_sheet table tr th:first-child::before,
.time_sheet table tr td:first-child::before {
  width: 0;
}
.time_sheet table th,
.time_sheet table td {
  font-size: 1.6em;
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.1em;
  width: 10%;
  border: 0;
  position: relative;
  z-index: 1;
  color: var(--clr3);
}
.time_sheet table th::before,
.time_sheet table td::before {
  content: "";
  position: absolute;
  width: 1px;
  height: 100%;
  top: 0;
  left: 0;
  right: 0;
  background: #a8abae;
}
.time_sheet table th::after,
.time_sheet table td::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 1px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  background: #a8abae;
}
.time_sheet table th:first-of-type,
.time_sheet table td:first-of-type {
  width: 26.7%;
  padding-left: 0;
}
.time_sheet table th:last-child,
.time_sheet table td:last-child {
  padding-left: 1.0625em;
  width: 13.3%;
  letter-spacing: 0;
}
.time_sheet table th {
  padding: 1em 0.75em;
}
.time_sheet table td {
  padding: 1.0625em 0.75em 1.25em;
  color: var(--main-color);
}
.time_sheet table td:first-child {
  color: var(--clr3);
  letter-spacing: 0.08em;
}
@media only screen and (min-width: 431px) {
  .time_sheet table td:first-child {
    text-align: left;
  }
  .time_sheet table td:first-child span {
    display: inline;
    margin-right: 0.75em;
  }
}
@media only screen and (max-width: 430px) {
  .time_sheet table td:first-child {
    text-align: center;
    font-size: 12px;
  }
  .time_sheet table td:first-child span {
    display: block;
  }
}
@media only screen and (max-width: 360px) {
  .time_sheet table td:first-child {
    font-size: 10px;
  }
}
.time_sheet table td:has(span):not(:first-child) {
  color: var(--clr3);
  text-align: center;
  padding: 0.0625em 0.75em;
}
.time_sheet table td:has(span):not(:first-child) span {
  display: inline-table;
  margin: 0 auto 0.2143em;
  font-size: 0.875em;
}
.time_sheet table td:has(span):not(:first-child) span + span {
  padding-top: 0.1875em;
  position: relative;
  width: 2.7143em;
}
.time_sheet table td:has(span):not(:first-child) span + span::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 0.1429em;
  top: 0px;
  left: 0px;
  right: 0px;
  margin: -0.2857em auto 0;
  background: url("../images/ic_line.png") repeat-x top center/0.2857em 0.1429em;
}
.time_sheet table tr:nth-child(3) td {
  padding-bottom: 1.6em;
}
.time_sheet.stl-w table::before,
.time_sheet.stl-w table th::before,
.time_sheet.stl-w table td::before,
.time_sheet.stl-w table td::after,
.time_sheet.stl-w table th::after {
  background: #fff;
}
.time_sheet.stl-w table td:first-child,
.time_sheet.stl-w table td,
.time_sheet.stl-w table th {
  color: white;
}
.time_sheet.stl-w table td:has(span):not(:first-child) {
  color: #fff;
}
.time_sheet.stl-w table td:has(span):not(:first-child) span + span::before {
  background-image: url("../images/ic_line_w.png");
}
.time_sheet.stl-w .note {
  color: #fff;
}

@media only screen and (max-width: 1024px) and (min-width: 769px) {
  :root {
    --ttl_size: 26px;
    --wrapper: 80px;
  }
}
@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;
}
.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;
  box-shadow: 0px 20px 26.7px 3.3px rgba(100, 100, 100, 0.1);
}

@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% - 12.6em);
  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;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}
.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;
}
.fixed_banner .tel {
  -webkit-touch-callout: none;
  /* iOS Safari */
  -webkit-user-select: none;
  /* Safari */
  -khtml-user-select: none;
  /* Konqueror HTML */
  -moz-user-select: none;
  /* Old versions of Firefox */
  -ms-user-select: none;
  /* Internet Explorer/Edge */
  user-select: none;
}
.fixed_banner .tel p {
  background-color: #fff;
}
.fixed_banner .tel p .tt {
  font-weight: 600;
  line-height: 1;
  color: #595959;
  padding-top: 4px;
}
.fixed_banner .tel p .tt::before {
  width: 1.2222em;
  height: 1.1667em;
  background-color: var(--main-color);
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 21' %3E%3Cpath d='M21.086,15.804 L21.086,19.809 C21.086,20.405 20.625,20.898 20.031,20.939 C19.536,20.974 19.131,20.990 18.818,20.990 C8.797,20.990 0.675,12.880 0.675,2.872 C0.675,2.560 0.692,2.155 0.727,1.660 C0.769,1.065 1.263,0.607 1.859,0.607 L5.868,0.607 C6.160,0.607 6.404,0.827 6.433,1.117 C6.459,1.376 6.483,1.583 6.505,1.741 C6.731,3.312 7.193,4.839 7.875,6.272 C7.983,6.499 7.913,6.769 7.709,6.913 L5.262,8.662 C6.758,12.143 9.536,14.917 13.022,16.412 L14.769,13.971 C14.916,13.766 15.189,13.696 15.418,13.804 C16.853,14.485 18.382,14.945 19.954,15.168 C20.112,15.192 20.319,15.216 20.578,15.241 C20.867,15.270 21.087,15.513 21.087,15.804 L21.086,15.804 Z'/%3E%3C/svg%3E");
}
.fixed_banner .tel p .tt::after {
  content: "";
  position: absolute;
  left: 0px;
  top: 0px;
  background: var(--main-color);
}
@media only screen and (min-width: 769px) {
  .fixed_banner .tel p .tt {
    -webkit-writing-mode: vertical-rl;
    -moz-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    -webkit-text-orientation: mixed;
    -moz-text-orientation: mixed;
    -ms-text-orientation: mixed;
    text-orientation: mixed;
  }
  .fixed_banner .tel p .tt::before {
    margin-bottom: 0.6111em;
  }
  .fixed_banner .tel p .tt::after {
    width: 3px;
    height: 100%;
  }
}

@media only screen and (min-width: 769px) {
  .fixed_banner {
    font-size: 10px;
    --size-w: 6.4em;
    --size-h: 19.8em;
  }
  .fixed_banner > div {
    width: var(--size-w);
    height: var(--size-h);
  }
  .fixed_banner p .tt {
    font-size: 1.8em;
    letter-spacing: 0.12em;
  }
  .fixed_banner .tel {
    --w_tel: 15em;
    transition: all 0.3s ease;
  }
  .fixed_banner .tel .tt::before {
    margin-bottom: 0.45em;
  }
  .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;
  }
}
.ft_info {
  background: url("../images/ft_bg01.jpg") no-repeat center/cover;
}
@media only screen and (min-width: 769px) {
  .ft_info {
    padding: 100px 20px 94px;
  }
}
.ft_info .info_box {
  font-size: 10px;
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .ft_info .info_box {
    font-size: min(0.8vw, 8px);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .ft_info .info_box {
    align-items: center;
  }
}
@media only screen and (min-width: 769px) {
  .ft_info .info_box {
    display: flex;
    justify-content: space-between;
  }
}
.ft_info .info_box_left {
  position: relative;
  text-align: center;
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .ft_info .info_box_left {
    padding-right: 4em;
  }
}
@media only screen and (min-width: 769px) {
  .ft_info .info_box_left {
    margin-left: -0.6em;
    max-width: 435px;
    width: 38%;
    padding-right: 12.2em;
  }
}
@media only screen and (min-width: 769px) {
  .ft_info .info_box_left::before {
    content: "";
    position: absolute;
    right: 0px;
    background: rgba(255, 255, 255, 0.5);
    width: 1px;
    height: 100%;
    max-height: 245px;
    top: 0px;
  }
}
@media only screen and (min-width: 769px) {
  .ft_info .info_box_right {
    width: 58%;
    max-width: 610px;
  }
}
.ft_info .ft_logo {
  margin: 0 auto 21px;
  display: table;
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .ft_info .ft_logo {
    max-width: 143px;
  }
}
.ft_info .ft_address {
  font-size: 1.6em;
  color: #fff;
  letter-spacing: 0.1em;
  margin-bottom: 2px;
}
.ft_info .ft_tel {
  display: flex;
  justify-content: center;
  align-items: center;
}
.ft_info .ft_tel .tt {
  color: #fff;
  font-size: 2.8em;
  font-weight: 700;
  letter-spacing: 0.03em;
  position: relative;
  padding-left: 1.5em;
  line-height: 1.4;
}
.ft_info .ft_tel .tt::before {
  content: "";
  position: absolute;
  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;
  width: 0.7857em;
  height: 0.75em;
  top: 0;
  bottom: 0;
  left: 0.2143em;
  margin: auto 0;
  background-color: #fff;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 21' %3E%3Cpath d='M21.086,15.804 L21.086,19.809 C21.086,20.405 20.625,20.898 20.031,20.939 C19.536,20.974 19.131,20.990 18.818,20.990 C8.797,20.990 0.675,12.880 0.675,2.872 C0.675,2.560 0.692,2.155 0.727,1.660 C0.769,1.065 1.263,0.607 1.859,0.607 L5.868,0.607 C6.160,0.607 6.404,0.827 6.433,1.117 C6.459,1.376 6.483,1.583 6.505,1.741 C6.731,3.312 7.193,4.839 7.875,6.272 C7.983,6.499 7.913,6.769 7.709,6.913 L5.262,8.662 C6.758,12.143 9.536,14.917 13.022,16.412 L14.769,13.971 C14.916,13.766 15.189,13.696 15.418,13.804 C16.853,14.485 18.382,14.945 19.954,15.168 C20.112,15.192 20.319,15.216 20.578,15.241 C20.867,15.270 21.087,15.513 21.087,15.804 L21.086,15.804 Z'/%3E%3C/svg%3E");
}
.ft_info .time_sheet {
  font-size: 1em;
}

footer {
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url("../images/ft_bg02.jpg");
}
@media only screen and (min-width: 769px) {
  footer {
    padding: 97px 0 32px;
  }
}
footer p {
  margin-bottom: 0;
}
footer p,
footer a {
  color: #fff;
  text-decoration: none;
}
footer .ft_inner {
  position: relative;
}
footer .ft_link {
  font-size: min(1.2vw, 10px);
}
@media only screen and (min-width: 769px) {
  footer .ft_link .menu01 > ul {
    flex-flow: column wrap;
    align-content: space-between;
    max-height: 35em;
  }
  footer .ft_link .menu01 > ul > li:last-child {
    max-width: 13.3em;
  }
  footer .ft_link .menu02 > ul {
    display: grid;
    grid-template-columns: repeat(3, 1fr) 132px;
  }
  footer .ft_link .menu02 > ul .menu_child04:has(a.rotate) {
    margin-bottom: 5.2em;
  }
  footer .ft_link .menu02 > ul .menu_child06:has(a.rotate) {
    margin-bottom: 2.6em;
  }
  footer .ft_link .menu02 > ul .menu_child07:has(a.rotate) {
    margin-bottom: 2.1em;
  }
  footer .ft_link .menu02 > ul .menu_child09:has(a.rotate) {
    margin-bottom: 6em;
  }
  footer .ft_link .menu02 .menu_child.inside_menu_child {
    display: none;
  }
  footer .ft_link .menu02 .menu_child > a {
    position: relative;
  }
  footer .ft_link .menu02 .menu_child > a::after {
    content: "";
    position: absolute;
    width: 12px;
    height: 6px;
    top: 0px;
    bottom: 0px;
    right: -20px;
    margin: auto 0;
    background: var(--clr2);
    clip-path: polygon(50% 100%, 0 0, 100% 0);
    transition: all 0.3s;
  }
  footer .ft_link .menu02 .menu_child > a:hover {
    color: var(--main-color);
  }
  footer .ft_link .menu02 .menu_child > a:hover::after {
    background: var(--main-color);
  }
  footer .ft_link .menu02 .menu_child > a.rotate::after {
    transform: rotateX(180deg);
  }
  footer .ft_link .menu_child.menu_wrap {
    width: 55.5%;
  }
  footer .ft_link .menu_child.menu_wrap > ul {
    display: flex;
    flex-flow: column wrap;
    align-content: space-between;
    max-height: 30em;
  }
  footer .ft_link .menu_child.menu_wrap > ul > li {
    width: 52.5%;
  }
}
@media only screen and (min-width: 769px) and (max-width: 997px) {
  footer .ft_link .menu01 > ul > li:last-child {
    max-width: 100%;
  }
}

.ft_link {
  font-size: 10px;
}
.ft_link a {
  text-decoration: none;
}
@media only screen and (min-width: 769px) {
  .ft_link .menu01 {
    width: 100%;
    position: relative;
    padding-bottom: 4.2em;
  }
  .ft_link .menu01 a:hover {
    color: var(--main-color);
  }
  .ft_link .menu01 > ul {
    display: flex;
  }
  .ft_link .menu01 > ul > li {
    width: 25%;
  }
  .ft_link .menu01::before {
    content: "";
    position: absolute;
    max-width: 1170px;
    width: 200%;
    height: 1px;
    bottom: 0px;
    left: 0px;
    right: 0px;
    background: #d2d2d2;
  }
}
@media only screen and (min-width: 769px) and (min-width: 769px) and (max-width: 1024px) {
  .ft_link .menu01::before {
    width: 100%;
  }
}
@media only screen and (min-width: 769px) {
  .ft_link .menu02 {
    margin-top: 5em;
    width: 100%;
  }
  .ft_link .menu02 .menu_col > a {
    display: none;
  }
  .ft_link .menu02 a:hover {
    color: var(--clr2);
  }
  .ft_link .menu02 .menu_child:not(:last-child) {
    margin-bottom: 3.2em;
  }
  .ft_link .menu_child.menu_wrap {
    width: 50%;
  }
}
.ft_link .menu01 .menu_child > a,
.ft_link .title {
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
  pointer-events: none;
  font-family: var(--f-jp);
  color: var(--main-color);
  padding-left: 0;
}
.ft_link .menu01 .menu_child > a::before,
.ft_link .title::before {
  display: none;
}
@media only screen and (min-width: 769px) {
  .ft_link .menu01 .menu_child > a,
  .ft_link .title {
    font-size: calc(var(--ttl_size) - 6px);
  }
}
.ft_link .menu01 .menu_child > a:not([href="#"]) {
  pointer-events: all;
}
@media only screen and (min-width: 769px) {
  .ft_link .title {
    margin-bottom: 1.7083em;
  }
  .ft_link .menu01 .menu_child > a {
    margin-bottom: 1.2083em;
  }
  .ft_link .menu01 .menu_child > a:not([href="#"]):hover {
    color: var(--clr2);
  }
}
.ft_link .menu02 .menu_child > a {
  font-family: var(--f-jp);
  color: var(--clr2);
  font-size: calc(var(--ttl_size) - 10px);
  font-weight: 500;
  letter-spacing: 0.1em;
  padding-left: 0;
  cursor: pointer;
}
@media only screen and (min-width: 769px) {
  .ft_link .menu02 .menu_child > a {
    line-height: 1;
    margin-bottom: 0.55em;
  }
}
.ft_link .menu02 .menu_child > a::before {
  display: none;
}
.ft_link ul:last-child {
  margin-bottom: 0;
}
.ft_link li {
  letter-spacing: 0.1em;
  line-height: 2.5714285714;
}
.ft_link a {
  position: relative;
  padding-left: 0em;
  color: inherit;
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--clr1);
  line-height: 2.5714285714;
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .ft_link a {
    font-size: 13px;
  }
}
@media only screen and (min-width: 769px) {
  .ft_link a {
    display: table;
  }
}
.ft_link a::before {
  content: "・";
  margin-left: -0.35em;
  border-radius: 100%;
  width: auto;
  height: auto;
}
.ft_link a:hover {
  opacity: 1;
}

@media only screen and (min-width: 769px) {
  footer .link_list:not(:has(.menu02 .menu_child01 > a.rotate)) {
    padding-bottom: 100px;
  }
}
@media only screen and (min-width: 769px) {
  .copyright {
    position: absolute;
    bottom: 43px;
    right: 0;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1280px) {
  .copyright {
    bottom: 10px;
    right: 80px;
  }
}
.copyright .flex {
  align-items: center;
  justify-content: flex-end;
  min-height: 30px;
}
.copyright .textwidget {
  display: block;
  line-height: 30px;
  padding-left: 19px;
  margin-left: 19px;
  border-left: 1px solid #cecece;
  font-weight: 400;
  letter-spacing: 0.1em;
}
.copyright .textwidget p {
  margin-bottom: 0;
  font-size: 14px;
  color: var(--clr1);
  line-height: inherit;
  letter-spacing: 0.12em;
  position: relative;
  top: 3px;
}
@media only screen and (min-width: 769px) and (max-width: 1280px) {
  .copyright .textwidget p {
    font-size: 12px;
  }
}
.copyright .grits {
  margin-bottom: 0;
  line-height: 2.501;
}
.copyright .grits a {
  display: block;
}
.copyright .grits img {
  max-width: 143px;
}

iframe {
  border: none;
}

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

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