@charset "UTF-8";
:root {
  --f-notosans: "Noto Sans JP", sans-serif;
  --f-jp: "Noto Serif JP", serif;
  --f-en: "Lato", sans-serif;
  --main-color: #74987d;
  --clr1: #111111;
  --clr2: #edb5b5;
  --ttl_size: 28px;
  --wrapper: 100px;
  --border-radius: 10px;
}

/*==========================================================================*/
/*//////////////////////////////////////////////////////////////////////////*/
/*//////                                                              //////*/
/*//////  Copyright (C) 2009 株式会社フリーセル All Rights Reserved.  //////*/
/*//////                                                              //////*/
/*//////////////////////////////////////////////////////////////////////////*/
/*                                                                          */
/*    base.css  --> スタイルの初期設定を行うため、変更しないで下さい。      */
/*    fonts.css --> フォントの初期設定を行うため、変更しないで下さい。      */
/*                                                                          */
/*==========================================================================*/
/*==========================================================================*/
/*                           Common-Setting                                 */
/*==========================================================================*/
body::-webkit-scrollbar {
  display: block;
  width: 10px;
  height: 10px;
}
body::-webkit-scrollbar-track {
  border-radius: 10px;
  background: #fff;
  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
          box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
}
body::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background: -webkit-gradient(linear, left top, left bottom, from(var(--clr2)), color-stop(50%, var(--main-color)), to(var(--clr2)));
  background: linear-gradient(to bottom, var(--clr2) 0%, var(--main-color) 50%, var(--clr2) 100%);
  -webkit-box-shadow: inset 0 0 6px #fff;
          box-shadow: inset 0 0 6px #fff;
}
body::-webkit-scrollbar-thumb:window-inactive {
  background: -webkit-gradient(linear, left top, left bottom, from(var(--clr2)), color-stop(50%, var(--main-color)), to(var(--clr2)));
  background: linear-gradient(to bottom, var(--clr2) 0%, var(--main-color) 50%, var(--clr2) 100%);
}
body {
  background-color: #ffffff;
  -webkit-text-size-adjust: none;
  letter-spacing: 0.1em;
  color: var(--clr1);
  font-family: var(--f-jp);
}

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.tel_click {
  text-decoration: none;
  color: inherit;
}

