@charset "UTF-8";
/*--------------------------------------------
  ブレイクポイント設定
--------------------------------------------*/
@media screen and (max-width: 767px) {
  .sm_none {
    display: none;
  }
}

@media screen and (min-width: 768px) and (max-width: 968px) {
  .md_none {
    display: none;
  }
}

@media screen and (min-width: 969px) {
  .lg_none {
    display: none;
  }
}

@media screen and (min-width: 1200px) {
  .xl_none {
    display: none;
  }
}

/*トップページ見出し*/
.section_title {
  margin: 0 0 1em;
}
@media screen and (min-width: 969px) {
  .section_title {
    margin: 0 0 2em;
  }
}
.section_title .section_title_sub {
  font-family: "Inter", sans-serif;
  color: var(--navy);
  font-weight: 400;
  display: flex;
  align-items: center;
  justify-content: start;
  column-gap: 0.5em;
  font-size: clamp(14px, 1vw, 18px);
  margin-left: 0;
}
@media screen and (min-width: 969px) {
  .section_title .section_title_sub {
    margin-left: calc(-23px - 0.5em);
  }
}
.section_title .section_title_sub::before {
  content: "";
  display: inline-block;
  width: 23px;
  aspect-ratio: 23/9;
  background-image: url(../images/common/ico_title_bg.svg);
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% auto;
}
.section_title .section_title_main {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 3vw, 26px);
  margin-top: 4px;
  margin-left: calc(23px + 0.35em);
}
@media screen and (min-width: 969px) {
  .section_title .section_title_main {
    margin-left: 0;
  }
}

/*--------------------------------------------
  メインビジュアルセクション
--------------------------------------------*/
.hero_section {
  position: relative;
  padding-bottom: 100px;
  background-image: url(../images/common/bg.png);
}
.hero_section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.95) 5%, rgba(0, 54, 84, 0.8) 15%, rgba(0, 54, 84, 0.8) 62%, rgba(0, 54, 84, 0.7) 76%, rgba(0, 54, 84, 0.65) 78%, rgba(0, 54, 84, 0.4) 85%, rgba(0, 54, 84, 0.1) 94%, rgba(255, 255, 255, 0.95) 100%);
  mix-blend-mode: multiply;
  pointer-events: none;
  z-index: 0;
  background-position: top;
}
.hero_section > * {
  position: relative;
  z-index: 1;
}
.hero_section .hero {
  padding: 0 0 6em;
  background-image: url("../images/top/hero_bg_crowd.png"), url("../images/top/hero_bg_moon.png");
  background-repeat: no-repeat, no-repeat;
  background-size: min(90vw, 400px) auto, min(74vw, 400px), auto;
  background-position: left bottom 0em, right 6vw top 44%;
}
@media screen and (min-width: 969px) {
  .hero_section .hero {
    padding: 0;
    background-size: auto 62%, auto 53%;
    background-position: left bottom 0, right 1vw top 70%;
  }
}
.hero_section .hero .photo_group {
  margin-bottom: 100px;
}
.hero_section .hero .photo_group .photo_track {
  display: flex;
  gap: 6vw;
  will-change: transform;
}
@media screen and (min-width: 969px) {
  .hero_section .hero .photo_group .photo_track {
    gap: 2vw;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero_section .hero .photo_group .photo_track {
    transition: none !important;
  }
}
.hero_section .hero .photo_group .photo_track .photo_item {
  width: 67vw;
  flex: 0 0 auto;
  overflow: hidden;
  border-radius: 16px;
}
@media screen and (min-width: 768px) and (max-width: 968px) {
  .hero_section .hero .photo_group .photo_track .photo_item {
    width: 49vw;
  }
}
@media screen and (min-width: 969px) {
  .hero_section .hero .photo_group .photo_track .photo_item {
    width: 27vw;
  }
}
.hero_section .hero .photo_group .photo_track .photo_item img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 16px;
  overflow: hidden;
}
.hero_section .hero .photo_group .photo_track .photo_item:nth-child(odd) {
  margin-top: 0;
}
.hero_section .hero .photo_group .photo_track .photo_item:nth-child(even) {
  margin-top: 4%;
}
.hero_section .site_title {
  font-size: clamp(19px, 6.4vw, 39px);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 700;
  color: var(--white);
  line-height: 1.7em;
  width: min(92%, 1400px);
  padding: 3em 0 0;
  padding-bottom: 20px;
  margin: 0 auto;
  background-image: url(../images/top/hero_seagull.svg);
  background-repeat: no-repeat;
  background-position: left min(11vw, 500px) top;
  background-size: 19vw auto;
}
@media screen and (min-width: 969px) {
  .hero_section .site_title {
    padding: 0 5%;
    background-position: right min(28vw, 500px) top 100%;
    background-size: auto 42%;
  }
}
.hero_section .about {
  margin-top: -50px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  max-width: calc(1400px + 8%);
  margin: 0 auto;
}
@media screen and (min-width: 969px) {
  .hero_section .about {
    padding: 0 4%;
    flex-direction: row;
    padding-top: 100px;
    margin-top: 0;
  }
}
.hero_section .about::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background-image: url(../images/top/about_bg.png);
  background-repeat: no-repeat;
  background-position: right min(13vw, 500px) top 100%;
  background-size: auto 100%;
  transform: scale(-1, 1);
}
@media screen and (min-width: 969px) {
  .hero_section .about::before {
    transform: scale(1, 1);
    background-position: right min(9vw, 500px) top 100%;
  }
}
.hero_section .about .about_text {
  flex: 1;
  padding: 0 4%;
}
@media screen and (min-width: 969px) {
  .hero_section .about .about_text {
    padding: 0;
  }
}
.hero_section .about .about_text .section_title .section_title_sub, .hero_section .about .about_text .section_title .section_title_main {
  color: var(--white);
}
.hero_section .about .about_text .about_desc p {
  color: var(--white);
}
.hero_section .about .about_text .about_desc p:not(:first-child) {
  margin-top: 1.5em;
}
.hero_section .about .about_image {
  position: relative;
  width: 89%;
  aspect-ratio: 1/1.1;
  margin: 3em 0 5em 11%;
}
@media screen and (min-width: 969px) {
  .hero_section .about .about_image {
    width: 33%;
    margin: 0;
  }
}
.hero_section .about .about_image img {
  position: absolute;
  border-radius: 16px;
}
.hero_section .about .about_image img:first-of-type {
  width: 67%;
  top: 0;
  left: 0;
}
.hero_section .about .about_image img:last-of-type {
  width: 85%;
  bottom: 0;
  right: 0;
  border-radius: 16px 0 0 16px;
}
@media screen and (min-width: 969px) {
  .hero_section .about .about_image img:last-of-type {
    border-radius: 16px;
  }
}

