@import url("form.css");
@import url("search_map.css");
body:not(.scrolled) #head .logo_wrap .logo .a .icon {
  background-image: url("../images/common/logo_w.png");
}
body:not(.scrolled) #head .logo_wrap .logo.logo_en .a .icon {
  background-image: url("../images/common_en/logo_w.png");
}

/*#contents {
    scroll-snap-type: y mandatory;
    scroll-snap-stop: always;
    height: 100svh;
    overflow-y: auto;
    overflow-x: hidden;
    scroll-behavior: smooth;
}*/
.section.section_fit_height {
  --sectionPaddingTop: calc(var(--headHeight) + var(--space2));
  --sectionPaddingBottom: var(--space4);
  --innerMinHeight: calc(100svh - (var(--sectionPaddingTop) + var(--sectionPaddingBottom)));
  scroll-snap-align: start;
  min-height: 100svh;
  height: -moz-fit-content !important;
  height: fit-content !important;
  box-sizing: border-box;
  padding-top: var(--sectionPaddingTop);
  padding-bottom: var(--sectionPaddingBottom);
}
.section.section_fit_height .section_inner_wrap {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  min-height: var(--innerMinHeight);
}
.section.section_fit_height .section_inner_wrap .search_map_wrap {
  width: 100%;
}
.section.section_fit_height.with_bridge {
  --sectionPaddingBottom: 0px;
}
.section.section_fit_height.with_bridge .section_inner_wrap {
  min-height: calc(var(--innerMinHeight) - 54.8717948718vw);
  box-sizing: border-box;
  padding-bottom: var(--space4);
}
@media (min-width: 521px) {
  .section.section_fit_height.with_bridge .section_inner_wrap {
    min-height: calc(var(--innerMinHeight) - 17.2916666667vw);
  }
}

#foot,
.section_dummy {
  scroll-snap-align: start;
  scroll-snap-type: y mandatory;
  scroll-snap-stop: always;
}

#head {
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 2;
}

#mv {
  height: 100svh;
  --sectionPaddingTop: 0px;
  --sectionPaddingBottom: 0px;
}
#mv picture {
  display: block;
  width: 100%;
  height: 100svh;
}
#mv picture img,
#mv picture source {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
#mv .video {
  width: 100%;
  height: 100%;
  position: relative;
}
#mv video {
  width: 100vw;
  height: 100svh;
  object-fit: cover;
  -o-object-fit: cover;
  position: absolute;
  top: 0;
  left: 0;
}
#mv .video_wrap {
  position: relative;
  width: 100vw;
  height: 100svh;
}
#mv .video_wrap .kyokushin_logo {
  background-size: contain;
  width: min(90svw, 800px);
  height: 300px;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
#mv .video_wrap .kyokushin_logo .icon {
  width: 100%;
  height: 100%;
  background-image: url("../images/common/concept.png");
}
#mv .columns {
  height: 100%;
}
#mv .banners {
  width: 100%;
  position: absolute;
  left: 0;
  right: 0;
  margin: auto;
  bottom: var(--space2);
  display: flex;
  justify-content: center;
  max-width: min(100vw - var(--cont_margin) * 2, 600px);
}
#mv .banners .slick-track {
  width: 100%;
  grid-gap: var(--space4);
}
#mv .banners .slick-dots {
  display: flex;
  flex-direction: row;
  grid-gap: 0 var(--space1);
  justify-content: center;
  bottom: auto;
  top: calc(100% + var(--space1));
}
#mv .banners .slick-dots li {
  width: 48px;
  height: 4px;
  margin: 0;
}
#mv .banners .slick-dots li button {
  background: var(--colorBlack);
  width: 100%;
  height: 100%;
  padding: 0;
}
#mv .banners .slick-dots li button::before {
  content: "";
}
#mv .banners .slick-dots li:not(.slick-active) button {
  opacity: 0.33;
  filter: Alpha(opacity=33);
}
#mv .banners .banner {
  max-width: min(100vw - var(--cont_margin) * 2, 600px);
}
#mv .banners .banner picture {
  width: 100%;
  height: auto;
  aspect-ratio: 2/1;
}
@media (min-width: 521px) {
  #mv .banners {
    right: var(--space2);
    left: auto;
  }
  #mv .banners .banner picture {
    aspect-ratio: 3/1;
  }
}

.bridge {
  display: block;
  /*margin-top:var(--space5);
  margin-bottom:var(--space5);*/
}

