@charset "UTF-8";

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

html {
  margin: 0;
  padding: 0;
}

body {
  color: #2f2f33;
  background-color: #FFF;
  font-size: 18px;
  line-height: 2.4;
  font-family:
    "Yu Gothic Medium",
    "Yu Gothic",
    "YuGothic",
    "游ゴシック Medium",
    "游ゴシック",
    "ヒラギノ角ゴ Pro W3",
    "Hiragino Kaku Gothic Pro W3",
    "Meiryo",
    sans-serif;
  font-weight: 400;
  font-style: normal;
  margin: 0 auto;
  text-align: center;
  position: relative;
  overflow-x: hidden;
}
@media screen and (max-width: 767px) {
  body {
    font-size: 16px;
    line-height: 2;
  }
}

img {
  width: 100%;
  vertical-align: top;
}

a {
  text-decoration: none;
  color: inherit;
}
a.opa {
  cursor: pointer;
  opacity: 1;
  transition: 0.3s;
}
a.opa:hover {
  opacity: .7;
}

h1, h2, h3, h4, h5, p {
  margin: 0;
  padding: 0;
}

ul {
  margin: 0;
  padding: 0;
}
ul li {
  list-style: none;
}

.flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}
.flex-center {
  justify-content: center;
}

.note {
  font-size: 12px!important;
  font-weight: 400!important;
  text-align: left;
  text-indent: -1em;
  padding-left: 1em;
}
.note::before {
  content: "※";
}

sup {
  vertical-align: super;
  font-size: 50%;
}

.cap {
  font-size: 12px!important;
}

.justify {
  text-align: justify;
  text-justify: inter-ideograph;
}

