@charset "UTF-8";/* 2025.01.27 */

/* 特定header */
#header {background-color: inherit!important;}
header .h_logo a {background-image: url("../images/common/logo-w.svg")!important;}
main {padding-top: 0!important;}
header #gnav_btn > div > span {background: #fff!important;}
@media (min-width: 861px) {
  header.plus1 #h-nav > li > a {
    color: var(--text)!important;
  }
  header #h-nav > li > a,
  header.plus1 #h-nav > .h-contact > a {
    color: #fff!important;
  }
}


/* contents */
main [class^="container"], main [class*=" container"] {
  padding-left: 5.3%;
  padding-right: 5.3%;
}
@media (min-width: 1330px) {
  [class^="container"], [class*=" container"], main [class^="container"], main [class*=" container"] {
    padding-left: 0;
    padding-right: 0;}
}
.anchor {
  position: relative;
}

.anchor::before {
  content: '';
  display: block;
  height: 60px;
  margin-top: -60px;
}
.ttl_01 {
  padding-bottom: 60px;
}
.img_main {
  position: relative;
}
.mv_img img {
  height: 375px;
  width: 100%;
  object-fit: cover;
}


@media (min-width: 1081px) {
  .mv_img img {
    height: auto;
    object-fit: contain;
  }
}

.mv_txt {
  padding-left: 5%;
  padding-bottom: 5vw;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  z-index: 3;
  color: #fff!important;
  text-align: left;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  position: absolute;
}
.ttl_main {
  width: 88%;
  height: auto;
  text-align: left;
  margin: 0;
  padding: 0;
}

.txt_02 {
  padding: 32px 0 80px;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 2;
}
.btn_scr {
  right: 20px;
  bottom: 10px;
  width: 20px;
  height: auto;
  position: absolute;
}
.link_list {
  width: 254px;
  margin: 100px auto 85px;
}
.link_list li {
  margin-bottom: 20px;
}
.link_list a {
  font-size: 2.3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--text);
  width: 100%;
}
.link_list img {
  width: 36px;
}
@media (max-width: 1080px) {
  .btn_scr {
    display: none;
  }
  .ttl_main {
    width: min(70% , 1000px);
  }
}
@media (min-width: 577px) {
  .mv_txt {
    top: 60px;
    height: calc(100% - 68px);
  }
  .txt_02 {
    padding-bottom: 0;
  }
  .txt_02.pc_only {
    display: none!important;
  }
  .txt_02.sp_only {
    display: block!important;
  }
}
@media (min-width: 720px) {
  .ttl_main {
    width: 60%;
  }
  .link_list a {
    font-size: 2.6rem;
  }
  .link_list img {
    margin-left: 10px;
  }
}
@media (min-width: 860px) {
  .link_list {
    width: min(812px, 90%);
    display: flex;
    justify-content: space-between;
  }
}
@media (min-width: 1081px) {
  .mv_txt {
    padding-left: 7%;
  }
  .link_list {
    margin-bottom: 170px;
  }
  .link_list img {
    width: 45px;
  }
}
.ac1 {
  height: 72px;
  margin: -36px 0 0 auto;
  position: relative;
  z-index: 2;
  display: block;
}
@media (min-width: 768px) {
  .ac1 {
    height: 180px;
    margin: -90px 0 0 auto;
  }
  .txt_02.pc_only {
    display: block!important;
  }
  .txt_02.sp_only {
    display: none!important;
  }
}

.left .ac1 {
  margin-left: 0;
}
.txt_03 {
  padding-bottom: 60px;
}
@media (max-width: 767px) {
  .btn_scr {display: none;}
}
@media (min-width: 768px) {
  .txt_03 {
    font-size: 1.8rem;
    text-align: center;
  }
}
@media (min-width: 1081px) {
  .txt_02.pc_only {
    font-size: 2rem;
  }
  .mv .ac1 {
    margin: -90px 110px 0 auto;
  }
}



#sec01 {
  margin-bottom: 100px;
}
#s01,
#c01 {
  position: relative;
}
#s01::after,
#c01::after {
  width: 100%;
  height: calc(100% + 40px);
  top: -40px;
  background-color: var(--sub3);
  position: absolute;
  display: block;
  z-index: -1;
  content: '';
}
#c01::after {
  margin-left: 5.3%;
  top: 86px!important;
  height: calc(100% - 80px)!important;
  right: 0;
}
#s01 {
  padding-bottom: 65px;
  margin-bottom: 100px;
}
.txt_05 {
  padding-bottom: 45px;
}
@media (min-width: 1081px) {
  #sec01 {
    margin-bottom: 150px;
  }
  .txt_05 {
    font-size: 1.8rem;
    padding-bottom: 40px;
  }
}


.right {
  width: 90%;
  margin: 0 0 0 auto;
  text-align: right;
}
.left {
  width: 90%;
  margin: 0 auto 0 0;
}

