@charset "UTF-8";
:root {
  --f-jp: "Zen Maru Gothic", sans-serif;
  --main-color: #b81840;
  --clr1: #333;
  --clr2: #92b715;
  --ttl_size: 28px;
  --wrapper: 100px;
  --border-radius: 10px;
}

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

.rel {
  position: relative;
}

.ovh {
  overflow: hidden !important;
}

.ovs {
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  /* Lets it scroll lazy */
}

.lt0 {
  letter-spacing: 0 !important;
}

figure,
picture {
  text-align: center;
  line-height: 1;
}

.fblock {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.key {
  --radius: 120px;
  max-width: calc(100% - 60px);
  margin-left: auto;
  margin-right: auto;
  position: relative;
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .key {
    --radius: 80px;
    max-width: calc(100% - 40px);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .key {
    --radius: 40px;
  }
}
@media only screen and (max-width: 768px) {
  .key {
    --radius: 40px;
    max-width: calc(100% - 40px);
  }
}
@media only screen and (max-width: 480px) {
  .key {
    --radius: 20px;
    max-width: calc(100% - 20px);
  }
}

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

.btn {
  margin: 25px auto 0;
  max-width: 380px;
}
.btn a {
  text-decoration: none;
  font-size: 18px;
  letter-spacing: 0.05em;
  line-height: 1.5;
  min-height: 56px;
  border-radius: 28px;
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  font-weight: 500;
  padding-bottom: 0.1em;
  position: relative;
  transition: 0.3s all;
}
.btn a::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-image: url(../images/shared_btn_icon.png);
  width: 16px;
  height: 9px;
  top: calc(50% - 4px);
  right: 14px;
}
.btn a:hover {
  opacity: 1;
}
@media only screen and (min-width: 769px) and (max-width: 1280px) {
  .btn a {
    letter-spacing: 0;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .btn a {
    font-size: 16px;
  }
}
@media only screen and (max-width: 768px) {
  .btn a {
    font-size: 16px;
    letter-spacing: 0;
    text-align: center;
    justify-content: center;
  }
}
.btn.bg1 a {
  background-color: #fff;
  color: var(--main-color);
}
.btn.bg1 a::after {
  background-color: var(--main-color);
}
.btn.bg1 a:hover {
  color: var(--main-color);
}
@media only screen and (min-width: 769px) {
  .btn.bg1 a:not([target*=_blank]):hover {
    background-color: var(--main-color);
    color: #fff;
  }
  .btn.bg1 a:not([target*=_blank]):hover::after {
    background-color: #fff;
  }
}
.btn.bg2 a {
  background-color: var(--main-color);
  color: #fff;
}
.btn.bg2 a::after {
  background-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);
    color: #fff;
  }
  .btn.bg2 a:not([target*=_blank]):hover::after {
    background-color: #fff;
  }
}
.btn.bg3 a {
  background-color: var(--clr2);
  color: #fff;
}
.btn.bg3 a::after {
  background-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);
    color: #fff;
  }
  .btn.bg3 a:not([target*=_blank]):hover::after {
    background-color: #fff;
  }
}

