@charset "UTF-8";
:root {
  --f-serif: "Noto Serif JP", serif;
  --f-en: "Cormorant Garamond", serif;
  --f-serif4: "Source Serif 4", serif;
  --main-color: #2560a3;
  --main-color2: #61b8e5;
  --main-color3: #e38a24;
  --clr1: #242b3c;
  --clr2: #ccc;
  --clr3: #525252;
  --ttl_size: 28px;
  --wrapper: 96px;
}

/*==========================================================================*/
/*//////////////////////////////////////////////////////////////////////////*/
/*//////                                                              //////*/
/*//////  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-serif);
}

h1,
h2,
h3,
h4,
h5,
h6,
input,
button,
textarea,
select,
p,
blockquote,
th,
td,
pre,
address,
li,
dt,
dd {
  font-size: 100%;
  -webkit-text-size-adjust: none;
}

header,
section,
footer,
aside,
nav,
main,
article,
figure,
picture {
  display: block;
  padding: 0;
  margin: 0;
}

img {
  display: table;
  vertical-align: bottom;
  max-width: 100%;
  height: auto;
}

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

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

table {
  width: 100%;
}

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

.captcha_box iframe {
  height: auto;
}

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

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

.red {
  color: #ca0a0a !important;
}

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

.fl {
  float: left;
}

.fr {
  float: right;
}

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

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

.wrapper {
  overflow: hidden;
}

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

.inner_max {
  max-width: 1480px;
}

.inner_big {
  max-width: 1320px;
}

.inner {
  max-width: 1320px;
}

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

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

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

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

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

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

.btn a {
  position: relative;
  color: var(--main-color);
  text-decoration: none;
}
.btn a::after {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  width: 0.38125em;
  height: 12px;
  right: 5%;
  top: calc(50% - 6px);
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 61 101' %3E%3Cpath d='M60.957,50.350 L52.385,58.785 L52.329,58.731 L9.523,100.309 L0.950,91.881 L43.698,50.349 L0.950,8.832 L9.523,0.385 L52.326,41.966 L52.385,41.909 L60.957,50.350 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-group {
  font-size: 0.625em;
}
.btn-group .btn {
  font-size: 1em;
}
.btn-group .btn.style01 {
  width: 100%;
  min-width: 180px;
  max-width: 408px;
  overflow: hidden;
}
.btn-group .btn.style01 a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.88889em;
  padding: 0.5em 1em;
  font-size: 1.6em;
  letter-spacing: 0.1em;
  line-height: 1.5;
  color: #fff;
  text-align: center;
  background-color: var(--main-color);
  transition: all 0.3s;
  border-radius: 40px;
}
.btn-group .btn.style01 a::after {
  background-color: #fff;
}
.btn-group .btn.style01 a:hover {
  opacity: 1;
}
@media only screen and (min-width: 769px) {
  .btn-group .btn.style01 a:hover::after {
    right: 0.5em;
  }
}
.btn-group .btn.bg01 a {
  background-color: #fff;
  color: var(--main-color);
}
.btn-group .btn.bg01 a::after {
  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;
  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%;
  z-index: 20;
}
header.active .header_top {
  padding-top: 15px;
  padding-bottom: 15px;
  align-items: center;
  background-color: #fff;
}
header.active .logo {
  margin-top: 0;
  width: 220px;
}
header.active .pc_navi > ul > li > a,
header.active .pc_navi > ul > li > p {
  color: var(--clr1) !important;
}
header.active .pc_navi > ul > li > a::after,
header.active .pc_navi > ul > li > p::after {
  border-color: var(--clr1) transparent transparent transparent;
}
header.active #nav-icon span {
  background-color: var(--clr1);
}

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

.logo {
  width: 270px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 13px;
  transition: all 0.3s ease;
}
.logo a {
  display: block;
  width: 100%;
  text-align: center;
}
.logo img {
  width: auto;
}

.right_head {
  padding-right: 123px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.pc_navi {
  width: 100%;
}
.pc_navi > ul {
  display: flex;
  flex-wrap: wrap;
  text-align: center;
  width: 100%;
  gap: 73px;
}
.pc_navi > ul > li {
  position: relative;
}
.pc_navi > ul > li:hover > a,
.pc_navi > ul > li:hover > p {
  opacity: 0.6;
}
.pc_navi > ul > li.menu-item-has-children > a::after,
.pc_navi > ul > li.menu-item-has-children > p::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: calc(50% - 4px);
  transition: all 0.3s ease;
  border-color: #fff transparent transparent transparent;
  border-style: solid;
  border-width: 5px 4px 0px 4px;
  width: 0;
  height: 0;
}
.pc_navi > ul > li.menu-item-has-children > a::before,
.pc_navi > ul > li.menu-item-has-children > p::before {
  content: "";
  position: absolute;
  bottom: -20px;
  left: 0;
  right: 0;
  height: 20px;
  background-color: transparent;
}
.pc_navi > ul > li.menu-item-has-children > a:hover::after,
.pc_navi > ul > li.menu-item-has-children > p:hover::after {
  transform: translateY(5px);
}
.pc_navi > ul > li > a,
.pc_navi > ul > li > p {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin: 0;
  height: 40px;
  text-decoration: none;
  text-align: center;
  font-weight: 400;
  letter-spacing: 0px;
  line-height: 1.5;
  transition: all 0.3s ease;
  color: #fff !important;
  letter-spacing: 0.1em;
}
.pc_navi > ul > li:hover a.title::after,
.pc_navi > ul > li:hover p.title::after {
  transform: translateY(5px);
}
.pc_navi > ul .subInner {
  position: absolute;
  width: 18em;
  right: 50%;
  bottom: -15px;
  padding-top: 0px;
  transform: translate(50%, 100%);
  transition: all 0.2s ease-in-out;
  opacity: 0;
  visibility: hidden;
  z-index: 1;
}
.pc_navi > ul .subInner.active {
  opacity: 1;
  visibility: visible;
}
.pc_navi > ul .subInner ul {
  background-color: var(--main-color);
  padding-bottom: 10px;
}
.pc_navi > ul .subInner ul li {
  padding: 0 10px;
}
.pc_navi > ul .subInner ul li a {
  position: relative;
  display: block;
  padding: 1.2em 0.6em 1.2em 1.6em;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.7);
  transition: all 0.2s ease;
  font-size: 0.875em;
  font-weight: 500;
  color: #fff;
  text-decoration: none;
  text-align: left;
  letter-spacing: 0.05em;
}
.pc_navi > ul .subInner ul li a::before {
  content: "›";
  display: block;
  position: absolute;
  top: 50%;
  left: 0.6em;
  transform: translateY(-54%);
}

@media screen and (min-width: 1920px) {
  .pc_navi > ul > li:nth-child(1) > a,
  .pc_navi > ul > li:nth-child(1) > p {
    letter-spacing: -0.9px;
  }
  .pc_navi > ul > li:nth-child(2) > a,
  .pc_navi > ul > li:nth-child(2) > p {
    margin-right: 2px;
    letter-spacing: 0px;
  }
  .pc_navi > ul > li:nth-child(3) > a,
  .pc_navi > ul > li:nth-child(3) > p {
    margin-right: 11px;
  }
  .pc_navi > ul > li:nth-child(4) > a,
  .pc_navi > ul > li:nth-child(4) > p {
    margin-right: 12px;
  }
  .pc_navi > ul > li:nth-child(5) > a,
  .pc_navi > ul > li:nth-child(5) > p {
    letter-spacing: 0px;
  }
}
@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: 1140px;
    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: 81px;
  }
  header.active .logo {
    width: 170px;
  }
  .header_top {
    padding: 20px 20px;
  }
  .right_head {
    padding-right: 85px;
  }
  .pc_navi > ul {
    gap: 30px;
  }
  .logo {
    margin-top: 0;
    width: max(17.1875vw, 170px);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .pc_navi > ul {
    font-size: max(1.4vw, 11px);
    gap: 1.429em;
  }
  .pc_navi > ul .subInner ul li a {
    font-size: 12px;
  }
  #nav-icon {
    width: 36px;
  }
}
.idx_gallery {
  padding-bottom: 88px;
}
.idx_gallery img {
  margin: 0 4px;
}
.idx_gallery .slick-list {
  padding-bottom: 35px;
}
.idx_gallery .item:nth-child(2n+2) {
  transform: translateY(15px);
}
.idx_gallery .item:nth-child(3n+3) {
  transform: translateY(34px);
}

.time_sheet {
  margin: 0px auto;
}
.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";
  table-layout: fixed;
}
.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;
  border-bottom: 1px solid #fff;
  color: #fff;
}
.time_sheet table th:first-child,
.time_sheet table td:first-child {
  width: 150px;
  padding-left: 19px;
}
.time_sheet table th:last-child,
.time_sheet table td:last-child {
  width: 86px;
}
.time_sheet table th {
  padding: 13px 10px;
}
.time_sheet table td {
  padding: 21px 10px 18px;
}
.time_sheet table tr:nth-child(2) td {
  padding-top: 17px;
  padding-bottom: 17px;
}

@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: 29px;
  right: 23px;
  background-color: var(--clr1);
  transition: all 0.3s ease;
  border-radius: 100%;
}
.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: 72px;
  height: 72px;
  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% - 2.6em);
  right: 0px;
  z-index: 15;
  transition: right 0.3s ease-in-out;
}
.fixed_banner > div {
  position: relative;
  transition: all 0.3s ease;
}
.fixed_banner a {
  content: "";
  display: block;
  position: absolute;
  transition: all 0.3s;
  z-index: 2;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}
.fixed_banner p {
  display: block;
  width: 100%;
  height: 100%;
  margin-bottom: 0;
  color: #fff;
  letter-spacing: 0.1em;
  line-height: 1.2222222222;
  text-align: center;
  text-decoration: none;
}
.fixed_banner p:hover {
  color: #fff;
}
.fixed_banner p .tt {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  flex-direction: row;
  height: 100%;
  width: 100%;
}
.fixed_banner p .tt::before {
  content: "";
  display: block;
  mask-image: var(--mask);
  -webkit-mask-image: var(--mask);
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-size: 100% auto;
  -webkit-mask-size: 100% auto;
  mask-position: center;
  -webkit-mask-position: center;
  background-color: #fff;
}
.fixed_banner .tel p {
  background-color: var(--clr1);
}
.fixed_banner .tel p .tt {
  font-size: 3em;
  letter-spacing: 0.023em;
}
.fixed_banner .tel p .tt::before {
  width: 0.8em;
  height: 0.9em;
  margin-bottom: 0.467em;
  --mask: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24px' height='27px'%3E%3Cpath fill-rule='evenodd' fill='rgb(255, 255, 255)' d='M7.604,7.270 C4.676,8.282 4.269,9.957 6.149,12.043 C8.334,14.464 10.496,16.909 12.675,19.336 C14.517,21.393 16.172,21.117 17.347,18.453 C19.524,18.718 21.566,19.467 23.420,20.702 C23.685,20.877 23.795,21.495 23.764,21.894 C23.563,24.535 21.099,26.407 18.085,25.992 C16.554,25.785 14.953,25.349 13.610,24.608 C7.777,21.367 3.482,16.635 0.927,10.386 C0.012,8.147 -0.333,5.778 0.577,3.456 C0.904,2.624 1.559,1.790 2.285,1.281 C4.432,-0.231 5.793,0.256 6.544,2.746 C6.986,4.209 7.250,5.728 7.604,7.270 Z'/%3E%3C/svg%3E");
}
.fixed_banner .web p {
  background-color: #2e9de9;
}
.fixed_banner .web p .tt::before {
  margin-bottom: 0.5em;
  width: 2em;
  height: 2em;
  --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 232 232 ' %3E%3Cpath d='M218.959,232.004 L13.039,232.004 C5.931,232.004 0.169,226.540 0.169,219.806 L0.169,49.115 C0.169,42.374 5.931,36.917 13.039,36.917 L51.648,36.917 L51.648,12.533 C51.648,5.799 57.410,0.348 64.518,0.348 C71.626,0.348 77.388,5.799 77.388,12.533 L77.388,36.917 L154.608,36.917 L154.608,12.533 C154.608,5.799 160.370,0.348 167.478,0.348 C174.586,0.348 180.348,5.799 180.348,12.533 L180.348,36.917 L206.089,36.917 L218.959,36.917 C226.069,36.917 231.829,42.374 231.829,49.115 L231.829,219.806 C231.829,226.540 226.069,232.004 218.959,232.004 ZM106.345,141.603 L83.269,119.752 C78.243,114.984 70.098,114.984 65.071,119.752 C60.043,124.508 60.043,132.228 65.071,136.983 L97.246,167.469 C99.659,169.750 102.934,171.045 106.345,171.045 C109.758,171.045 113.032,169.750 115.445,167.469 L166.925,118.702 C171.953,113.940 171.953,106.214 166.925,101.452 C161.898,96.690 153.753,96.690 148.726,101.452 L106.345,141.603 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");
}

@media only screen and (min-width: 769px) {
  .fixed_banner {
    font-size: 10px;
    --size: 8em;
    --sizey: 28em;
    width: 8em;
  }
  .fixed_banner > div {
    width: var(--size);
    height: var(--sizey);
  }
  .fixed_banner .tel {
    --w_tel: 15em;
    transform: translateX(calc(-var(--size) - var(--w_tel)));
    transition: all 0.3s ease;
  }
  .fixed_banner .tel p {
    border-radius: 3px 0 0 3px;
  }
  .fixed_banner .tel p .tt {
    -webkit-writing-mode: vertical-rl;
    -moz-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    padding-left: 1px;
    padding-top: 2px;
  }
  .fixed_banner .tel p .tt::before {
    margin-left: -1px;
  }
  .fixed_banner .web p .tt::before {
    margin-bottom: 0.5em;
  }
  .fixed_banner .mail p {
    border-bottom-left-radius: 0.833em;
  }
  .totop:hover {
    background-color: var(--main-color);
  }
}
@media only screen and (min-width: 769px) and (max-width: 1919px) {
  .fixed_banner {
    top: 40%;
    font-size: 7px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1366px), (min-width: 769px) and (max-height: 650px) {
  .fixed_banner {
    font-size: 7px;
  }
}
footer {
  position: relative;
}
footer p {
  margin-bottom: 0;
}
footer p,
footer a {
  text-decoration: none;
}
footer .ft_info {
  width: 47.5%;
}
.ft_link a {
  text-decoration: none;
}
@media only screen and (min-width: 769px) {
  .ft_link .link_list {
    justify-content: flex-start;
  }
  .ft_link .link_list > div > ul {
    display: flex;
    flex-flow: column wrap;
    align-content: space-between;
  }
  .ft_link .link_list {
    --w1: 370px;
  }
  .ft_link .menu01 {
    width: var(--w1);
  }
  .ft_link .menu01 > ul {
    max-height: 23em;
  }
  .ft_link .menu02 {
    width: calc(100% - var(--w1));
  }
  .ft_link .menu02 > ul {
    max-height: 10em;
  }
  .ft_link .menu02 > ul > li:nth-child(n+3) {
    max-width: 20em;
  }
}
.ft_link .menu01 ul li:first-child a {
  letter-spacing: 0.125em;
}
.ft_link .menu02 .title {
  margin-bottom: 19px;
}
.ft_link .title {
  margin-bottom: 27px;
  padding-left: 0;
  font-size: calc(var(--ttl_size) + 2px);
  font-weight: 400;
  line-height: 1;
  pointer-events: none;
  font-family: var(--f-en);
  color: var(--main-color);
}
.ft_link .title::before {
  display: none;
}
.ft_link .msub-gr {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.ft_link .msub-tt {
  font-weight: 500;
  line-height: 1.4;
  position: relative;
  display: inline-block;
  font-size: 22px;
  margin-bottom: 17px;
  padding-left: 7px;
}
.ft_link .msub-tt::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 2px;
  right: -3px;
  height: 1px;
  background-color: #242b3c;
}
.ft_link ul:last-child {
  margin-bottom: 0;
}
.ft_link li {
  width: 100%;
  margin-bottom: 1.02em;
  letter-spacing: 0.1em;
  line-height: 1.6;
}
.ft_link a {
  display: table;
  position: relative;
  padding-left: 0em;
  color: inherit;
  font-size: 1em;
  letter-spacing: 0.106em;
  color: var(--clr1);
  line-height: 1.6;
  transition: all 0.3s ease;
}
.ft_link a::before {
  content: "・";
  border-radius: 100%;
  width: auto;
  height: auto;
  margin-left: 0.188em;
  margin-right: -0.313em;
}
.ft_link a:hover {
  opacity: 1;
}

.footer-top {
  color: #fff;
  padding: 74px 0 90px;
  background: url("../images/footer-top-bg.jpg") center/cover no-repeat;
}
.footer-top .ft-wrapper {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  font-size: 10px;
  --w: 66em;
  --gap: 3.5em;
}
.footer-top .ft-info {
  max-width: 100%;
  width: var(--w);
  padding-top: 20px;
}
.footer-top .ft-txt {
  width: calc(100% - var(--w) - var(--gap));
}
.footer-top .ft-logo {
  margin-bottom: 4.1em;
}
.footer-top .ft-logo a {
  display: block;
  width: fit-content;
  opacity: 1 !important;
  width: 33.5em;
}
.footer-top .ft-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2em 1.4em;
}
.footer-top .ft-list li {
  font-size: 1.6em;
  width: 20em;
  display: flex;
  align-items: center;
}
.footer-top .ft-list picture {
  margin-right: 1.063em;
  flex-shrink: 0;
  width: 3.5em;
  height: 3.5em;
}
.footer-top .ft-lst-tt {
  line-height: 1.5;
}
.footer-top .ft-lst-tt span {
  font-size: 1.375em;
}
.footer-top .ft-lst-tl {
  font-size: 1.875em;
  line-height: 1;
  letter-spacing: 0.077em;
}
.footer-top .time_sheet {
  margin-bottom: 2.6em;
}
.footer-top .time_sheet th,
.footer-top .time_sheet td {
  font-size: 1.6em;
}
.footer-top .time_sheet th:first-child,
.footer-top .time_sheet td:first-child {
  width: 9.375em;
  padding-left: 1.188em;
}
.footer-top .time_sheet th:last-child,
.footer-top .time_sheet td:last-child {
  width: 5.375em;
}
.footer-top .time_sheet th {
  padding: 0.813em 0.625em;
}
.footer-top .time_sheet td {
  padding-top: 1.313em;
  padding-bottom: 1.125em;
}
.footer-top .time_sheet tr:nth-child(2) td {
  padding-top: 1.063em;
  padding-bottom: 1.063em;
}
.footer-top .ft-tx {
  padding-left: 2em;
}
.footer-top .ft-tx-tt {
  font-size: 2em;
  letter-spacing: 0.065em;
  line-height: 1.5;
  margin-bottom: 0.55em;
}
.footer-top .ft-tx-ds {
  font-size: max(1.4em, 9px);
}
.footer-top .ft-map {
  margin-top: 33px;
  width: 100%;
  height: 299px;
}

.footer-bottom {
  background: #f8fcfd;
  padding: 73px 0 39px;
}
.footer-bottom .inner {
  max-width: 1420px;
  padding: 0 70px;
}
.footer-bottom .ft_link {
  padding-left: 1px;
}

.fb-bottom {
  padding-top: 44px;
  margin-top: 44px;
  border-top: 1px solid #e3eaec;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.fb-bottom .fb-banner a {
  display: inline-block;
  opacity: 1 !important;
}

.copyright {
  margin-right: 5px;
  text-align: right;
}
.copyright .grits {
  margin-bottom: 4px;
  line-height: 1;
}
.copyright .grits a {
  display: inline-block;
}
.copyright .textwidget {
  margin-right: -4px;
}
.copyright .textwidget p {
  font-size: 14px;
  letter-spacing: 0.114em;
}

@media only screen and (min-width: 1920px) {
  .footer-top .ft-info {
    margin-left: 2px;
  }
  .footer-top .ft-lst-bus {
    transform: translateX(-1px);
  }
  .footer-top .ft-lst-bus picture {
    margin-right: 21px;
  }
  .footer-top .ft-lst-bus .ft-lst-tt {
    letter-spacing: 1.9px;
  }
  .footer-top .ft-lst-tel picture {
    margin-right: 20px;
  }
  .footer-top .ft-lst-tel .ft-lst-tl {
    transform: translateY(-2px);
  }
  .footer-top .ft-lst-car picture {
    margin-right: 21px;
  }
  .footer-top .ft-lst-car .ft-lst-tt {
    transform: translateY(3px);
  }
  .fb-bottom {
    padding-left: 1px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1600px) {
  .totop {
    bottom: 9px;
    right: 9px;
  }
  .totop .icon {
    width: 60px;
    height: 60px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1280px) {
  .footer-top .ft-wrapper {
    font-size: 0.78125vw;
  }
  .ft_link .link_list {
    --w1: 33em;
    font-size: 0.78125vw;
  }
  .ft_link .menu01 .title {
    margin-bottom: 0.9em;
  }
  .ft_link .menu02 .title {
    margin-bottom: 0.633em;
  }
  .ft_link .title {
    font-size: 3em;
  }
  .ft_link ul {
    font-size: max(1.6em, 12px);
  }
  .ft_link .msub-gr {
    gap: 2em;
  }
  .ft_link .msub-tt {
    font-size: 2.2em;
    padding-left: 0.318em;
    margin-bottom: 0.773em;
  }
  .fb-bottom {
    margin-top: 30px;
  }
  .fb-bottom .fb-banner {
    line-height: 1;
    width: 50vw;
  }
  .copyright {
    margin: 0;
  }
}
@media only screen and (min-width: 769px) and (max-width: 1024px) {
  .footer-top {
    padding: 50px 0 60px;
  }
  .footer-top .ft-map {
    margin-top: 25px;
    height: 29.296875vw;
  }
  .footer-bottom {
    padding: 55px 0 45px;
  }
  .footer-bottom .inner {
    padding: 0 60px;
  }
  .idx_gallery {
    padding-bottom: 50px;
  }
  .idx_gallery img {
    width: 200px;
  }
  .fixed_banner {
    font-size: 6px;
  }
}
@media only screen and (min-width: 769px) and (max-width: 992px) {
  .fb-bottom {
    padding-top: 30px;
    margin-top: 20px;
  }
  .fb-bottom .fb-banner {
    width: 40vw;
  }
  .copyright .textwidget p {
    font-size: 12px;
  }
  .totop .icon {
    width: 50px;
    height: 50px;
  }
}
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                INDEX                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
/*==========================================================================*/
/*                                Under                                     */
/*==========================================================================*/
/*==========================================================================*/
/*==========================================================================*/
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
.sp,
.sp320,
.sp375,
.sp425 {
  display: none;
}