.left.txtbox {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 860px) and (max-width: 1080px) {
  .left.txtbox {
    width: 90%;
    margin-left: auto;
    margin-right: 0;
  }
}
#c01 {
  padding-bottom: 65px;
  margin-bottom: 100px;
}
#c01 .txt_06 {
  text-align: center;
}

.ttl02 {
  font-size: clamp(3.2rem, -8.5rem + 17.33vw, 4.5rem);
}
.ttl03 {
  padding-bottom: 20px;
  font-size: 2.3rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
}
.box01 {
  background: linear-gradient(to bottom, #fff 50%, var(--sub3) 50%);
}
.list_01 {
  margin-top: 90px;
  gap: 10px;
}
.list_01 li {
  padding: 20px 15px 30px;
  margin-bottom: 100px;
  border: solid 10px #eee;
  background-color: #fff;
}
.list_01 img {
  margin: -106px auto 20px;
  display: block;
}

.list_01 li:first-child img {
  margin: -125px auto 20px;
}
@media (min-width: 768px) {
  #s01 section::after,
  #c01 section::after {
    width: 99%;
  }
  #s01_c01 .ttl_01 .sub {
    padding-bottom: 30px;
  }
  #s01_c01 .left.txtbox .container-sm,
  #s01_c01 .left.txtbox .container {
    margin-left: 0;
  }
  #s01_c01 .ttl_01 {
    text-align: left;
    padding-right: 0;
  }
  #s01::after {
    height: calc(100% - 164px)!important;
  }
  #c01 {
    margin-bottom: 90px;
  }
  #c01::after {
    height: calc(100% - 164px)!important;
    margin-left: 5.3%;
    margin-right: auto;
  }
  #c01 .txt_06 {
    text-align: left;
    font-size: 2rem;
  }
  #c01 .btn_01 {
    margin-left: 125px;
    margin-right: auto;
  }
  .list_01 {
    max-width: 100%!important;
  }
  .list_01 li {
    width: 49%;
    max-width: 388px;
    align-self: stretch;
  }
  .box01 {
    background: linear-gradient(to bottom, #fff 20%, var(--sub3) 20%);
  }
}
@media (min-width: 860px) {
  #s01_c01 .left.txtbox .container-sm,
  #s01_c01 .left.txtbox .container {
    margin-left: auto;
  }
}

@media (min-width: 1081px) {
  .list_01 li {
    margin-bottom: 110px;
    height: 368px;
  }
  #s01_c01 {
    width: 1400px;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  #s01::after,
  #c01::after {
    top: 124px!important;
    width: 75%;
  }
  #s01 {
    margin-bottom: 120px;
  }
  #c01 {
    margin-bottom: 180px;
  }
  #s01::after {
    left: 0;
  }
  #c01::after {
    right: 0;
    left: auto;
  }
  .left.txtbox {
    max-width: 526px;
    margin: 0 10px 0 auto;
  }
  .right.imgbox {
    width: 44%;
    margin: 0;
  }
  .left.imgbox {
    width: 44%;
    max-width: 598px;
    order: -1;
    margin: 0;
 }
  .right.txtbox {
    width: 558px;
    margin-left: 10px;
    margin-right: auto;
  }
  #c01 .btn_01 {
    margin-left: 0;
    width: 280px;
  }
}
@media (min-width: 1200px) {
  .left.txtbox {
    margin: 0 80px 0 auto;
  }
  .right.txtbox {
    margin-left: 80px;
  }
  #s01 section::after,
  #c01 section::after {
    width: 1120px;
    height: 500px!important;
  }
  #s01::after,
  #c01::after {
    top: 136px !important;
  }
}
@media (min-width: 1330px) {
  .list_01 li {
    align-self: flex-start;
  }.list_01 li:nth-child(2) {
    margin-top: -60px;
  }
}
@media (min-width: 1600px) {
  .right.imgbox {
    width: 598px;
  }
  .right img, .left img {
    max-width: 100%;
  }
  .left.txtbox {
    max-width: 558px;
  }
  .ac1 {
    margin: -90px -40px 0 auto;
  }
}

#sec02 {
  max-width: 100%;
  width: 1194px;
  margin-bottom: 150px;
}

.ttl_name {
  font-size: 1.6rem;
  padding: 8px 15px;
  margin: 8px 0 26px;
  text-align: left;
  font-family: "Noto Sans JP", sans-serif;
  display: block;
  border: solid 1px;
}
.txt_01 {
  font-size: 1.8rem;
  line-height: 1.4;
  font-family: "Shippori Mincho B1", serif;
  font-weight: 700;
  letter-spacing: 0;
}
.btn_01 {
  margin: 20px 0 60px auto;
}
@media (min-width: 1081px) {
  .txt_01 {
    font-size: 2.3rem;
  }
}