/*--------------------------------------------
  Our philosophy
--------------------------------------------*/
.philosophy {
  margin: -100px auto 0;
  background-image: url(../images/top/philosophy_bg.png);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: auto 100%;
  position: relative;
}
.philosophy::before {
  left: 0;
  bottom: 0;
  content: "";
  width: min(40vw, 320px);
  aspect-ratio: 343/610;
  position: absolute;
  background-image: url(../images/top/philosophy_bg_left.png);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: left top 0;
  z-index: 0;
}
.philosophy::after {
  right: 0;
  bottom: 0;
  content: "";
  width: min(40vw, 320px);
  aspect-ratio: 343/614;
  position: absolute;
  background-image: url(../images/top/philosophy_bg_right.png);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: right top 0;
  z-index: 0;
}
.philosophy .philosophy_inner .philosophy_desc {
  padding-bottom: 250px;
}
@media screen and (min-width: 969px) {
  .philosophy .philosophy_inner .philosophy_desc {
    padding-bottom: 350px;
  }
}
.philosophy .philosophy_inner .philosophy_desc .philosophy_title {
  text-align: center;
  color: var(--mustard);
  font-weight: 500;
  font-size: clamp(18px, 2.5vw, 22px);
}
.philosophy .philosophy_inner .philosophy_desc .philosophy_title img {
  margin: 0 auto 0.5em;
  width: min(67vw, 270px);
}
@media screen and (min-width: 969px) {
  .philosophy .philosophy_inner .philosophy_desc .philosophy_title img {
    margin: 0 auto 1em;
  }
}
.philosophy .philosophy_inner .philosophy_desc p {
  text-align: left;
}
@media screen and (min-width: 969px) {
  .philosophy .philosophy_inner .philosophy_desc p {
    text-align: center;
  }
}
.philosophy .philosophy_inner .philosophy_desc .btn_detail {
  margin: 2em auto 0 auto;
}