#philosophy .columns .column {
  position: relative;
}
@media (hover: hover) {
  #philosophy .columns .column:hover {
    z-index: 2;
  }
}
#philosophy .columns .column a picture {
  transition: var(--animationDuration) transform;
}
@media (hover: hover) {
  #philosophy .columns .column a:hover picture {
    transform: scale(1.033);
  }
}
#philosophy .columns .column .inner {
  width: calc(100% - var(--cont_margin) * 2 * 2);
  height: calc(100% - var(--cont_margin) * 2);
  display: flex;
  justify-content: flex-end;
  align-items: flex-start;
  flex-direction: column;
  color: #FFF;
  text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2);
}
#philosophy .columns .column .inner .title {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  grid-gap: var(--space2);
}
#philosophy .columns .column .inner .title::after {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  transform: rotate(45deg);
  border-style: solid;
  border-width: 1px;
  border-color: #FFF #FFF transparent transparent;
}
@media (max-width: 520px) {
  #philosophy {
    --sectionPaddingBottom: calc(var(--buttonHeight) + var(--space1) + var(--space2));
  }
  #philosophy .columns .column {
    height: 34svh;
  }
  #philosophy .columns .column picture {
    height: 100%;
    overflow: hidden;
  }
  #philosophy .columns .column picture > img,
  #philosophy .columns .column picture > source {
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
}

@media (max-width: 520px) {
  .section_guide#guide {
    --sectionPaddingBottom: calc(var(--space5) * 2);
  }
}
@media (min-width: 1280px) {
  .section_guide .block {
    display: flex;
    justify-content: space-between;
  }
  .section_guide .block .body {
    min-width: 480px;
  }
}

#search .maps .news_accordion_wrap {
  --blockFootHeight: var(--space4);
}
#search .maps .news_accordion_wrap .block {
  box-shadow: 0px 0px 16px 2px rgba(0, 0, 0, 0.1);
  background: #FFF;
  width: 330px;
}
#search .maps .news_accordion_wrap .block > .head {
  height: var(--blockHeadHeight);
  display: flex;
  align-items: center;
  margin-bottom: 0;
  border-bottom: 1px solid #DDD;
}
#search .maps .news_accordion_wrap .block > .head,
#search .maps .news_accordion_wrap .block > .body {
  box-sizing: border-box;
  padding: 0 var(--space2);
}
#search .maps .news_accordion_wrap .block > .body {
  box-sizing: border-box;
  padding-top: var(--space1);
  padding-bottom: var(--space2);
  height: calc(100% - (var(--blockHeadHeight) + var(--blockFootHeight)));
  overflow-y: auto;
}
#search .maps .news_accordion_wrap .block > .body .list_news_wrap {
  grid-gap: 0;
}
#search .maps .news_accordion_wrap .block > .foot {
  height: var(--blockFootHeight);
  margin-top: 0;
}
@media (max-width: 767px) {
  #search .maps .news_accordion_wrap {
    left: auto;
    top: auto;
    right: var(--space1);
    bottom: var(--space1);
  }
  #search .maps .news_accordion_wrap:not(.active) .block {
    display: none;
  }
  #search .maps .news_accordion_wrap .block {
    position: fixed;
    height: min(100svh - var(--space2) * 2, 480px) !important;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    z-index: 2;
  }
  #search .maps .news_accordion_wrap .block > .head .to_link .a.close {
    width: 24px;
    height: 24px;
    min-width: auto;
    padding: 0;
    --buttonBorderColor: 0;
    --buttonColor: var(--colorBlack);
  }
}
@media (min-width: 768px) {
  #search .maps .news_accordion_wrap {
    top: var(--space4);
    left: calc(var(--cont_margin) + var(--space2));
    right: auto;
    bottom: auto;
  }
  #search .maps .news_accordion_wrap .block {
    position: relative;
    height: min(100svh - var(--space2) * 2, 320px);
    transition: var(--animationDuration) height;
    overflow: hidden;
  }
  #search .maps .news_accordion_wrap .block .list_news_wrap .list > .inner {
    flex-direction: column;
    grid-gap: 0;
    padding-top: var(--space1);
    padding-bottom: var(--space1);
  }
  #search .maps .news_accordion_wrap .block:not(.active) {
    height: var(--blockHeadHeight);
  }
}

#home_steps {
  position: fixed;
  top: 0;
  bottom: 0;
  right: var(--space1);
  left: auto;
  height: -moz-fit-content;
  height: fit-content;
  grid-gap: 0;
  flex-direction: column;
  z-index: 1;
}
#home_steps .btn {
  width: 24px;
  height: 24px;
}
#home_steps .btn .a {
  width: 100%;
  height: 100%;
}
#home_steps .btn .a .circle {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--colorBlack);
  transition: var(--animationDuration) transform;
}
@media (hover: hover) {
  #home_steps .btn .a:hover .circle {
    transform: scale(1.1);
  }
}
#home_steps .btn:not(.active) .a .circle {
  opacity: 0.25;
  filter: Alpha(opacity=25);
}
@media (min-width: 768px) {
  #home_steps .btn {
    width: 28px;
    height: 28px;
  }
  #home_steps .btn .a .circle {
    width: 12px;
    height: 12px;
  }
}