@charset "utf-8";


.fs120p {
  font-size: 120%;
  color: #6f5f01;
  font-weight: bold;
}


/* CSS Document */
h2.h2_bg1 {
  position: relative;
  margin-bottom: 85px;
}
h2.h2_bg1:after {
  position: absolute;
  content: url(../img/h2_bg1.png);
  ;
  left: 50%;
  transform: translateY(-0%) translateX(-50%);
  -webkit- transform: translateY(-0%) translateX(-50%);
  width: 100%;
  height: 100%;
  bottom: -60px;
  z-index: 1;
}
h2.h2_bg2 {
  position: relative;
  writing-mode: vertical-rl;
  float: right;
  margin: 0 10px 20px;
}
h2.h2_bg2:after {
  position: absolute;
  content: url(../img/h2_bg2.png);
  ;
  top: -43px;
  right: -17px;
  z-index: 1;
}
h2.h2_bg3 {
  position: relative;
  writing-mode: vertical-rl;
  float: left;
  margin: 0 25px 20px 0;
}
h2.h2_bg3:after {
  position: absolute;
  content: url(../img/h2_bg3.png);
  ;
  top: -43px;
  right: -17px;
  z-index: 1;
}
h2.h2_bg4 {
  position: relative;
  writing-mode: vertical-rl;
  float: right;
  margin: 0 10px 20px;
}
h2.h2_bg4:after {
  position: absolute;
  content: url(../img/h2_bg4.png);
  ;
  top: -43px;
  right: -17px;
  z-index: 1;
}
h2.h2_bg00 {
  position: relative;
  writing-mode: vertical-rl;
  float: right;
  margin: 0 10px 20px;
}
h2.h2_bg00:after {
  position: absolute;
  content: url(../img/h2_bg00.png);
  ;
  top: -43px;
  right: -17px;
  z-index: 1;
}
.section h3 {
  position: relative;
  font-size: 20px;
  padding-left: 15px;
  margin-bottom: 20px;
  font-weight: bold;
}
.section h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 5px;
  height: 100%;
  background-color: #DBC01C;
}
.section h3::after {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  background-color: #F0D320;
  margin-top: 8px;
}
.Query_border dl, .Query_border dd {
  margin-bottom: 0;
}
.Query_border dt {
  float: left;
}
.Query_border dd {
  padding-left: 7em;
}
@media (max-width:480px) {
  .Query_border dt {
    float: none;
  }
  .Query_border dd {
    padding-left: 0;
  }
}
.btn, a.btn, button.btn {
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 1rem 6rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
}
/*主な共通部分は省略*/
a.btn-border {
  border: 1px solid #000;
  border-radius: 0;
  background: #fff;
}
a.btn-border:before {
  position: absolute;
  top: 2px;
  left: 2px;
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  content: '';
  -webkit-transition: all .3s;
  transition: all .3s;
  border: 1px solid #000;
}
a.btn-border:hover:before {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: '';
}
/*　ページ内リンクズレ　*/
#anchor1, #anchor2, #anchor3, #anchor4, #anchor5, #anchor6, #anchor7 {
  display: block;
  padding-top: 200px;
  margin-top: -200px;
}
/*　縦中央　*/
.wrap.pattern-5 {
  display: flex;
  flex-direction: column;
  justify-content: center;
  /*align-items: center;*/
}
/*　テーブル横スクロール　*/
.x-scroll {
  overflow: auto;
}
.x-scroll table {
  width: 100%;
}
.x-scroll::-webkit-scrollbar {
  height: 5px; /* スクロールバーの高さ */
}
.x-scroll::-webkit-scrollbar-track {
  background: #F1F1F1; /* スクロールバーの背景色 */
}
.x-scroll::-webkit-scrollbar-thumb {
  background: #d6d6d6; /* スクロールバーの色 */
}
.x-scroll td, .x-scroll th {
  white-space: nowrap; /* 文字の折返しを禁止 */
}
@media (max-width:480px) {
  .x-scroll td, .x-scroll th {
    white-space: normal;
    display: block;
    width: 100%;
  }
}
.cap-box {
  width: 70%;
  margin: 0 auto;
  border: 1px solid #000;
}
.cap-box .cap-box-title {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.5em;
  background: #000;
  color: #fff;
}
.cap-box .cap-box-content {
  padding: 1.5em;
}
.cap-box .cap-box-content p {
  margin: 0;
}
@media screen and (max-width: 960px) {
  .cap-box {
    width: 95%;
  }
}
/* Preloader
-----------------------------------------------------------------*/
body.loaded {
  overflow: hidden !important;
  height: 100% !important;
}
.loader-wrap {
  position: fixed;
  z-index: 10;
  height: 100vh;
  width: 100%;
  left: 0;
  top: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  background-position: 0 0 0 / 100%);
  background-color: #f1d420;
  z-index: 99999999999999;
  /*animation: fadeOut 0.8s forwards; /*1010_aスマホ対応版*/
  /*animation-delay: 3s; /*1010_aスマホ対応版*/
  /*fix out 1012*/
  animation: fadeOut 1.5s forwards; /*フェードアウト*/
  animation-delay: 3s; /*ロゴ画像のアニメーション後に*/
}
/*フェードアウトアニメーション*/
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    visibility: hidden;
  }
}
.loader-wrap img {
  position: absolute;
  width: 300px;
  height: 300px;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  opacity: 0;
  /*animation: bound 3s forwards; /*任意のアニメーション*/ /*1010_aスマホ対応版*/
  /*-webkit-animation: bound 3s forwards;/*1010_aスマホ対応版*/
  /*animation-delay: 0.3s; /*好みで遅延*/ /*1010_aスマホ対応版*/
  /*-webkit-animation-delay: 0.3s;/*1010_aスマホ対応版*/
  /*fix out 1012*/
  animation: bound 3.3s forwards; /*任意のアニメーション*/
  animation-delay: 0.6s; /*好みで遅延*/
}
/*鼓動する*アニメーション*/
/*fix out 1019*/
@keyframes bound {
  0% {
    opacity: 0;
    visibility: hidden;
    transform: scale(0.3) translateY(-40px) rotate(-359.9deg);
  }
  20% {
    opacity: 0.4;
    transform: scale(1) translateY(-15px) rotate(0deg);
  }
  30% {
    opacity: 0.4;
    transform: scale(1) translateY(-15px) rotate(0deg);
  }
  70% {
    opacity: 1;
    transform: scale(1) translateY(0px) rotate(0deg);
  }
  90% {
    opacity: 1;
    transform: scale(1) translateY(0px) rotate(0deg);
  }
  100% {
    opacity: 0.3;
    transform: scale(1) translateY(0px) rotate(0deg);
  }
}
@media screen and (max-width: 768px) {
  @keyframes bound {
    0% {
      opacity: 0;
      visibility: hidden;
      transform: scale(0.3) translateY(-40px) rotate(-359.9deg);
    }
    20% {
      opacity: 0.4;
      transform: scale(1) translateY(-15px) rotate(0deg);
    }
    30% {
      opacity: 0.4;
      transform: scale(1) translateY(-15px) rotate(0deg);
    }
    70% {
      opacity: 1;
      transform: scale(1) translateY(0px) rotate(0deg);
    }
    90% {
      opacity: 1;
      transform: scale(1) translateY(0px) rotate(0deg);
    }
    100% {
      opacity: 0.3;
      transform: scale(1) translateY(0px) rotate(0deg);
    }
  }
}
/*fix out 1012
@keyframes bound{
    0%{
    opacity: 0;
      visibility: hidden;
      transform: scale(1) translateY(-20px) rotate(0deg);
  }
  

  
  50% {
    opacity: 1;
    transform: scale(1) translateY(0px) rotate(0deg);
  }

80% {
    opacity: 1;
    transform: scale(1) translateY(0px) rotate(0deg);
  }

  90% {
    opacity: 0.3;
    transform: scale(0.8) translateY(-5px) rotate(359.9deg);
  }
  
   100% {
    opacity: 0.3;
    transform: scale(0.8) translateY(-5px)rotate(359.9deg);
  }
}

*/
/*1010_aスマホ対応版*/
/*
@keyframes bound{
    0%{
    opacity: 0;
      visibility: hidden;
      -webkit-transform: translateY(-30px);
      transform: translateY(-30px);
  }
  
   82% {
    opacity: 1;
     -webkit-transform: scale(1) translateY(0px) rotate(0deg);
    transform: scale(1) translateY(0px) rotate(0deg);
  }

  100% {
    opacity: 0;
    -webkit-transform: scale(0.1) translateY(-10px) rotateZ(179.9deg);
    transform: scale(0.1) translateY(-10px) rotate(179.9eg);
  }
}
*/
@-webkit-keyframes loading {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes loading {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.loader-wrap svg {
  position: absolute;
  top: 0;
  width: 100vw;
  height: 110vh;
  fill: #1d1d1d;
}
.loader-wrap .loader-wrap-heading .load-text {
  font-size: 20px;
  font-weight: 200;
  letter-spacing: 15px;
  text-transform: uppercase;
  z-index: 20;
  color: #FFF;
}
.load-text span {
  -webkit-animation: loading 1s infinite alternate;
  animation: loading 1s infinite alternate;
}
.load-text span:nth-child(1) {
  -webkit-animation-delay: 0s;
  animation-delay: 0s;
}
.load-text span:nth-child(2) {
  -webkit-animation-delay: 0.1s;
  animation-delay: 0.1s;
}
.load-text span:nth-child(3) {
  -webkit-animation-delay: 0.2s;
  animation-delay: 0.2s;
}
.load-text span:nth-child(4) {
  -webkit-animation-delay: 0.3s;
  animation-delay: 0.3s;
}
.load-text span:nth-child(5) {
  -webkit-animation-delay: 0.4s;
  animation-delay: 0.4s;
}
.load-text span:nth-child(6) {
  -webkit-animation-delay: 0.5s;
  animation-delay: 0.5s;
}
.load-text span:nth-child(7) {
  -webkit-animation-delay: 0.6s;
  animation-delay: 0.6s;
}
.ifram {
  filter: grayscale(100%);
  transition: all 0.7s ease;
}
[href^="tel"] {
  text-decoration: none;
  color: #4D4D4D;
  cursor: default;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  [href^="tel"] {
    pointer-events: auto;
  }
}
.privacy-section {
  padding: 80px 0;
  background: #f7f9fc;
}
.privacy-title {
  text-align: center;
  margin-bottom: 50px;
}
.privacy-title h2 {
  font-size: 2rem;
  color: #1d3557;
  margin-bottom: 15px;
}
.privacy-title p {
  color: #666;
  line-height: 1.8;
}
.accordion {
  max-width: 900px;
  margin: 0 auto;
}
.accordion-item {
  background: #fff;
  border-radius: 16px;
  margin-bottom: 18px;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
  border: 1px solid #e5edf5;
}
.accordion-header {
  width: 100%;
  border: none;
  background: #fff;
  padding: 1.4em 1.6em;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 1.05rem;
  font-weight: bold;
  color: #1d3557;
  cursor: pointer;
  transition: 0.3s;
}
.accordion-header:hover {
  background: #f8fbff;
}
.accordion-header span {
  font-size: 1.4rem;
  color: #00a0e9;
  transition: 0.3s;
}
.accordion-item.active .accordion-header span {
  transform: rotate(45deg);
}
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: 0.4s ease;
  padding: 0 1.6em;
}
.accordion-item.active .accordion-content {
  max-height: 1500px;
  padding: 0 1.6em 1.6em;
}
.accordion-content p {
  line-height: 2;
  color: #444;
}
.accordion-content ul {
  margin-top: 1em;
  padding-left: 1.2em;
}
.accordion-content li {
  line-height: 2;
  color: #444;
}
@media screen and (max-width: 768px) {
  .privacy-section {
    padding: 60px 0;
  }
  .privacy-title h2 {
    font-size: 1.6rem;
  }
  .accordion-header {
    font-size: 1rem;
    padding: 1.2em;
  }
}