/*--------------------------------------------
  インフォメーションエリア
--------------------------------------------*/
.infomation_area {
  width: 94%;
  margin: -200px auto 0;
  z-index: 1;
  position: relative;
}
.infomation_area .infomation_inner {
  padding: 3em 4vw 5em;
  display: flex;
  align-items: start;
  justify-content: space-between;
  column-gap: 2vw;
  flex-direction: column;
  row-gap: 4em;
}
@media screen and (min-width: 969px) {
  .infomation_area .infomation_inner {
    padding: 3em 4vw;
    flex-direction: row;
    background-image: url(../images/common/bg.png);
    border-radius: 40px 40px 0 0;
  }
}
.infomation_area .info_wrap {
  width: 100%;
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 969px) {
  .infomation_area .info_wrap {
    width: 48%;
  }
}
.infomation_area .info_wrap .info_title {
  font-size: clamp(20px, 3vw, 24px);
  color: var(--navy);
  margin-bottom: 1em;
  display: flex;
  align-items: center;
  justify-content: start;
  column-gap: 0.6em;
  position: relative;
  padding: 0 0 0.7em;
  margin: 0 0 1em;
}
.infomation_area .info_wrap .info_title::before {
  content: "";
  aspect-ratio: 1/1;
  width: 1em;
  background-repeat: no-repeat;
  background-size: 100% auto;
}
.infomation_area .info_wrap .info_title::after {
  content: "";
  flex-grow: 1;
  height: 2px;
  background: linear-gradient(to right, #a88d20 6em, #c1c1c1 6em, #c1c1c1 100%);
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}
@media screen and (min-width: 969px) {
  .infomation_area .info_wrap .info_title::after {
    background: linear-gradient(to right, #a88d20 28%, #c1c1c1 28%, #c1c1c1 100%);
  }
}
.infomation_area .info_wrap .info_title.news_title::before {
  background-image: url(../images/common/ico_info.svg);
}
.infomation_area .info_wrap .info_title.blog_title::before {
  background-image: url(../images/common/ico_blog.svg);
}
.infomation_area .info_wrap .infomation_list {
  display: flex;
  flex-direction: column;
  row-gap: 1.2em;
}
.infomation_area .info_wrap .infomation_list .info_item {
  display: flex;
  align-items: start;
  column-gap: 1em;
  flex-direction: column;
  row-gap: 0.5em;
  border-bottom: 1px solid #c1c1c1;
  padding-bottom: 1.2em;
}
.infomation_area .info_wrap .infomation_list .info_item .info_date {
  flex-shrink: 0;
  font-size: clamp(12px, 1.2vw, 14px);
  color: #323232;
}
.infomation_area .info_wrap .infomation_list .info_item .info_text {
  font-size: clamp(14px, 1.5vw, 16px);
  color: #323232;
}
.infomation_area .info_wrap .btn_detail {
  margin-top: 2em;
}

/*--------------------------------------------
  アクセスエリア
--------------------------------------------*/
.access_area .access_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2em 0 5em;
  flex-direction: column;
}
@media screen and (min-width: 969px) {
  .access_area .access_inner {
    flex-direction: row;
    align-items: start;
    padding-right: 5vw;
  }
}
.access_area .access_inner .access_desc .tel {
  display: none;
}
@media screen and (min-width: 969px) {
  .access_area .access_inner .access_desc .tel {
    display: flex;
  }
}
.access_area .access_inner .access_desc p {
  text-align: center;
}
@media screen and (min-width: 969px) {
  .access_area .access_inner .access_desc p {
    text-align: left;
  }
}
.access_area .access_inner .tel {
  color: var(--navy);
  font-size: clamp(18px, 2.5vw, 20px);
  font-weight: 600;
  display: flex;
  align-items: center;
  line-height: 1em;
  margin-top: 1em;
}
.access_area .access_inner .tel::before {
  content: "";
  background-image: url(../images/common/ico_tel.svg);
  background-repeat: no-repeat;
  background-size: auto 100%;
  background-position: center center;
  width: 0.9em;
  aspect-ratio: 7/8;
  margin-right: 0.5em;
}
.access_area .access_inner .access_map_link .tel {
  display: flex;
  justify-content: center;
}
@media screen and (min-width: 969px) {
  .access_area .access_inner .access_map_link .tel {
    display: none;
  }
}