.pc992,
.pc1024 {
  display: none;
}

.ibtn {
  margin-bottom: 0;
}
.ibtn.ibtn-w a {
  background-color: transparent;
  border-color: #fff;
}
.ibtn a {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  text-decoration: none;
  max-width: 100%;
  width: 280px;
  min-height: 66px;
  padding: 10px 40px;
  position: relative;
  color: #fff;
  border: 1px solid var(--main-color);
  background-color: var(--main-color);
  transition: all 0.3s ease;
}
.ibtn a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 15px;
  margin: auto 0;
  width: 18px;
  height: 6px;
  background: url("../images/ic-arrow.svg") center/contain no-repeat;
}

@keyframes key_eff {
  0% {
    transform: scaleX(1);
  }
  100% {
    transform: scaleX(0);
  }
}
@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.loading_eff {
  position: absolute;
  inset: 0;
  z-index: 9;
  display: flex;
  align-items: center;
  z-index: -1;
}
.loading_eff .loading_eff_item {
  position: relative;
  width: 20%;
  height: 100%;
}
.loading_eff .loading_eff_item:first-child {
  width: 10%;
}
.loading_eff .loading_eff_item:last-child {
  width: 10%;
}
.loading_eff .loading_eff_item::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #fff;
  transform-origin: right;
  animation: key_eff 0.4s forwards;
}
.loading_eff .loading_eff_item:nth-child(1)::before {
  animation-delay: 2s;
}
.loading_eff .loading_eff_item:nth-child(2)::before {
  animation-delay: 2.1s;
}
.loading_eff .loading_eff_item:nth-child(3)::before {
  animation-delay: 2.2s;
}
.loading_eff .loading_eff_item:nth-child(4)::before {
  animation-delay: 2.3s;
}
.loading_eff .loading_eff_item:nth-child(5)::before {
  animation-delay: 2.4s;
}
.loading_eff .loading_eff_item:nth-child(6)::before {
  animation-delay: 2.5s;
}

#loading {
  position: fixed;
  z-index: 9999;
  width: 100vw;
  left: 0;
  top: 0;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s, visibility 0.3s;
}
#loading.hide{
  display: none;
}
#loading picture {
  transition: all 0.3s;
  max-width: 50vw;
  width: 270px;
}
#loading .lines {
  opacity: 0;
}
#loading.loaded {
  transition-delay: 0.5s;
  pointer-events: none;
}
#loading.loaded picture {
  opacity: 0;
  transition-delay: 0.2s;
}

@media screen and (min-width: 769px) {
  body.load_end .key .key_text .item::after {
    transform: scale(1);
  }
  .ibtn a:hover {
    opacity: 1 !important;
    background-color: var(--main-color2);
    border-color: var(--main-color2);
    color: #fff;
  }
}
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .pc1024 {
    display: block;
  }
}
@media screen and (min-width: 769px) and (max-width: 992px) {
  .pc992 {
    display: block;
  }
}