.btn-group {
  margin: 25px auto 0;
}
.btn-group .btn {
  margin: 0;
}
.btn-group.col2 {
  max-width: 594px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.btn-group.col2 .btn {
  width: calc(50% - 22px);
}
.btn-group.col3 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.btn-group.col3 .btn {
  width: calc(33.3333333333% - 10px);
}
@media only screen and (max-width: 768px) {
  .btn-group.col2 {
    max-width: 280px;
    display: block;
  }
  .btn-group.col2 .btn {
    width: 100%;
  }
  .btn-group.col2 .btn:not(:last-child) {
    margin-bottom: 10px;
  }
  .btn-group.col3 {
    max-width: 280px;
    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,
.ovh header {
  background-color: #fff;
}

.header_top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  width: 100%;
  justify-content: space-between;
  margin: 0 auto;
  padding: 0 30px;
  height: 100%;
  transition: all 0.3s ease-in-out;
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .header_top {
    padding: 0 20px;
  }
}

.logo {
  width: 20%;
  max-width: 381px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.logo a {
  display: block;
  width: 100%;
  text-align: center;
}
.logo img {
  width: auto;
}
@media only screen and (min-width: 1919px) {
  .logo {
    width: 25%;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .logo {
    width: 25%;
  }
}

.right_head {
  width: 70%;
  max-width: 1164px;
  padding-right: 130px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}
@media only screen and (min-width: 1919px) {
  .right_head {
    padding-right: 10em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .right_head {
    padding-right: 110px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .right_head {
    padding-right: 90px;
  }
}

.pc_navi {
  width: 100%;
}
.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;
  transition: all 0.3s;
  border-color: var(--main-color) transparent transparent transparent;
  border-style: solid;
  border-width: 6px 6px 0px 6px;
  left: calc(50% - 6px);
  top: calc(100% + 0.875em);
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .pc_navi > ul > li.menu-item-has-children > a::after,
  .pc_navi > ul > li.menu-item-has-children > p::after {
    top: calc(100% + 0.6em);
  }
}
.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.1em;
  transition: all 0.2s ease;
  color: var(--clr1);
  padding-top: 1.625em;
}
.pc_navi > ul > li > a::before,
.pc_navi > ul > li > p::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  top: -0.625em;
  left: calc(50% - 1.25em);
  background-repeat: no-repeat;
  background-size: contain;
  width: 2.5em;
  height: 2.5em;
}
.pc_navi > ul > li:hover a.title::after,
.pc_navi > ul > li:hover p.title::after {
  transform: translateY(2px);
}
.pc_navi > ul .subInner {
  position: absolute;
  width: 18em;
  right: 50%;
  bottom: 0;
  padding-top: 1.875em;
  transform: translate(50%, 100%);
  transition: all 0.2s ease-in-out;
  opacity: 0;
  visibility: hidden;
  z-index: 1;
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  .pc_navi > ul .subInner {
    padding-top: 20px;
  }
}
.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%);
}

.pc_navi .icon1 a::before,
.pc_navi .icon1 p::before {
  background-image: url(../images/header_icon1.png);
}
.pc_navi .icon2 a::before,
.pc_navi .icon2 p::before {
  background-image: url(../images/header_icon2.png);
}
.pc_navi .icon3 a::before,
.pc_navi .icon3 p::before {
  background-image: url(../images/header_icon3.png);
}
.pc_navi .icon4 a::before,
.pc_navi .icon4 p::before {
  background-image: url(../images/header_icon4.png);
}
.pc_navi .icon5 a::before,
.pc_navi .icon5 p::before {
  background-image: url(../images/header_icon5.png);
}
.pc_navi .icon6 a::before,
.pc_navi .icon6 p::before {
  background-image: url(../images/header_icon6.png);
}

@media only screen and (min-width: 769px) {
  .pc_navi > ul .col2 .subInner {
    width: 440px;
  }
  .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%;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  :root {
    --wrapper: 80px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  :root {
    --wrapper: 70px;
  }
  .pc_navi > ul {
    font-size: 1.4vw;
  }
  .pc_navi > ul .subInner ul li a {
    font-size: 12px;
  }
}
.idx_gallery .list {
  display: flex;
}
.idx_gallery .list .img {
  padding-top: 2em;
}
.idx_gallery .list .img img {
  overflow: hidden;
  border-radius: 0.625em;
  margin: 0 6px;
}

.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;
  }
}
.totop {
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  position: fixed;
  z-index: 19;
  bottom: 20px;
  right: 20px;
}
.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: 66px;
  height: 66px;
  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;
  width: 1.5625em;
  height: 1.5625em;
}
.fixed_banner .tel p {
  background-color: var(--clr2);
  font-weight: 900;
}
.fixed_banner .tel p .tt::before {
  --mask: url(../images/fixed_icon_tel.png);
}
.fixed_banner .web p {
  background-color: var(--main-color);
  font-weight: 500;
}
.fixed_banner .web p .tt::before {
  --mask: url(../images/fixed_icon_web.png);
}
.fixed_banner .mail p {
  background-color: #5ac6d2;
}
.fixed_banner .mail 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' viewBox='0 0 272 196' %3E%3Cpath d='M233.995,0.755 L38.001,0.755 C17.197,0.755 0.331,17.258 0.331,37.614 L0.331,158.907 C0.331,179.250 17.197,195.759 38.001,195.759 L233.995,195.759 C254.798,195.759 271.666,179.250 271.666,158.907 L271.666,37.614 C271.666,17.258 254.798,0.755 233.995,0.755 ZM94.749,132.313 L41.999,176.344 C38.278,179.430 32.683,179.025 29.509,175.377 C26.333,171.737 26.775,166.259 30.500,163.160 L83.252,119.122 C86.970,116.029 92.565,116.474 95.739,120.108 C98.917,123.762 98.475,129.220 94.749,132.313 ZM135.998,115.591 C128.943,115.565 122.103,113.265 116.755,108.767 L116.759,108.767 L116.743,108.754 C116.747,108.754 116.751,108.754 116.755,108.767 L35.815,40.037 C32.118,36.892 31.724,31.428 34.930,27.807 C38.140,24.204 43.732,23.811 47.428,26.937 L128.388,95.673 C130.118,97.194 132.970,98.257 135.998,98.251 C139.022,98.251 141.824,97.200 143.650,95.628 L143.691,95.589 L224.568,26.943 C228.263,23.811 233.857,24.204 237.067,27.807 C240.272,31.428 239.878,36.892 236.180,40.037 L155.218,108.774 C149.889,113.259 143.058,115.585 135.998,115.591 ZM242.492,175.377 C239.316,179.025 233.721,179.430 230.003,176.344 L177.251,132.313 C173.526,129.220 173.084,123.762 176.261,120.108 C179.435,116.474 185.029,116.029 188.748,119.122 L241.501,163.160 C245.226,166.259 245.666,171.737 242.492,175.377 Z'/%3E%3C/svg%3E");
}