@media only screen and (min-width: 769px) {
  a:not(.tel_click, [target*=_blank]) {
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
  }
  a:not(.tel_click, [target*=_blank]):hover {
    opacity: 0.7;
  }
  a.tel_click {
    pointer-events: none;
  }
  a:not(.tel_click, [target*=_blank]):hover, a:not(.tel_click, [target*=_blank]):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: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

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

.red {
  color: #ca0a0a !important;
}

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

.fl {
  float: left;
}

.fr {
  float: right;
}

.br-auto {
  display: inline-block;
}

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

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

.wrapper {
  overflow: hidden;
}

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

.inner_max {
  max-width: 1480px;
}

.inner_big {
  max-width: 1320px;
}

.inner {
  max-width: 1210px;
}

.inner_sm {
  max-width: 1020px;
}

.fullWidthBreak {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

.txt_ver {
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
}

@media only screen and (min-width: 769px) {
  .txt_ver_pc {
    -webkit-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
            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;
  margin-top: 79px;
}
.TabContainer .TabContent .content {
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}
.TabContainer .TabContent .content > div {
  opacity: 0;
  z-index: -10;
  visibility: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  -webkit-transition: all 0.5s ease-in-out;
  transition: all 0.5s ease-in-out;
}
.TabContainer .TabContent .content > div.active {
  opacity: 1;
  z-index: 1;
  visibility: visible;
}
.TabContainer .TabPager {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 95%;
  margin: 0px auto;
  max-width: 1530px;
  gap: 1px;
}
.TabContainer .TabPager > div {
  background-color: rgba(21, 67, 43, 0.5);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  position: relative;
  margin: 0;
  padding: 26px 10px 24px;
  width: calc(25% - 1px);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  cursor: pointer;
  color: #ffffff;
  border-radius: 20px 20px 0px 0px;
  max-width: 305px;
}
.TabContainer .TabPager > div::before, .TabContainer .TabPager > div::after {
  position: absolute;
  content: "";
  width: 100vw;
  height: 1px;
  background-color: var(--main-color);
  bottom: -1px;
  z-index: -1;
}
.TabContainer .TabPager > div::before {
  right: calc(50% + 151px);
}
.TabContainer .TabPager > div::after {
  left: calc(50% + 152px);
}
.TabContainer .TabPager > div p {
  margin: 0;
  font-size: 10px;
  line-height: 2;
  color: #fff;
  position: relative;
}
.TabContainer .TabPager > div p::after {
  position: absolute;
  content: "";
  left: calc(50% - 8px);
  bottom: -31px;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: 100% auto;
          mask-size: 100% auto;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='31px' height='19px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M0.549,2.399 C0.549,1.873 0.742,1.348 1.128,0.952 C1.896,0.152 3.143,0.152 3.912,0.952 L15.683,13.176 L27.453,0.952 C28.222,0.152 29.469,0.152 30.238,0.952 C31.006,1.750 31.006,3.044 30.238,3.844 L17.075,17.517 C16.306,18.317 15.059,18.317 14.290,17.517 L1.128,3.844 C0.742,3.441 0.549,2.923 0.549,2.399 Z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='31px' height='19px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M0.549,2.399 C0.549,1.873 0.742,1.348 1.128,0.952 C1.896,0.152 3.143,0.152 3.912,0.952 L15.683,13.176 L27.453,0.952 C28.222,0.152 29.469,0.152 30.238,0.952 C31.006,1.750 31.006,3.044 30.238,3.844 L17.075,17.517 C16.306,18.317 15.059,18.317 14.290,17.517 L1.128,3.844 C0.742,3.441 0.549,2.923 0.549,2.399 Z'/%3E%3C/svg%3E");
  background-color: var(--main-color);
  width: 16px;
  height: 10px;
  opacity: 0;
}
.TabContainer .TabPager > div p span {
  display: block;
  line-height: 1;
}
.TabContainer .TabPager > div p .jp {
  font-size: 2.6em;
  letter-spacing: 0.1em;
  font-weight: 500;
  margin-bottom: 0.3846153em;
}
.TabContainer .TabPager > div p .sm {
  font-weight: 400;
  letter-spacing: 0.1em;
  font-size: 1.1em;
  text-transform: uppercase;
}
.TabContainer .TabPager > div.active {
  background-color: unset;
  z-index: 1;
  border: 1px solid var(--main-color);
  border-bottom: 0;
}
.TabContainer .TabPager > div.active:hover {
  background-color: unset;
}
.TabContainer .TabPager > div.active p {
  color: var(--main-color);
}
.TabContainer .TabPager > div.active p::after {
  opacity: 1;
}
@media only screen and (min-width: 769px) {
  .TabContainer .TabPager > div:hover {
    background-color: rgba(21, 67, 43, 0.8);
  }
}
@media only screen and (max-width: 1560px) and (min-width: 769px) {
  .TabContainer .TabContent {
    margin-top: 50px;
  }
}
@media only screen and (max-width: 1280px) and (min-width: 769px) {
  .TabContainer .TabPager > div::before {
    right: calc(50% + 11.3vw);
  }
  .TabContainer .TabPager > div::after {
    left: calc(50% + 11.3vw);
  }
  .TabContainer .TabPager > div p .jp {
    font-size: min(2.4em, 1.8vw);
  }
}
@media only screen and (max-width: 1024px) and (min-width: 769px) {
  .TabContainer .TabPager > div {
    padding-left: 5px;
    padding-right: 5px;
  }
  .TabContainer .TabPager > div::before {
    right: calc(50% + 114px);
  }
  .TabContainer .TabPager > div::after {
    left: calc(50% + 114px);
  }
}
@media only screen and (max-width: 991px) and (min-width: 769px) {
  .TabContainer .TabPager > div::before {
    right: calc(50% + 84px);
  }
  .TabContainer .TabPager > div::after {
    left: calc(50% + 84px);
  }
}
@media only screen and (max-width: 768px) {
  .TabContainer .TabPager {
    width: 100%;
  }
  .TabContainer .TabPager > div {
    padding-top: 15px;
    padding-bottom: 15px;
  }
  .TabContainer .TabPager > div:not(:first-child) p::after {
    bottom: -20px;
  }
  .TabContainer .TabPager > div p {
    font-size: 8px;
  }
  .TabContainer .TabPager > div p .jp {
    font-size: min(2em, 2.6vw);
    line-height: 1.4;
  }
  .TabContainer .TabPager > div::before {
    right: calc(50% + 11.6vw);
  }
  .TabContainer .TabPager > div::after {
    left: calc(50% + 11.7vw);
  }
  .TabContainer .TabContent {
    margin-top: 30px;
  }
}
@media only screen and (max-width: 600px) {
  .TabContainer .TabPager {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .TabContainer .TabPager > div {
    width: calc(50% - 1px);
    padding-top: 15px;
    padding-bottom: 25px;
  }
  .TabContainer .TabPager > div p .jp {
    font-size: 4.5vw;
  }
  .TabContainer .TabPager > div::before, .TabContainer .TabPager > div::after {
    display: none;
  }
  .TabContainer .TabPager > div.active {
    border: 1px solid #fff;
  }
  .TabContainer .TabPager > div:first-child .tt::after {
    bottom: -25px;
  }
  .TabContainer .TabPager > div:first-child, .TabContainer .TabPager > div:nth-child(3) {
    border-top-right-radius: 0;
  }
  .TabContainer .TabPager > div:nth-child(3) {
    border-radius: 0;
  }
  .TabContainer .TabPager > div:nth-child(2), .TabContainer .TabPager > div:last-child {
    border-top-left-radius: 0;
  }
  .TabContainer .TabPager > div:last-child {
    border-radius: 0;
  }
}

.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: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.key {
  position: relative;
}

.txt_l {
  float: left;
  width: calc(100% - 385px);
}

.txt_r {
  float: right;
  width: calc(100% - 385px);
}

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

.tel_click {
  display: table;
  text-decoration: none;
}
.tel_click .icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.05em;
  font-size: 2.25em;
}
.tel_click .icon::before {
  content: "Tel.";
  display: block;
  margin-top: 6px;
  margin-right: 29px;
  width: 0.893em;
  height: 0.893em;
  color: #fff;
  font-size: 16px;
  letter-spacing: 0.05em;
  font-weight: 500;
  font-family: var(--f-jp);
}

.btn a {
  position: relative;
  color: var(--main-color);
  text-decoration: none;
  font-family: var(--f-jp);
}
.btn a::after {
  content: "";
  display: block;
  position: absolute;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  width: 26px;
  height: 26px;
  right: 16px;
  top: calc(50% - 12px);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-image: url(../images/btn-arr.png);
}

.btn-group {
  font-size: 0.625em;
}
.btn-group .btn {
  font-size: 1em;
}
.btn-group .btn.style01, .btn-group .btn.style02 {
  width: 100%;
  min-width: 180px;
  max-width: 400px;
  overflow: hidden;
}
.btn-group .btn.style01 a, .btn-group .btn.style02 a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 3.3333333333em;
  padding: 0.5em 1em;
  font-size: 2.4em;
  letter-spacing: 0.1em;
  line-height: 1.5;
  color: #fff;
  text-align: center;
  background-color: var(--main-color);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  border-radius: 40px;
  font-weight: 500;
}
.btn-group .btn.style01 a:hover, .btn-group .btn.style02 a:hover {
  opacity: 1;
}
@media only screen and (min-width: 769px) {
  .btn-group .btn.style01 a:hover, .btn-group .btn.style02 a:hover {
    background-color: #aac597;
  }
}
@media only screen and (max-width: 1280px) and (min-width: 769px) {
  .btn-group .btn.style01 a, .btn-group .btn.style02 a {
    font-size: 2.2em;
  }
}
@media only screen and (max-width: 991px) and (min-width: 769px) {
  .btn-group .btn.style01 a, .btn-group .btn.style02 a {
    font-size: 2em;
  }
}
.btn-group .btn.style02 a {
  background-color: unset;
  border: 1px solid #fff;
}
@media only screen and (min-width: 769px) {
  .btn-group .btn.style02 a:hover {
    background-color: var(--main-color);
  }
}
.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;
  -webkit-transform: translateY(-50%);
          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;
}

.idx-map {
  height: 450px;
}

.chatAi {
  position: fixed;
  bottom: 2em;
  right: 15em;
  font-size: 10px;
  width: 30em;
  z-index: 2;
  height: 10em;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.chatAi button {
  width: 100%;
  height: 100%;
  border: 0;
  background-color: #adc99a;
  border-radius: 50px;
  -webkit-box-shadow: 0px 3px 20px 0px rgba(0, 0, 0, 0.15);
          box-shadow: 0px 3px 20px 0px rgba(0, 0, 0, 0.15);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  cursor: pointer;
}
.chatAi button span {
  font-size: 3em;
  letter-spacing: 0.05em;
  font-weight: 500;
  color: #fff;
  font-family: var(--f-jp);
  text-transform: uppercase;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.chatAi button span::before, .chatAi button span::after {
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% auto;
}
.chatAi button span::before {
  display: block;
  content: "";
  margin-right: 0.3333333333em;
  width: 1.6em;
  height: 1.4666666667em;
  background-image: url(../images/aichat-icon.png);
}
.chatAi button span::after {
  position: absolute;
  content: "";
  top: 0.3666666667em;
  right: 0.4333333333em;
  width: 1.5333333333em;
  height: 1.4666666667em;
  background-image: url(../images/aichat-shape.png);
}
@media only screen and (min-width: 769px) {
  .chatAi button:hover {
    background-color: var(--main-color);
  }
}
.chatAi.active {
  font-size: 8px;
  right: 13em;
}
@media only screen and (max-width: 1560px) and (min-width: 769px) {
  .chatAi {
    bottom: 20px;
    right: 20px;
    font-size: 7px;
  }
  .chatAi.active {
    font-size: 7px;
    right: 15em;
  }
}
@media only screen and (max-width: 1440px) and (min-width: 769px) {
  .chatAi {
    font-size: 8px;
  }
  .chatAi.active {
    font-size: 6.5px;
    right: 16em;
  }
}
@media only screen and (max-width: 1366px) and (min-width: 769px) {
  .chatAi {
    font-size: 6px;
  }
}
@media only screen and (max-width: 991px) and (min-width: 769px) {
  .chatAi {
    font-size: 5.5px;
  }
  .chatAi.active {
    right: 15em;
    font-size: 5.5px;
  }
}
@media only screen and (max-width: 768px) {
  .chatAi {
    font-size: 6px;
    right: 2em;
    bottom: 60px;
  }
  .chatAi.active {
    right: 20px;
    font-size: 6px;
    bottom: 135px;
  }
}
@media only screen and (max-width: 374px) {
  .chatAi.active {
    font-size: 4.5px;
    right: 10px;
  }
}

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

header.active,
.ovh header {
  background-color: #fff;
}
header.active .logo,
.ovh header .logo {
  top: 0;
}
@media only screen and (min-width: 769px) {
  header.active .header_top,
  .ovh header .header_top {
    padding: 5px 20px;
  }
  header.active .hamburger-btn,
  .ovh header .hamburger-btn {
    right: 20px;
    top: 0;
  }
  header.active .right_head,
  .ovh header .right_head {
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 0;
    padding-right: 130px;
    -webkit-box-shadow: unset;
            box-shadow: unset;
    max-width: 1000px;
  }
}
@media only screen and (max-width: 1024px) and (min-width: 769px) {
  header.active .right_head,
  .ovh header .right_head {
    padding-right: 65px !important;
  }
  header.active .hamburger-btn,
  .ovh header .hamburger-btn {
    right: 0;
  }
}

.header_top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin: 0 auto;
  padding: 20px 15px 5px;
  padding-left: 31px;
  height: 100%;
  -webkit-transition: all 0.3s ease-in-out;
  transition: all 0.3s ease-in-out;
}

.logo {
  width: 26%;
  max-width: 468px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  top: 5px;
}
.logo a {
  display: block;
  width: 100%;
  text-align: center;
}
.logo img {
  width: auto;
}

.hd-ins {
  width: 23px;
  height: 23px;
  margin-top: 5px;
}

.right_head {
  width: 70%;
  max-width: 1280px;
  padding-right: 240px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  position: relative;
  background-color: #fff;
  border-radius: 50px;
  padding-top: 29px;
  padding-bottom: 31px;
  padding-left: 81px;
  -webkit-box-shadow: 0px 3px 40px 0px rgba(0, 0, 0, 0.1);
          box-shadow: 0px 3px 40px 0px rgba(0, 0, 0, 0.1);
}

.pc_navi {
  width: 100%;
}
.pc_navi > ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  text-align: center;
  width: 100%;
}
.pc_navi > ul > li {
  position: relative;
}
.pc_navi > ul > li:has(.subInner.active) > .title {
  color: #edb5b5;
}
.pc_navi > ul > li:has(.subInner.active) > a::after,
.pc_navi > ul > li:has(.subInner.active) > p::after {
  background-image: url(../images/menu-arr-hover.png);
}
.pc_navi > ul > li:hover > a,
.pc_navi > ul > li:hover > p {
  color: var(--main-color);
}
.pc_navi > ul > li:first-child .subInner {
  width: 45em;
}
.pc_navi > ul > li:nth-child(3) .subInner {
  width: 35em;
}
@media only screen and (max-width: 991px) and (min-width: 769px) {
  .pc_navi > ul > li:first-child .subInner {
    right: calc(50% - 5em);
    width: 55em;
  }
  .pc_navi > ul > li:nth-child(3) .subInner {
    width: 45em;
  }
  .pc_navi > ul > li:nth-child(4) .subInner {
    right: 100%;
  }
}
.pc_navi > ul > li.menu-item-has-children > a::after,
.pc_navi > ul > li.menu-item-has-children > p::after {
  position: absolute;
  content: "";
  bottom: -0.7777777778em;
  left: calc(50% - 0.4444444444em);
  width: 0.7777777778em;
  height: 0.7777777778em;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-image: url(../images/menu-arr.png);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
@media only screen and (max-width: 1024px) {
  .pc_navi > ul > li.menu-item-has-children > a::after,
  .pc_navi > ul > li.menu-item-has-children > p::after {
    bottom: -0.5em;
  }
}
.pc_navi > ul > li.menu-item-has-children > a:hover::after,
.pc_navi > ul > li.menu-item-has-children > p:hover::after {
  -webkit-transform: translateY(5px);
          transform: translateY(5px);
  background-image: url(../images/menu-arr-hover.png);
}
.pc_navi > ul > li > a,
.pc_navi > ul > li > p {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0;
  height: 40px;
  text-decoration: none;
  text-align: center;
  font-weight: 500;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0.1em;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
  color: var(--main-color);
}
.pc_navi > ul > li > a span,
.pc_navi > ul > li > p span {
  display: block;
  width: 100%;
  padding-top: 0px;
  font-size: 66.6666666667%;
  font-weight: 600;
}
@media only screen and (min-width: 769px) {
  .pc_navi > ul > li > a:hover,
  .pc_navi > ul > li > p:hover {
    color: #edb5b5;
  }
}
.pc_navi > ul > li:hover a.title::after,
.pc_navi > ul > li:hover p.title::after {
  -webkit-transform: translateY(5px);
          transform: translateY(5px);
}
.pc_navi > ul .subInner {
  position: absolute;
  width: 22em;
  right: 50%;
  bottom: -25px;
  padding-top: 0px;
  -webkit-transform: translate(50%, 100%);
          transform: translate(50%, 100%);
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
  opacity: 0;
  visibility: hidden;
  z-index: 1;
}
.pc_navi > ul .subInner.active {
  opacity: 1;
  visibility: visible;
}
.pc_navi > ul .subInner ul {
  background-color: #74987d;
  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);
  -webkit-transition: all 0.2s ease;
  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;
  -webkit-transform: translateY(-54%);
          transform: translateY(-54%);
}

@media only screen and (min-width: 769px) {
  .pc_navi > ul .col2 .subInner {
    width: 440px;
  }
  .pc_navi > ul .col2 .subInner ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
  }
  .pc_navi > ul .col2 .subInner ul li {
    width: 50%;
  }
  .menu_toggle .inside .ft_link {
    width: 100%;
    max-width: 1038px;
    margin: auto;
    min-height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .menu_toggle .inside .ft_link .link_list {
    width: 100%;
  }
}
@media only screen and (min-width: 769px) and (min-width: 769px) {
  .menu_toggle .inside .ft_link li {
    margin-bottom: 0.8em;
  }
}
@media only screen and (min-width: 769px) {
  .menu_toggle .inside .ft_link .ttl-sm,
  .menu_toggle .inside .ft_link .title {
    color: #fff;
  }
}
@media only screen and (min-width: 769px) and (min-width: 769px) and (max-width: 1560px) {
  .menu_toggle .inside .ft_link {
    font-size: min(16px, 0.87vw);
  }
}
@media only screen and (min-width: 769px) and (min-width: 769px) and (max-width: 1440px) {
  .menu_toggle .inside .ft_link {
    font-size: min(16px, 0.95vw);
  }
}
@media only screen and (min-width: 769px) and (min-width: 769px) and (max-width: 1024px) {
  .menu_toggle .inside .ft_link {
    font-size: min(14px, 1.5vw);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1560px) {
  .right_head {
    padding-top: 15px;
    padding-bottom: 25px;
    padding-right: 200px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1440px) {
  .right_head {
    padding-right: 190px !important;
  }
  .home_page .header_top {
    padding: 20px 15px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px) {
  :root {
    --wrapper: 100px;
  }
  .right_head {
    padding-top: 15px;
    padding-bottom: 25px;
  }
  .pc_navi > ul > li > a,
  .pc_navi > ul > li > p {
    font-size: 16px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1280px) {
  .right_head {
    padding-right: 120px !important;
    padding-left: 30px;
    padding-top: 24px;
  }
  .header_top {
    padding: 10px 15px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .right_head {
    padding-right: 95px !important;
    padding-left: 20px;
    padding-top: 10px;
    padding-bottom: 20px;
  }
  .pc_navi > ul {
    font-size: 1.4vw;
  }
  .pc_navi > ul > li > a,
  .pc_navi > ul > li p {
    font-size: min(16px, 1.6vw);
  }
  .pc_navi > ul .subInner ul li a {
    font-size: 12px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .home_page .right_head {
    padding-right: 80px !important;
  }
}
.idx_gallery .list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.idx_gallery .list .img img {
  margin: 0 1px;
}
@media only screen and (min-width: 769px) and (max-width: 1280px) {
  .idx_gallery .list .img {
    width: 250px;
  }
}
@media only screen and (max-width: 768px) {
  .idx_gallery .list .img {
    width: 200px;
  }
}

.time_sheet {
  margin: 0px auto;
}
.time_sheet .note {
  margin-top: 18px;
  line-height: 2;
  font-size: 14px;
  letter-spacing: 0.1em;
  padding-left: 17px;
}
.time_sheet .note span {
  display: inline-block;
  margin-right: 11px;
}
.time_sheet table {
  -webkit-font-feature-settings: "palt";
          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: 10.1%;
  border-bottom: 1px solid #cde5bc;
  padding: 0;
}
.time_sheet table th:first-child,
.time_sheet table td:first-child {
  width: 27.4%;
  padding-left: 0.5em;
}
.time_sheet table th:last-child,
.time_sheet table td:last-child {
  width: 12%;
  padding-right: 0.8333333em;
}
.time_sheet table tr:first-child th,
.time_sheet table tr:first-child td {
  background-color: #74987d;
  color: #fff;
  border-bottom: 0;
  padding-top: 1.25em;
  padding-bottom: 1.125em;
}
.time_sheet table tr:nth-child(2) td {
  padding-top: 1.875em;
  padding-bottom: 1.5em;
}
.time_sheet table tr:nth-child(3) td {
  padding-top: 1.4375em;
  padding-bottom: 1.5625em;
}
.time_sheet.white tr:first-child th,
.time_sheet.white tr:first-child td {
  background-color: unset;
  border-bottom: 1px solid #ffffff;
}
.time_sheet.white th,
.time_sheet.white td {
  color: #fff;
  border-bottom: 1px solid #ffffff;
}

@media only screen and (max-width: 992px) and (min-width: 769px) {
  :root {
    --ttl_size: 22px;
    --wrapper: 80px;
  }
}
.totop {
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  opacity: 0;
  visibility: hidden;
  cursor: pointer;
  position: fixed;
  z-index: 19;
  bottom: 120px;
  right: 25px;
  width: 66px;
  height: 66px;
  background-color: #15432b;
  border-radius: 50%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.totop.active {
  opacity: 1;
  visibility: visible;
}
.totop span {
  color: #fff;
  font-size: 12px;
  letter-spacing: 0.1em;
}
.totop span::before {
  display: block;
  content: "";
  margin-left: auto;
  margin-right: auto;
  width: 10px;
  margin-bottom: 5px;
  height: 7px;
  background-color: #fff;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
@media only screen and (max-width: 1280px) and (min-width: 769px) {
  .totop {
    right: 20px;
  }
}
@media only screen and (max-width: 991px) and (min-width: 769px) {
  .totop {
    right: 10px;
    width: 55px;
    height: 55px;
  }
}

@media only screen and (min-width: 769px) {
  .totop:hover {
    background-color: #edb5b5;
  }
}
.bounce {
  -webkit-animation-name: bounces;
          animation-name: bounces;
}

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

@-webkit-keyframes bounces {
  0%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(-5px);
            transform: translateY(-5px);
  }
}

@keyframes bounces {
  0%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  50% {
    -webkit-transform: translateY(-5px);
            transform: translateY(-5px);
  }
}
@-webkit-keyframes fixed_banner {
  0% {
    left: 0;
    opacity: 1;
  }
  100% {
    left: -3px;
    opacity: 0.7;
  }
}
@keyframes fixed_banner {
  0% {
    left: 0;
    opacity: 1;
  }
  100% {
    left: -3px;
    opacity: 0.7;
  }
}
.fixed_banner {
  position: fixed;
  top: 410px;
  right: 15px;
  z-index: 15;
  -webkit-transition: right 0.3s ease-in-out;
  transition: right 0.3s ease-in-out;
}
.fixed_banner > div {
  position: relative;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
}
.fixed_banner a {
  content: "";
  display: block;
  position: absolute;
  -webkit-transition: all 0.3s;
  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: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}
.fixed_banner p .tt::before {
  content: "";
  display: block;
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: 100% auto;
  -webkit-mask-size: 100% auto;
  mask-position: center;
  -webkit-mask-position: center;
  background-color: #fff;
}
.fixed_banner .tel p {
  background-color: #74987d;
}
.fixed_banner .tel p .tt::before {
  margin-bottom: 0.45em;
  width: 1.5em;
  height: 1.5em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='46px' height='46px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M45.898,34.303 L45.898,43.223 C45.898,44.542 44.872,45.645 43.550,45.735 C42.445,45.812 41.545,45.855 40.847,45.855 C18.536,45.855 0.450,27.793 0.450,5.507 C0.450,4.813 0.486,3.907 0.565,2.806 C0.658,1.481 1.759,0.462 3.085,0.462 L12.013,0.462 C12.662,0.462 13.206,0.957 13.270,1.599 C13.329,2.174 13.381,2.635 13.432,2.986 C13.933,6.487 14.963,9.890 16.483,13.081 C16.723,13.590 16.567,14.185 16.111,14.506 L10.663,18.399 C13.994,26.147 20.181,32.331 27.943,35.655 L31.832,30.223 C32.160,29.764 32.768,29.610 33.278,29.851 C36.473,31.365 39.878,32.393 43.378,32.887 C43.728,32.940 44.191,32.995 44.767,33.049 C45.412,33.118 45.902,33.655 45.900,34.303 L45.898,34.303 Z'/%3E%3C/svg%3E");
}
.fixed_banner .web p {
  background-color: #edb5b5;
}
.fixed_banner .web p .tt::before {
  margin-bottom: 0.5em;
  width: 1.6428571429em;
  height: 1.7142857143em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='46px' height='48px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M44.774,47.992 L2.634,47.992 C1.179,47.992 -0.000,46.874 -0.000,45.491 L-0.000,10.469 C-0.000,9.086 1.179,7.967 2.634,7.967 L10.534,7.967 L10.534,2.963 C10.534,1.584 11.713,0.462 13.168,0.462 C14.623,0.462 15.802,1.584 15.802,2.963 L15.802,7.967 L31.604,7.967 L31.604,2.963 C31.604,1.584 32.785,0.462 34.238,0.462 C35.693,0.462 36.872,1.584 36.872,2.963 L36.872,7.967 L42.140,7.967 L44.774,7.967 C46.229,7.967 45.553,9.086 45.553,10.469 L45.553,45.491 C45.553,46.874 46.229,47.992 44.774,47.992 ZM21.727,31.949 L17.005,27.465 C15.977,26.489 14.310,26.489 13.281,27.465 C12.253,28.439 12.253,30.022 13.281,31.001 L19.866,37.257 C20.361,37.723 21.031,37.987 21.727,37.987 C22.426,37.987 23.096,37.723 23.590,37.257 L34.124,27.248 C35.155,26.270 35.155,24.687 34.124,23.709 C33.096,22.735 31.431,22.735 30.400,23.709 L21.727,31.949 Z'/%3E%3C/svg%3E");
}
.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");
}
.fixed_banner .ins p {
  background-image: url(../images/ins-bg.png);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.fixed_banner .ins p .tt::before {
  margin-bottom: 0.45em;
  width: 1.6428571429em;
  height: 1.6428571429em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='45px' height='45px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M44.297,32.447 C44.068,40.024 39.077,44.788 31.497,44.890 C25.303,44.968 19.106,44.974 12.912,44.883 C5.185,44.769 0.223,39.773 0.064,32.055 C-0.001,28.889 0.053,25.722 0.052,22.556 C0.052,19.388 -0.009,16.221 0.064,13.055 C0.236,5.602 5.127,0.678 12.556,0.569 C18.882,0.479 25.211,0.486 31.537,0.564 C39.073,0.662 44.085,5.481 44.300,13.051 C44.485,19.509 44.493,25.984 44.297,32.447 ZM40.393,13.397 C40.290,7.926 36.967,4.703 31.494,4.640 C25.362,4.571 19.227,4.574 13.094,4.639 C7.346,4.699 4.170,7.915 4.128,13.669 C4.085,19.677 4.085,25.684 4.129,31.694 C4.170,37.491 7.238,40.603 13.051,40.748 C16.083,40.821 19.118,40.760 22.152,40.760 C22.152,40.749 22.152,40.742 22.152,40.732 C25.383,40.732 28.619,40.835 31.845,40.709 C37.095,40.504 40.303,37.277 40.395,32.014 C40.503,25.811 40.510,19.602 40.393,13.397 ZM34.093,13.449 C32.661,13.530 31.388,12.264 31.494,10.847 C31.607,9.337 32.474,8.439 34.012,8.362 C35.481,8.289 36.633,9.488 36.596,11.188 C36.458,12.490 35.615,13.359 34.093,13.449 ZM22.247,34.045 C15.899,34.099 10.803,29.044 10.770,22.661 C10.738,16.322 15.840,11.206 22.182,11.209 C28.476,11.213 33.659,16.424 33.605,22.693 C33.550,28.939 28.494,33.994 22.247,34.045 ZM22.192,15.285 C18.142,15.278 14.766,18.704 14.843,22.748 C14.919,26.736 18.252,29.967 22.253,29.930 C26.257,29.896 29.491,26.607 29.476,22.586 C29.460,18.579 26.181,15.294 22.192,15.285 Z'/%3E%3C/svg%3E");
}
.fixed_banner .chatbox button {
  width: 100%;
  height: 100%;
  border: 0;
  background-color: #adc99a;
  color: #fff;
  padding-top: 0.5em;
}
.fixed_banner .chatbox button span {
  font-size: 14px;
  letter-spacing: 0.05em;
  font-weight: 500;
  color: #fff;
  font-family: var(--f-jp);
  text-transform: uppercase;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
}
.fixed_banner .chatbox button span::before, .fixed_banner .chatbox button span::after {
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% auto;
}
.fixed_banner .chatbox button span::before {
  display: block;
  content: "";
  margin-right: 0.3333333333em;
  width: 1.6em;
  height: 1.4666666667em;
  background-image: url(../images/aichat-icon.png);
}
.fixed_banner .chatbox button span::after {
  display: none;
  position: absolute;
  content: "";
  top: -0.5em;
  right: -1.5em;
  width: 1.5333333333em;
  height: 1.4666666667em;
  background-image: url(../images/aichat-shape.png);
}
@media only screen and (max-width: 1560px) and (min-width: 769px) {
  .fixed_banner {
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
}
@media only screen and (max-width: 1366px) and (min-width: 769px) {
  .fixed_banner {
    font-size: 8px;
    right: 10px;
  }
}

@media only screen and (min-width: 769px) {
  .fixed_banner {
    font-size: 10px;
    --size: 9em;
    width: 9em;
  }
  .fixed_banner > div {
    width: var(--size);
    height: var(--size);
    margin-bottom: 1.3em;
  }
  .fixed_banner p {
    width: var(--size);
    height: var(--size);
    border-radius: 50%;
    -webkit-box-shadow: 0px 3px 20px 0px rgba(0, 0, 0, 0.15);
            box-shadow: 0px 3px 20px 0px rgba(0, 0, 0, 0.15);
  }
  .fixed_banner p .tt {
    font-size: 1.4em;
    letter-spacing: 0;
  }
  .fixed_banner .tel {
    --w_tel: 20em;
    -webkit-transform: translateX(calc(-var(--size) - var(--w_tel)));
            transform: translateX(calc(-var(--size) - var(--w_tel)));
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    position: relative;
    -webkit-box-shadow: 0px 3px 20px 0px rgba(0, 0, 0, 0.15);
            box-shadow: 0px 3px 20px 0px rgba(0, 0, 0, 0.15);
    background-color: var(--main-color);
    border-radius: 4.5em;
    overflow: hidden;
  }
  .fixed_banner .tel p {
    -webkit-box-shadow: unset;
            box-shadow: unset;
    background-color: unset;
  }
  .fixed_banner .tel .ov {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    background-color: var(--main-color);
    position: absolute;
    left: var(--size);
    height: 100%;
    top: 0;
    width: var(--w_tel);
    border-left: 1px solid #fff;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    border-top-right-radius: 50px;
    border-bottom-right-radius: 50px;
    left: 0;
    width: 0;
  }
  .fixed_banner .tel .ov .text {
    font-size: 2.2em;
    color: #fff;
    white-space: nowrap;
  }
  .fixed_banner .tel:hover {
    z-index: 2;
    width: 29em;
    -webkit-transform: translateX(calc(0em - var(--w_tel)));
            transform: translateX(calc(0em - var(--w_tel)));
    background-color: var(--main-color);
  }
  .fixed_banner .tel:hover .ov {
    opacity: 1;
    visibility: visible;
    left: var(--size);
    width: var(--w_tel);
  }
  .fixed_banner .tel:hover p {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    background-color: var(--main-color);
  }
  .fixed_banner .tel:hover a {
    width: calc(var(--size) + var(--w_tel));
  }
  .fixed_banner .web p .tt::before {
    margin-bottom: 0.45em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px), (min-width: 769px) and (max-height: 650px) {
  .fixed_banner {
    font-size: 8px;
  }
}
@media only screen and (max-width: 1560px) and (min-width: 769px) {
  .fixed_banner {
    font-size: 8px;
  }
}
@media only screen and (max-width: 1024px) and (min-width: 769px) {
  .fixed_banner {
    font-size: 6px;
  }
}
.group-banner {
  padding: 60px 0;
}
.group-banner .flex {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 12px 10px;
}
.group-banner .banner {
  margin-bottom: 0;
  width: calc((100% - 80px) / 5);
}
@media only screen and (max-width: 1280px) and (min-width: 769px) {
  .group-banner .banner {
    width: calc((100% - 40px) / 5);
  }
}
@media only screen and (max-width: 768px) {
  .group-banner {
    padding: 40px 0;
  }
  .group-banner .flex {
    gap: 10px;
  }
  .group-banner .banner {
    margin-bottom: 0;
    width: calc((100% - 20px) / 3);
  }
}
@media only screen and (max-width: 600px) {
  .group-banner .flex {
    gap: 10px;
  }
  .group-banner .banner {
    margin-bottom: 0;
    width: calc((100% - 10px) / 2);
  }
}

footer {
  padding: 53px 0 0;
  position: relative;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url(../images/ft-bg.jpg);
}
footer .inner_big {
  position: relative;
}
footer p {
  margin-bottom: 0;
}
footer p,
footer a {
  color: #fff;
  text-decoration: none;
}
footer .ft_logo {
  padding: 0px 0 14px;
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
}
footer .ft_info {
  width: 49%;
  max-width: 540px;
}
footer .ft_info .des {
  margin-bottom: 6px;
  line-height: 1.875;
  letter-spacing: 0.1em;
}
footer .ft-timeSheet {
  max-width: 600px;
  width: 49%;
}
footer .ft-top,
footer .ft-bot {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
footer .ft-bot {
  max-width: 1038px;
  position: relative;
  margin-top: 70px;
  padding-top: 111px;
  padding-bottom: 57px;
  z-index: 1;
}
footer .ft-bot::before {
  position: absolute;
  content: "";
  z-index: -1;
  top: 0;
  left: 50%;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  width: 2472px;
  height: 100%;
  -webkit-mask-position: top center;
          mask-position: top center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: 100% auto;
          mask-size: 100% auto;
  -webkit-mask-image: url(../images/ft-bg-shape.png);
          mask-image: url(../images/ft-bg-shape.png);
  background-color: #15432b;
}
footer .ft-top {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  max-width: 1240px;
}

.ft_link a {
  text-decoration: none;
}
.ft_link .title {
  margin-bottom: 0.875em;
  padding-left: 0;
  font-size: 2em;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
  pointer-events: none;
}
.ft_link .title {
  text-transform: uppercase;
  width: 100%;
}
.ft_link .title::before {
  display: none;
}
.ft_link .ttl-sm {
  font-size: 1.375em;
  letter-spacing: 0.1em;
  font-weight: 500;
  line-height: 1;
  margin-bottom: 0.9090909091em;
}
.ft_link ul:last-child {
  margin-bottom: 0;
}
.ft_link li {
  margin-bottom: 1.03125em;
  letter-spacing: 0.1em;
  line-height: 1.6;
}
.ft_link a {
  display: table;
  position: relative;
  padding-left: 0em;
  color: inherit;
  letter-spacing: 0.1em;
  color: #fff;
  line-height: 1.6;
}
.ft_link a span {
  display: block;
}
.ft_link a .br-auto {
  display: inline-block !important;
}
.ft_link a::before {
  content: "・";
  margin-left: -0.35em;
  border-radius: 100%;
  width: auto;
  height: auto;
}
@-moz-document url-prefix() {
  .ft_link a {
    /* Fire Fox */
    white-space: nowrap;
  }
}
.ft_link a:hover {
  opacity: 1;
  color: #fff;
}
@media only screen and (min-width: 769px) {
  .ft_link a:hover {
    color: #edb5b5;
  }
}

.copyright {
  z-index: 1;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.copyright .inner_big {
  max-width: 1135px;
}
.copyright .textwidget {
  display: block;
  margin-top: 3px;
  line-height: 20px;
  padding-left: 21px;
  margin-left: 23px;
  border-left: 1px solid #fff;
  font-weight: 400;
  letter-spacing: 0.1em;
}
.copyright .textwidget p {
  margin-bottom: 0;
  line-height: inherit;
  letter-spacing: 0.1em;
  font-size: 14px;
}
.copyright .grits {
  margin-bottom: 0;
  line-height: 2.501;
}
.copyright .grits a {
  display: block;
}
.copyright .grits img {
  max-width: 120px;
}

@media only screen and (min-width: 769px) {
  .ft_link .mn02 {
    margin-top: 1.25em;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1440px) {
  .ft_link .mn02 {
    margin-top: 0.5em;
  }
}
@media only screen and (min-width: 769px) {
  .ft_link .mn02 ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column wrap;
            flex-flow: column wrap;
    -ms-flex-line-pack: justify;
        align-content: space-between;
    max-height: 8em;
  }
  .ft_link .mn02 ul li:nth-child(-n+2) {
    margin-right: 7.4em;
  }
  .ft_link .menu-left {
    max-width: 672px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .ft_link .menu-right {
    max-width: 251px;
    width: 30%;
  }
  .copyright {
    position: absolute;
    right: 45px;
    bottom: 99px;
  }
}
@media only screen and (min-width: 1025px) {
  footer .ft_info {
    padding-top: 34px;
    margin-left: 31px;
  }
}
@media only screen and (min-width: 992px) {
  footer .ft_info .des,
  footer .ft_info .ft-tel {
    padding-left: 107px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .ft_link .menu-left {
    width: 61%;
  }
  .ft_link .mn02 ul li:nth-child(-n+2) {
    margin-right: 4em;
  }
  footer .ft-bot {
    padding-top: 70px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 991px) {
  .ft_link {
    font-size: 1.5vw;
  }
  .ft_link .menu-left {
    width: 69%;
  }
  .ft_link .menu-right {
    width: 26%;
  }
  .ft_link .mn02 ul li:nth-child(-n+2) {
    margin-right: 8.5em;
  }
  footer {
    padding-bottom: 40px;
  }
  footer .ft-bot {
    padding-bottom: 20px;
    margin-top: 50px;
  }
  footer .ft-bot::before {
    height: 110%;
  }
  footer .time_sheet {
    font-size: 1.5vw;
  }
  .copyright {
    position: relative;
    right: auto;
    left: 0;
    bottom: 0;
  }
}
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                INDEX                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                Under                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*# sourceMappingURL=style.css.map */