.serif {
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.inner-1000 {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.inner-1100 {
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.inner-1200 {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.full {
  margin: 0 calc(50% - 50vw);
  width: 100vw;
}

.left {
  text-align: left;
}
.center {
  text-align: center;
}
.right {
  text-align: right;
}

@media screen and (min-width: 768px) {
 .max-tl-only {
  display: none!important;
 }
}

@media screen and (min-width: 768px) {
  .sp-only {
    display: none!important;
  }
  a[href^="tel:"] {
    pointer-events: none;
  }
}

@media screen and (max-width: 767px) {
  .pc-only {
    display: none!important;
  }
  a.opa:hover {
    opacity: 1;
  }
  .sp-justify {
    text-align: justify;
    text-justify: inter-ideograph;
  }
  .sp-full {
    margin: 0 calc(50% - 50vw);
    width: 100vw;
  }
  .sp-14 {
    font-size: 87.5%;
  }
  .btn-area.flex-center {
    display: initial;
  }
}

@media print {
  .sp-only {
    display: none;
  }
}

/* margin */
.mt-0 { margin-top: 0!important; }
.mt-10 { margin-top: 10px; }
.mt-20 { margin-top: 20px; }
.mt-30 { margin-top: 30px; }
.mt-40 { margin-top: 40px; }
.mt-50 { margin-top: 50px; }
.mt-60 { margin-top: 60px; }
.mt-70 { margin-top: 70px; }
.mt-80 { margin-top: 80px; }
.mt-90 { margin-top: 90px;}
.mt-100 { margin-top: 100px; }
.mt-120 { margin-top: 120px; }
.mt-140 { margin-top: 140px; }
.mt-160 { margin-top: 160px; }
.mt-180 { margin-top: 180px; }
.mt-200 { margin-top: 200px }
.mb-0 { margin-bottom: 0!important; }
.mb-10 { margin-bottom: 10px; }
.mb-20 { margin-bottom: 20px; }
.mb-30 { margin-bottom: 30px; }
.mb-40 { margin-bottom: 40px; }
.mb-50 { margin-bottom: 50px; }
.mb-60 { margin-bottom: 60px; }
.mb-70 { margin-bottom: 70px; }
.mb-80 { margin-bottom: 80px; }
.mb-90 { margin-bottom: 90px; }
.mb-100 { margin-bottom: 100px; }
.mb-120 { margin-bottom: 120px; }
.mb-140 { margin-bottom: 140px; }
.mb-160 { margin-bottom: 160px; }
.mb-180 { margin-bottom: 180px; }
.mb-200 { margin-bottom: 200px; }
@media screen and (max-width: 767px) {
  .spmt-0 { margin-top: 0!important; }
  .spmt-10 { margin-top: 10px; }
  .spmt-20 { margin-top: 20px; }
  .spmt-30 { margin-top: 30px; }
  .spmt-40 { margin-top: 40px; }
  .spmt-50 { margin-top: 50px; }
  .spmt-60 { margin-top: 60px; }
  .spmt-70 { margin-top: 70px; }
  .spmt-80 { margin-top: 80px; }
  .spmt-90 { margin-top: 90px;}
  .spmt-100 { margin-top: 100px; }
  .spmt-120 { margin-top: 120px; }
  .spmt-140 { margin-top: 140px; }
  .spmt-160 { margin-top: 160px; }
  .spmt-180 { margin-top: 180px; }
  .spmt-200 { margin-top: 200px }
  .spmb-0 { margin-bottom: 0!important; }
  .spmb-10 { margin-bottom: 10px; }
  .spmb-20 { margin-bottom: 20px; }
  .spmb-30 { margin-bottom: 30px; }
  .spmb-40 { margin-bottom: 40px; }
  .spmb-50 { margin-bottom: 50px; }
  .spmb-60 { margin-bottom: 60px; }
  .spmb-70 { margin-bottom: 70px; }
  .spmb-80 { margin-bottom: 80px; }
  .spmb-90 { margin-bottom: 90px; }
  .spmb-100 { margin-bottom: 100px; }
  .spmb-120 { margin-bottom: 120px; }
  .spmb-140 { margin-bottom: 140px; }
  .spmb-160 { margin-bottom: 160px; }
  .spmb-180 { margin-bottom: 180px; }
  .spmb-200 { margin-bottom: 200px; }
}

/* padding */
.pt-0 { padding-top: 0!important; }
.pt-10 { padding-top: 10px; }
.pt-20 { padding-top: 20px; }
.pt-30 { padding-top: 30px; }
.pt-40 { padding-top: 40px; }
.pt-50 { padding-top: 50px; }
.pt-60 { padding-top: 60px; }
.pt-70 { padding-top: 70px; }
.pt-80 { padding-top: 80px; }
.pt-90 { padding-top: 90px;}
.pt-100 { padding-top: 100px; }
.pt-120 { padding-top: 120px; }
.pt-140 { padding-top: 140px; }
.pt-160 { padding-top: 160px; }
.pt-180 { padding-top: 180px; }
.pt-200 { padding-top: 200px; }
.pb-0 { padding-bottom: 0!important; }
.pb-10 { padding-bottom: 10px; }
.pb-20 { padding-bottom: 20px; }
.pb-30 { padding-bottom: 30px; }
.pb-40 { padding-bottom: 40px; }
.pb-50 { padding-bottom: 50px; }
.pb-60 { padding-bottom: 60px; }
.pb-70 { padding-bottom: 70px; }
.pb-80 { padding-bottom: 80px; }
.pb-90 { padding-bottom: 90px; }
.pb-100 { padding-bottom: 100px; }
.pb-120 { padding-bottom: 120px; }
.pb-140 { padding-bottom: 140px; }
.pb-160 { padding-bottom: 160px; }
.pb-180 { padding-bottom: 180px; }
.pb-200 { padding-bottom: 200px; }
@media screen and (max-width: 767px) {
  .sppt-0 { padding-top: 0!important; }
  .sppt-10 { padding-top: 10px; }
  .sppt-20 { padding-top: 20px; }
  .sppt-30 { padding-top: 30px; }
  .sppt-40 { padding-top: 40px; }
  .sppt-50 { padding-top: 50px; }
  .sppt-60 { padding-top: 60px; }
  .sppt-70 { padding-top: 70px; }
  .sppt-80 { padding-top: 80px; }
  .sppt-90 { padding-top: 90px;}
  .sppt-100 { padding-top: 100px; }
  .sppt-120 { padding-top: 120px; }
  .sppt-140 { padding-top: 140px; }
  .sppt-160 { padding-top: 160px; }
  .sppt-180 { padding-top: 180px; }
  .sppt-200 { padding-top: 200px; }
  .sppb-0 { padding-bottom: 0!important; }
  .sppb-10 { padding-bottom: 10px; }
  .sppb-20 { padding-bottom: 20px; }
  .sppb-30 { padding-bottom: 30px; }
  .sppb-40 { padding-bottom: 40px; }
  .sppb-50 { padding-bottom: 50px; }
  .sppb-60 { padding-bottom: 60px; }
  .sppb-70 { padding-bottom: 70px; }
  .sppb-80 { padding-bottom: 80px; }
  .sppb-90 { padding-bottom: 90px; }
  .sppb-100 { padding-bottom: 100px; }
  .sppb-120 { padding-bottom: 120px; }
  .sppb-140 { padding-bottom: 140px; }
  .sppb-160 { padding-bottom: 160px; }
  .sppb-180 { padding-bottom: 180px; }
  .sppb-200 { padding-bottom: 200px; }
}
.ptpb-100 {
  padding-top: 100px;
  padding-bottom: 100px;
}
@media screen and (max-width: 767px) {
  .ptpb-100 {
    padding-top: 50px;
    padding-bottom: 50px;
  }
}
.plpr-20 {
  padding-left: 20px;
  padding-right: 20px;
}
@media screen and (max-width: 767px) {
  .sp-plpr-20 {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}


/* ------------------------
header
------------------------ */


/* ------------------------
main
------------------------ */
@media screen and (min-width: 768px) {
  .sec01 {
    background: url(../img/sec01_bg.jpg) no-repeat center / cover;
  }
}
@media screen and (max-width: 1024px) {
  .sec01 {
    background-position: 0 center;
  }
}
@media screen and (max-width: 767px) {
  .sec01 .txt-wrap {
    background: url(../img/sec01_bg_sp.png) no-repeat center / cover;
  }
}
.sec01 .anchor-link {
  gap: 0;
}
.sec01 .anchor-link > * {
  flex: 1;
}
@media screen and (max-width: 767px) {
  .sec01 .anchor-link {
    flex-direction: column;
  }
}

.sec02 {
  background: #f2f4f5;
  position: relative;
  box-shadow: inset 0 -94px 0 #1b9aaa;
}
@media screen and (max-width: 767px) {
  .sec02 {
    box-shadow: inset 0 -40px 0 #1b9aaa;
  }
}
.sec02::before {
  content: "";
  position: absolute;
  top: 700px;
  left: 0;
  width: 31.8vw;
  aspect-ratio: 1 / 1;
  background: url(../img/sec02_deco01.png) no-repeat center / contain;
}
@media screen and (max-width: 767px) {
  .sec02::before {
    top: 720px;
    width: 50vw;
  }
}
.sec02 .ttl-wrap {
  background: url(../img/sec02_ttl_bg.jpg) no-repeat center / cover;
  height: 700px;
}
@media screen and (max-width: 1024px) {
  .sec02 .ttl-wrap {
    background-position: -300px center;
  }
}
@media screen and (max-width: 767px) {
  .sec02 .ttl-wrap {
    background: url(../img/sec02_ttl_bg_sp.jpg) no-repeat top center / cover;
    height: 720px;
  }
}
.sec02 .ttl-wrap .inner {
  max-width: 88.3%;
  height: 100%;
  position: relative;
  margin: 0 auto;
}
.sec02 .ttl-wrap img {
  /* width: 44.3%; */
  max-width: 532px;
  position: absolute;
  top: 50%;
  left: calc(50% + 30px);
  transform: translateY(-50%);
}
@media screen and (max-width: 1024px) {
  .sec02 .ttl-wrap img {
    left: auto;
    right: -20px;
  }
}
@media screen and (max-width: 767px) {
  .sec02 .ttl-wrap img {
    width: 89.6%;
    max-width: 336px;
    top: 154px;
    left: 0;
    right: 0;
    margin: auto;
    transform: inherit;
  }
}
.sec02 .box {
  background: #fff;
  width: 83.3%;
  max-width: 1600px;
  border: solid 1.4px #1b9aaa;
  margin: -40px auto 0;
  padding: 50px;
  position: relative;
}
@media screen and (max-width: 767px) {
  .sec02 .box {
    width: 90%;
    margin: -20px auto 0;
    padding: 16px;
  }
}

.sec03 {
  background: #f2f4f5;
  position: relative;
  box-shadow: inset 0 -94px 0 #3a506b;
}
@media screen and (max-width: 767px) {
  .sec03 {
    box-shadow: inset 0 -40px 0 #3a506b;
  }
}
.sec03::before {
  content: "";
  position: absolute;
  top: 700px;
  left: 0;
  width: 31.8vw;
  aspect-ratio: 1 / 1;
  background: url(../img/sec03_deco01.png) no-repeat center / contain;
}
@media screen and (max-width: 767px) {
  .sec03::before {
    top: 720px;
    width: 50vw;
  }
}
.sec03 .ttl-wrap {
  background: url(../img/sec03_ttl_bg.jpg) no-repeat center / cover;
  height: 700px;
  position: relative;
}
@media screen and (max-width: 1024px) {
  .sec03 .ttl-wrap {
    background-position: right -300px center;
  }
}
@media screen and (max-width: 767px) {
  .sec03 .ttl-wrap {
    background: url(../img/sec03_ttl_bg_sp.jpg) no-repeat top center / cover;
    height: 720px;
  }
}
.sec03 .ttl-wrap .inner {
  max-width: 88.3%;
  height: 100%;
  position: relative;
  margin: 0 auto;
}
.sec03 .ttl-wrap img {
  /* width: 37.6%; */
  max-width: 452px;
  position: absolute;
  top: 50%;
  right: calc(50% + 78px);
  transform: translateY(-50%);
}
@media screen and (max-width: 1024px) {
  .sec03 .ttl-wrap img {
    right: auto;
    left: -20px;
  }
}
@media screen and (max-width: 767px) {
  .sec03 .ttl-wrap img {
    width: 61.3%;
    max-width: 230px;
    top: 196px;
    left: 0;
    right: 0;
    margin: auto;
    transform: inherit;
  }
}
.sec03 .box {
  background: #fff;
  width: 83.3%;
  max-width: 1600px;
  border: solid 1.4px #3a506b;
  margin: -40px auto 0;
  padding: 50px;
  position: relative;
}
@media screen and (max-width: 767px) {
  .sec03 .box {
    width: 90%;
    margin: -20px auto 0;
    padding: 16px 16px 30px;
  }
}

.sec04 {
  background: #f2f4f5;
  position: relative;
  box-shadow: inset 0 -94px 0 #247ba0;
}
@media screen and (max-width: 767px) {
  .sec04 {
    box-shadow: inset 0 -40px 0 #247ba0;
  }
}
.sec04::before {
  content: "";
  position: absolute;
  top: 700px;
  left: 0;
  width: 31.8vw;
  aspect-ratio: 1 / 1;
  background: url(../img/sec04_deco01.png) no-repeat center / contain;
}
@media screen and (max-width: 767px) {
  .sec04::before {
    top: 720px;
    width: 50vw;
  }
}
.sec04 .ttl-wrap {
  background: url(../img/sec04_ttl_bg.jpg) no-repeat center / cover;
  height: 700px;
  position: relative;
}
@media screen and (max-width: 1024px) {
  .sec04 .ttl-wrap {
    background-position: -300px center;
  }
}
@media screen and (max-width: 767px) {
  .sec04 .ttl-wrap {
    background: url(../img/sec04_ttl_bg_sp.jpg) no-repeat top center / cover;
    height: 720px;
  }
}
.sec04 .ttl-wrap .inner {
  max-width: 88.3%;
  height: 100%;
  position: relative;
  margin: 0 auto;
}
.sec04 .ttl-wrap img {
  /* width: 41.25%; */
  max-width: 495px;
  position: absolute;
  top: 50%;
  left: calc(50% + 58px);
  transform: translateY(-50%);
}
@media screen and (max-width: 1024px) {
  .sec04 .ttl-wrap img {
    left: auto;
    right: -20px;
  }
}
@media screen and (max-width: 767px) {
  .sec04 .ttl-wrap img {
    width: 74.6%;
    max-width: 280px;
    top: 159px;
    left: 0;
    right: 0;
    margin: auto;
    transform: inherit;
  }
}
.sec04 .box {
  background: #fff;
  width: 83.3%;
  max-width: 1600px;
  border: solid 1.4px #3a506b;
  margin: -40px auto 0;
  padding: 50px;
  position: relative;
}
@media screen and (max-width: 767px) {
  .sec04 .box {
    width: 90%;
    margin: -20px auto 0;
    padding: 16px 16px 30px;
  }
}

.totop {
  position: fixed;
  right: 2vw;
  bottom: 2vw;
  z-index: 999;
}
.totop img {
  width: 80px;
  height: 80px;
}
@media screen and (max-width: 767px) {
  .totop img {
    width: 50px;
    height: 50px;
  }
}


/* ------------------------
footer
------------------------ */
footer .footer-info {
  background: #44403F;
  color: #fff;
}
footer .footer-info-ttl {
  font-size: 88.8%;
  margin-bottom: 16px;
}
footer .footer-info-tel {
  width: 370px;
  margin: 0 auto;
}
footer .footer-info-open {
  font-size: 72.2%;
  font-weight: 300;
  margin-top: 16px;
  margin-bottom: 33px;
}

footer .btn-area {
  max-width: 700px;
  margin: 0 auto;
}
footer .btn-area .con-btn a {
  width: 336px;
  height: 73px;
  font-size: 30px;
  position: relative;
  margin: 0 auto;
  font-weight: 300;
  padding-right: 3%;
}
footer .btn-area .con-btn a::after {
  position: absolute;
  content: "";
  display: block;
  border-top: solid 1px #fff;
  top: 50%;
  right: 0;
  z-index: 1;
  width: 23px;
}
footer .btn-area .con-btn img {
  width: 29px;
  margin-top: 5px;
  margin-right: 40px;
}
footer .btn01 a {
  color: #fff;
  display: flex;
  display: -webkit-flex;
  justify-content: center;
  align-items: center;
  background: linear-gradient(-45deg, #A98C48 0%, #D3C580 20%, #BBA35A 60%, #C8B570 80%, #A98C48 100%);
  position: relative;
  overflow: hidden;
  font-weight: 300;
}
footer .btn01 a:hover,
footer .btn01 a img:hover {
  opacity: 1;
}
footer .btn01 a::before {
  content: '';
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: -100%;
  background-image: linear-gradient(130deg, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 75%);
  -webkit-transition: 0.5s;
  transition: 0.5s;
}
footer .btn01 a:hover::before {
  left: 100%;
}
footer .btn02 a {
  color: #fff;
  display: flex;
  display: -webkit-flex;
  justify-content: center;
  align-items: center;
  background: linear-gradient(130deg, #71553D 0%, #876B4C 20%, #6E5239 60%, #826648 80%, #70553C 100%);
  position: relative;
  overflow: hidden;
  font-weight: 300;
}
footer .btn02 a:hover,
footer .btn02 a img:hover {
  opacity: 1;
}
footer .btn02 a::before {
  content: '';
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: -100%;
  background-image: linear-gradient(130deg, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 75%);
  -webkit-transition: 0.5s;
  transition: 0.5s;
}
footer .btn02 a:hover::before {
  left: 100%;
}
footer .btn-area .con-btn.col-1 a {
  width: 480px;
}
footer .btn-area .con-btn.col-2 a {
  width: 336px;
}

footer .bnr-area {
  padding: 35px 0 45px;
  border-bottom: solid 1px #939597;
}
footer .bnr-area p {
  font-size: 72.2%;
  font-weight: 500;
  margin-bottom: 26px;
}
footer .bnr-area p span {
  color: #AC854E;
}
footer .bnr-area .bnr {
  justify-content: space-between;
  max-width: 1100px;
  margin: 0 auto;
}
footer .bnr-area .bnr a {
  width: 24%;
}

footer .owner {
  padding: 40px 0 46px;
  justify-content: center;
}
footer .owner a {
  margin: 0 20px;
}
footer .owner img {
  max-width: 183px;
}

footer .copyright {
  font-size: 83%;
  background: #323232;
  color: #fff;
}
@media screen and (max-width: 767px) {
  footer .copyright {
    font-size: 55.5%;
  }
}

@media screen and (max-width: 767px){
  footer .footer-info {
    padding: 40px 0;
  }
  footer .footer-info-ttl {
    font-size: 14px;
    margin-bottom: 16px;
  }
  footer .footer-info-tel {
    width: 236px;
    height: auto;
    margin: 0 auto;
  }
  footer .footer-info-open {
    font-size: 12px;
    margin-top: 9px;
    margin-bottom: 20px;
    letter-spacing: -0.03rem;
  }
  footer .btn-area {
    width: 90%;
  }
  footer .btn-area .con-btn.col-2 {
    width: 48%;
  }
  footer .btn-area .con-btn a {
    width: 100%!important;
    max-width: 234px;
    height: 50px;
    font-size: 19px;
    padding-right: 8%;
  }
  footer .btn-area .con-btn a::after {
    width: 16px;
  }
  footer .btn-area .con-btn img {
    width: 20px;
    height: auto;
    margin-top: 0;
    margin-right: 16px;
  }
  footer .bnr-area {
    padding: 24px 16px 40px;
  }
  footer .bnr-area p {
    font-size: 12px;
    text-align: left;
    margin-bottom: 40px;
  }
  footer .bnr-area .bnr {
    display: block;
  }
  footer .bnr-area .bnr a {
    margin-right: 0;
  }
  footer .bnr-area .bnr a img {
    width: 47%;
    height: auto;
  }
  footer .bnr-area .bnr a:nth-child(1) img,
  footer .bnr-area .bnr a:nth-child(2) img {
    margin-bottom: 2%;
  }
  footer .owner {
    padding: 30px 0 24px;
  }
  footer .owner a {
    width: 39%;
    margin: 0 10px 0;
  }
}