@media only screen and (min-width: 769px) {
  .fixed_banner {
    top: calc(50% - 8.4em);
    font-size: 10px;
    --size: 12em;
    width: 12em;
  }
  .fixed_banner > div {
    width: 12em;
    height: 8em;
    margin-bottom: 0.5em;
  }
  .fixed_banner p {
    width: 12em;
    height: 8em;
    border-radius: 40px 0 0 40px;
  }
  .fixed_banner p .tt {
    font-size: 1.6em;
    letter-spacing: 0;
    padding-left: 0.4em;
  }
  .fixed_banner p .tt::before {
    margin-bottom: 2px;
  }
  .fixed_banner .tel {
    --w_tel: 15em;
    transform: translateX(calc(-var(--size) - var(--w_tel)));
    transition: all 0.3s ease;
    margin-bottom: 2px;
  }
  .fixed_banner .tel .ov {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--clr2);
    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: 2em;
    font-weight: 500;
  }
  .fixed_banner .web p .tt {
    padding-bottom: 0.2em;
    letter-spacing: 0.1em;
  }
  .fixed_banner .web p .tt::before {
    margin-bottom: 4px;
  }
  .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_link {
  --clr: #fff;
}
.ft_link a {
  text-decoration: none;
}
@media only screen and (min-width: 769px) {
  .ft_link .menu01 {
    width: 55%;
  }
  .ft_link .menu2 {
    width: 45%;
  }
}
.ft_link .title {
  margin-bottom: 27px;
  padding-left: 0;
  font-size: calc(var(--ttl_size) + 8px);
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1;
  pointer-events: none;
  color: var(--clr);
  text-transform: uppercase;
}
.ft_link .title::before {
  display: none;
}
.ft_link ul:last-child {
  margin-bottom: 0;
}
.ft_link li {
  margin-bottom: 23.2px;
  letter-spacing: 0.1em;
  line-height: 1.6;
}
.ft_link a {
  display: table;
  position: relative;
  padding-left: 0em;
  color: inherit;
  font-size: 18px;
  letter-spacing: 0.1em;
  color: var(--clr);
  line-height: 1.6;
  padding-left: 1.1111em;
}
.ft_link a::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background-color: var(--clr);
  top: 0.7778em;
  left: 0.3889em;
}
.ft_link a:hover {
  opacity: 1;
  color: var(--clr);
}
@media only screen and (min-width: 769px) {
  .ft_link a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .ft_link a {
    letter-spacing: 0;
    font-size: 16px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 850px) {
  .ft_link a {
    font-size: 14px;
  }
}

footer .ft_gallery {
  background-color: #f9f1e7;
  padding: 40px 0;
}
footer .ft_gallery .img {
  --w: 480px;
  width: var(--w);
  aspect-ratio: 480/320;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: top center;
  border-radius: 12px;
  margin: 0 9px;
}
footer .ft_gallery .img1 {
  background-image: url(../images/ft_img1.jpg);
}
footer .ft_gallery .img2 {
  background-image: url(../images/ft_img2.jpg);
}
footer .ft_gallery .img3 {
  background-image: url(../images/ft_img3.jpg);
}
footer .ft_gallery .img4 {
  background-image: url(../images/ft_img4.jpg);
}
footer .ft_gallery .img5 {
  background-image: url(../images/ft_img5.jpg);
}
footer .ft_gallery .img6 {
  background-image: url(../images/ft_img6.jpg);
}
footer .ft_gallery .img7 {
  background-image: url(../images/ft_img7.jpg);
}
footer .ft_gallery .img8 {
  background-image: url(../images/ft_img8.jpg);
}
footer .ft_bg {
  background: url(../images/ft_bg.jpg) no-repeat top center/cover;
  padding: 114px 0 0;
}
footer .ft_info {
  max-width: 580px;
  width: 47%;
}
footer .ft_menu {
  width: 46.2%;
  margin-top: -11px;
}
footer .ft_txt {
  --w: 188px;
}
footer .ft_txt .ft_logo a {
  position: relative;
  padding-left: 188px;
  display: block;
}
footer .ft_txt .ft_logo a::before {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  background: url(../images/ft_logo_icon.png) no-repeat center/contain;
  width: calc(var(--w) - 18px);
  aspect-ratio: 170/143;
  top: -16px;
  left: 0;
}
footer .ft_address {
  display: flex;
  font-size: 18px;
  color: #fff;
  font-weight: 500;
  margin: 19px 0;
  line-height: 1.6666666667;
}
footer .idx_tel {
  max-width: 320px;
}
footer .idx_tel a {
  font-size: 36px;
  color: var(--main-color);
  background: #fff;
  padding: 0em 0 0.1667em 0.1111em;
}
footer .idx_tel a::before {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='21px' height='21px'%3E%3Cpath fill-rule='evenodd' fill='rgb(184, 24, 64)' d='M21.006,15.851 L21.006,19.818 C21.006,20.409 20.550,20.898 19.961,20.937 C19.470,20.973 19.069,20.990 18.759,20.990 C8.829,20.990 0.779,12.953 0.779,3.034 C0.779,2.724 0.796,2.322 0.831,1.834 C0.872,1.243 1.362,0.788 1.953,0.788 L5.926,0.788 C6.215,0.788 6.457,1.008 6.486,1.294 C6.511,1.552 6.535,1.756 6.558,1.913 C6.781,3.470 7.238,4.985 7.915,6.404 C8.021,6.629 7.952,6.895 7.750,7.038 L5.325,8.771 C6.807,12.220 9.561,14.972 13.015,16.451 L14.746,14.033 C14.892,13.831 15.163,13.761 15.389,13.869 C16.811,14.541 18.327,14.998 19.885,15.221 C20.041,15.243 20.247,15.268 20.503,15.292 C20.789,15.323 21.008,15.560 21.007,15.851 L21.006,15.851 Z'/%3E%3C/svg%3E");
  background-color: var(--main-color);
  width: 0.5833em;
  height: 0.5833em;
  margin-right: 0.1944em;
  margin-top: 0.3em;
}
footer .ft_address {
  padding-left: var(--w);
}
footer .idx_tel {
  margin-left: var(--w);
}
footer .ft_map {
  margin-top: 32px;
  height: 250px;
}
footer .ft_map iframe {
  border-radius: 12px;
}
footer .copyright {
  padding: 58px 0px 24px;
}
footer .copyright .flex {
  align-items: center;
  justify-content: center;
}
footer .copyright p {
  margin: 0;
}
footer .copyright img {
  max-width: 154px;
}
footer .copyright .textwidget p {
  color: #fff;
  line-height: 23px;
  padding-left: 16px;
  margin-left: 19px;
  border-left: 1px solid #fff;
  font-size: 14px;
  letter-spacing: 0.1em;
}
footer .shared_tbl {
  margin-top: 31px;
  background: transparent;
  border-radius: 0;
  padding: 0;
}
footer .shared_tbl table tr th,
footer .shared_tbl table tr td {
  color: #fff;
  width: 10.16%;
}
footer .shared_tbl table tr th:first-child,
footer .shared_tbl table tr td:first-child {
  width: auto;
  padding-left: 0.5em;
}
footer .shared_tbl table tr th:last-child,
footer .shared_tbl table tr td:last-child {
  width: 16.8%;
  letter-spacing: 0;
  padding-right: 0.5em;
}
footer .shared_tbl p {
  color: #fff;
}

.menu_toggle .ft_link {
  --clr: var(--clr1);
}
.menu_toggle .ft_link .title {
  color: var(--main-color);
}
@media only screen and (min-width: 769px) {
  .menu_toggle .ft_link .menu1,
  .menu_toggle .ft_link .menu2 {
    width: 50%;
  }
  .menu_toggle .ft_link .link_list > div > ul {
    display: flex;
    flex-flow: column wrap;
    align-content: space-between;
  }
  .menu_toggle .ft_link .link_list > div > ul li {
    width: 50%;
  }
  .menu_toggle .ft_link .menu1 ul {
    max-height: 19em;
  }
  .menu_toggle .ft_link .menu2 ul {
    max-height: 23em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1440px) {
  .menu_toggle .ft_link .link_list {
    padding-left: 60px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .menu_toggle .ft_link .link_list {
    padding-left: 40px;
  }
  .menu_toggle .ft_link .menu1 ul {
    max-height: 20em;
  }
  .menu_toggle .ft_link .menu2 ul {
    max-height: 25em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 850px) {
  .menu_toggle .ft_link .link_list {
    padding-left: 0px;
  }
  .menu_toggle .ft_link .menu1 ul {
    max-height: 20em;
  }
  .menu_toggle .ft_link .menu2 ul {
    max-height: 25em;
  }
}

.tbl_fixed {
  table-layout: fixed;
}

.tbl_align_top tr th,
.tbl_align_top tr td {
  vertical-align: top;
}

@media only screen and (min-width: 769px) and (max-width: 1366px) {
  footer .ft_gallery .img {
    --w: 250px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  footer .idx_tel {
    margin-left: auto;
    margin-right: auto;
  }
  footer .ft_menu {
    width: 50%;
  }
  footer .ft_menu .ft_link .menu2 {
    width: 48%;
  }
  footer .ft_txt {
    --w: 0;
  }
  footer .ft_txt .ft_logo a {
    padding-left: 0;
  }
  footer .ft_txt .ft_logo a::before {
    display: none;
  }
  footer .ft_txt .ft_logo img {
    content: url(../images/ft_logo_sp.png);
  }
  footer .ft_address {
    font-size: 16px;
    justify-content: center;
  }
  footer .shared_tbl table tr th:first-child,
  footer .shared_tbl table tr td:first-child {
    padding-left: 0;
    padding-right: 0;
  }
}
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                INDEX                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                Under                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
.shared_tbl {
  background-color: #fff;
  border-radius: 12px;
  padding: 29px 45px 24px 44px;
  margin-top: 27px;
}
.shared_tbl table tr {
  border-bottom: 1px solid #e1e1e1;
}
.shared_tbl table tr th,
.shared_tbl table tr td {
  padding: 0;
  letter-spacing: 0.1em;
  line-height: 1;
  text-align: center;
  width: 9.6%;
  border: 0;
  font-weight: 400;
  font-size: 1.125em;
}
.shared_tbl table tr th:first-child,
.shared_tbl table tr td:first-child {
  width: auto;
  padding-left: 0.3em;
}
.shared_tbl table tr th:last-child,
.shared_tbl table tr td:last-child {
  width: 15.7%;
}
.shared_tbl table tr th {
  padding-bottom: 23px;
}
.shared_tbl table tr td {
  padding-top: 18px;
  padding-bottom: 23px;
}
.shared_tbl p {
  font-size: 14px;
  padding: 17px 0 0 12px;
  letter-spacing: 0.05em;
}
.shared_tbl .clr1 {
  color: var(--main-color);
}
.shared_tbl .clr2 {
  color: var(--clr2);
}
@media only screen and (max-width: 1024px) and (min-width: 769px) {
  .shared_tbl {
    padding: 10px;
  }
  .shared_tbl table tr th,
  .shared_tbl table tr td {
    letter-spacing: 0;
    font-size: 14px;
  }
  .shared_tbl table tr th {
    padding-top: 0;
    padding-bottom: 10px;
  }
  .shared_tbl table tr td {
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .shared_tbl p {
    padding-left: 0;
    letter-spacing: 0;
    padding-top: 10px;
  }
}
@media only screen and (max-width: 768px) {
  .shared_tbl {
    padding: 20px;
  }
  .shared_tbl table tr th,
  .shared_tbl table tr td {
    letter-spacing: 0;
    font-size: 14px;
  }
  .shared_tbl table tr th {
    padding-bottom: 20px;
  }
  .shared_tbl table tr td {
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .shared_tbl p {
    padding-left: 0;
    letter-spacing: 0;
  }
}
@media only screen and (max-width: 480px) {
  .shared_tbl table tr th,
  .shared_tbl table tr td {
    letter-spacing: 0;
    font-size: 14px;
    width: 8%;
  }
  .shared_tbl table tr th:first-child,
  .shared_tbl table tr td:first-child {
    width: auto;
    padding-left: 0;
    padding-right: 0;
    text-align: center;
  }
  .shared_tbl table tr th:last-child,
  .shared_tbl table tr td:last-child {
    padding-left: 0;
    padding-right: 0;
    text-align: center;
    width: 16%;
    letter-spacing: -0.1em;
  }
  .shared_tbl p {
    padding-left: 0;
    letter-spacing: 0;
    font-size: min(4vw, 14px);
  }
}

.idx_tel {
  max-width: 420px;
}
.idx_tel a {
  display: flex;
  justify-content: center;
  font-weight: 500;
  letter-spacing: 0.1em;
  font-size: 42px;
  color: #fff;
  text-decoration: none;
  background-color: #7e9e13;
  border-radius: 12px;
  padding: 0.0952em 0 0.3095em 0.119em;
  align-items: center;
}
.idx_tel a::before {
  content: "";
  display: block;
  margin-right: 10px;
  mask-size: contain;
  mask-repeat: no-repeat;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='26px' height='26px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M26.008,19.435 L26.008,24.493 C26.008,25.246 25.426,25.870 24.675,25.920 C24.049,25.965 23.537,25.987 23.142,25.987 C10.480,25.987 0.217,15.740 0.217,3.092 C0.217,2.696 0.238,2.184 0.282,1.560 C0.335,0.809 0.959,0.228 1.713,0.228 L6.779,0.228 C7.148,0.228 7.456,0.508 7.493,0.874 C7.525,1.202 7.556,1.462 7.585,1.662 C7.869,3.648 8.453,5.579 9.315,7.389 C9.451,7.675 9.363,8.015 9.104,8.197 L6.013,10.407 C7.903,14.804 11.414,18.314 15.819,20.201 L18.025,17.116 C18.212,16.858 18.557,16.769 18.846,16.907 C20.659,17.764 22.591,18.347 24.578,18.631 C24.777,18.659 25.039,18.691 25.366,18.721 C25.731,18.761 26.010,19.065 26.009,19.435 L26.008,19.435 Z'/%3E%3C/svg%3E");
  background-color: #fff;
  width: 0.6193em;
  height: 0.6193em;
  margin-right: 0.23em;
  margin-top: 0.287em;
}
@media only screen and (max-width: 1024px) and (min-width: 769px) {
  .idx_tel a {
    letter-spacing: 0;
    font-size: min(4vw, 32px) !important;
  }
}
@media only screen and (max-width: 768px) {
  .idx_tel {
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
  }
  .idx_tel a {
    letter-spacing: 0;
    font-size: 28px;
    border-radius: 12px;
  }
}

.br769 {
  display: none;
}

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