/* モーダル */
html.no-scroll,
.no-scroll {
  overflow: hidden;
}
.modalBox {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 99;
}
.md01 {
  width: 940px;
  max-width: 90%;
  margin: 0 auto;
  background-color: #fff;
  padding: 0;
  position: relative;
}
.btn_close01 {
  filter: drop-shadow(5px 5px 10px rgba(0, 0, 0, 0.6));
  top: 15px;
  right: 18px;
  width: 46px;
  position: absolute;
  z-index: 11;
}
.btn_close01:hover {
  filter: drop-shadow(5px 5px 10px rgba(0, 0, 0, 0.9));
}
.modalBody {
  max-height: 84vh;
  overflow-y: auto;
}
.modalBody .container {
  padding-left: 5.3%!important;
  padding-right: 5.3%!important;
}
.modalContent {
  padding-top: 100px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.img_top {
  margin-bottom: 40px;
}
.img_int {
  position: relative;
}
.cap_int {
  width: min(60%, 452px);
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 2;
}
.ttl05 {
  padding-bottom: 20px;
  font-size: clamp(2.5rem, 0.722rem + 3.7vw, 3.5rem);
  text-align: left;
}
@media (min-width: 577px) {
 .ttl05 .pc_only {
      display: none!important;
  }
}
@media (min-width: 768px) {
 .ttl05 .pc_only {
      display: none!important;
  }
}
@media (min-width: 1081px) {
 .ttl05 .pc_only {
      display: block!important;
  }
}
.int_name {
  padding: 10px 15px;
  margin-bottom: 30px;
  background: var(--sub3);
  display: flex;
  align-items: center;
}
.txt_p {
  margin-right: 15px;
  border-bottom: solid 1px;
  font-weight: 700;
}
@media (max-width: 440px) {
  .txt_p.long {
    font-size: 3vw;
  }
}
.txt_n {
  font-size: 5rem;
  font-family: "Poppins", serif;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0;
  position: relative;
}
.txt_n::after {
  content: 'さん';
  font-size: 1.6rem;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
}
.int_list dt {
  display: flex;
  margin-bottom: 15px;
}
.int_list h3 {
  font-size: clamp(1.8rem, 0.911rem + 1.85vw, 2.3rem);
  padding: 0 0 0 15px;
  text-align: left;
}
.int_list dd {
  padding: 10px 10px 40px;
  margin-bottom: 40px;
  border-bottom: dotted 2px #ddd;
}
.btn_close02 {
  font-size: 2rem;
  padding: 11px 40px;
  margin: 50px auto 100px;
  display: block;
  background: #111;
  color: #fff;
  font-family: "Poppins", serif;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0;
  transition: .2s;
}
.btn_close02:hover {
  background-color: var(--main);
}
@media (min-width: 768px) {
  .ttl05 {
    margin-bottom: 30px;
  }
}

#sec03 {
  background-color: var(--sub3);
  padding-bottom: 50px;
  margin-bottom: 100px;
}
@media (min-width: 1081px) {
  #sec03 {
    padding-bottom: 80px;
    margin-bottom: 150px;
  }
  #sec03 .container {
    padding-top: 80px;
  }
}

#sec04 {
  margin-bottom: 100px;
}
.list_02 {
  max-width: 378px;
  margin-left: auto;
  margin-right: auto;
  gap: 26px;
}
@media (min-width: 678px) {
  .btn_01 {
    width: 100%;
  }
  .list_02 {
    max-width: 100%;
  }
  .list_02 li {
    width: calc(33% - 16px);
  }
}
@media (min-width: 720px) {
  .btn_01 {
    width: 180px;
  }
  .list_02 li {
    width: calc(33% - 16px);
  }
}

.list_03 {
  max-width: 786px;
  margin-left: auto;
  margin-right: auto;
}
.list_03 dt {
  padding: 10px;
  font-weight: 700;
  color: var(--main_txt);
  background-color: #fff;
}
.list_03 dd {
  padding: 10px 10px 30px;
}

.list_04 div {
  width: 100%;
  padding: 20px 10px;
  margin-bottom: 20px;
  border: solid 10px #ccc;
}
.list_04 dt {
  display: flex;
  align-items: flex-start;
}
.list_04 div {
  width: 100%;
  padding: 20px 10px;
  margin-bottom: 20px;
  border: solid 10px #eee;
}
.ttl04 {
  font-size: 1.8rem;
  text-align: left;
  padding: 0 0 10px 10px;
}
@media (min-width: 678px) {
  .list_03 div {
    padding: 30px 0;
    display: flex;
    border-bottom: solid 2px #ddd;
  }
  .list_03 dt,
  .list_03 dd {
    margin: 0;
    padding: 0;
  }
  .list_03 dt {
    width: 200px;
    display: flex;
    align-items: center;
    background: none;
  }
  .list_04 {
    display: flex;
    gap: 14px;
  }
  .list_04 div {
    width: calc(50% - 7px);
    padding: 25px 35px;
  }
}
@media (min-width: 1081px) {
  .ttl04 {
    font-size: 2.3rem;
  }
  #sec04 {
    max-width: 1194px;
    margin-bottom: 130px;
  }
}
.filter01 img, .filter02 img {vertical-align: middle;}
.filter01::before, .filter02::before {height: 100%;}