@charset "utf-8";

.grid-item:nth-child(1) a .thumbnail {
  background-image: url(../images/box_greeting_2022.png);
}
.grid-item:nth-child(2) a .thumbnail {
  background-image: url(../images/img_school_info.jpg);
}
.grid-item:nth-child(3) a .thumbnail {
  background-image: url(../images/box_s-event_2023.png);
}
.grid-item:nth-child(4) a .thumbnail {
  background-image: url(../images/box_uniform_2022.png);
}
.grid-item:nth-child(5) a .thumbnail {
  background-image: url(../images/box_map.png);
}
.grid-item:nth-child(6) a .thumbnail {
  background-image: url(../images/club_2022.png);
}


/* -------------------------------------------------------
 principal
------------------------------------------------------- */
.principal figure {
  margin: 0 auto var(--content-margin);
  max-width: 960px;
}
.principal .asign img {
  max-width: 300px;
}


/* -------------------------------------------------------
 school_info
------------------------------------------------------- */
.school_info .section-title {
  width: 100%;
  height: 500px;
  aspect-ratio: 1250 / 500;
  margin: 0 auto;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: relative;
  margin-bottom: var(--content-margin);
}
.school_info .section-title .title-wrap {
  width: 525px;
  padding: 1em;
  position: absolute;
  left: 0;
  bottom: 0;
  background-color: rgba(0,0,0,.85);
  color: var(--color-theme-white);
  font-size: 26px;
  font-family: var(--font-family-serif);
  line-height: 1;
}
.school_info .section-title .title-wrap span {
  font-size: 64px;
  font-weight: 300;
  vertical-align: text-top;
}
.school_info #sec01 .section-title {
  background-image: url(../images/img_school_info_ttl_01.jpg);
}
.school_info #sec01 .type-defferent {
  font-family: var(--font-family-serif);
  font-size: 64px;
}
.school_info #sec01 .type-defferent span {
  font-size: 24px;
  display: block;
}

.school_info #sec02 .section-title {
  background-image: url(../images/img_school_info_ttl_02.jpg);
}
.school_info #sec02 h2 + p img {
  max-width: 626px;
}
.school_info #sec02 .rule {
  margin-top: var(--content-margin);
  justify-content: flex-start;
  gap: var(--grid-gap);
}

.school_info #sec02 .img_wrap {
  margin-top: 0;
}
.school_info #sec02 .image {
  display: block;
  max-height: 625px;
}

.school_info #sec02 .lesson {
  font-family: var(--font-family-serif);
  font-weight: 500;
  font-size: 18px;
  font-feature-settings: initial;
  line-height: 2.25;
  margin-top: 0
}
.school_info #sec02 .level-1 {
  margin-top: 0;
  transform: translateY(-.5em)
}
.school_info #sec02 .level-2 {
  margin-top: 0;
  margin-left: 3.15em;
}
.school_info #sec02 .level-3 {
  margin-left: 1em;
  margin-top: .5em;
}

.school_info #sec03 .section-title {
  background-image: url(../images/img_school_info_ttl_03.jpg);
}

.school_info #sec03 .enkaku_centar {
  margin-top: var(--content-margin);
}
.school_info #sec03 .enkaku_centar ul.timeline {
  margin-left: 1em;
  padding-left: 100px;
  border-left: 2px solid var(--color-theme-primary);
}
.school_info #sec03 .enkaku_centar ul.timeline > li {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  padding: 1em 0;
  gap: var(--grid-gap);
  border-bottom: 1px solid #ddd;
  position: relative;
}
.school_info #sec03 .enkaku_centar ul.timeline > li:first-child {
  border-top: 1px solid #ddd;
}
.school_info #sec03 .enkaku_centar ul.timeline > li::before {
  width: 10px;
  height: 10px;
  border-radius: 100%;
  background-color: var(--color-theme-primary);
  content: "";
  position: absolute;
  left: -106px;
  top: 50%;
  transform: translateY(-50%);
}
.school_info #sec03 .enkaku_centar ul.timeline li .year,
.school_info #sec03 .enkaku_centar ul.timeline li .nengou,
.school_info #sec03 .enkaku_centar ul.timeline li .content {
  margin: 0;
}
.school_info #sec03 .enkaku_centar ul.timeline li .year {
  font-family: var(--font-family-serif);
  font-weight: 500;
  font-size: 40px;
  min-width: 3em;
}
.school_info #sec03 .enkaku_centar ul.timeline li .nengou {
  min-width: 130px;
  min-height: 24px;
  border: 1px solid #ddd;
  border-radius: 100vh;
  background-color: var(--color-theme-white);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  font-size: 16px;
}

.school_info #sec03 .enkaku_centar ul.timeline li ul {
  flex: 1;
}

.school_info section:last-of-type {
  padding-bottom: var(--section-padding) !important;
}



/* -------------------------------------------------------
 club_info
------------------------------------------------------- */
.club_info .list {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: var(--grid-gap);
  margin-top: var(--content-margin);
}
.club_info .list article {
  width: calc(calc(100% - 80px) / 3);
  padding: 2em;
  background-color: var(--color-theme-white);
  border: 1px solid #ddd;
  border-radius: var(--border-radius);
}
.club_info article h3{
  margin: 0 !important;
  padding-bottom: 0 !important;
  border: none !important;
  text-align: center;
}
.club_info article .category {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin-top: 1em;
}
.club_info article .category li {
  padding: .3em .5em;
  color: var(--color-theme-white);
  font-size: 16px;
  width: 6em;
  text-align: center;
}
.club_info article .category .high {
  background-color: var(--color-theme-high);
}
.club_info article .category .junior {
  background-color: var(--color-theme-junior);
}
.club_info article figure {
  margin-top: 1em;
}
.club_info article p {
  margin-top: 1em;
}
.club_info #sec02 {
  padding: var(--section-padding) 0 !important;
}
.club_info #sec02 .tab-list {
  margin: 0 auto;
  align-items: center;
  justify-content: center;
}
.club_info #sec02 .tab-menu {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  max-width: 360px;
  min-height: calc(var(--grid-gap)*2);
}
.club_info #sec02 .content-group {
  margin-top: var(--content-margin);
}
.club_info #sec02 .content-box {
  background-color: transparent;
  max-width: 100%;
}
.club_info #sec02 .content-box + .content-box {
  margin: 0;
}
.club_info #sec02 .tab-menu.high {
  border-top-right-radius: var(--border-radius);
  border-bottom-right-radius: var(--border-radius);
}
.club_info #sec02 .tab-menu.high.current {
  background-color: var(--color-theme-high);
}
.club_info #sec02 .tab-menu.junior {
  border-top-left-radius: var(--border-radius);
  border-bottom-left-radius: var(--border-radius);
}
.club_info #sec02 .tab-menu.junior.current {
  background-color: var(--color-theme-junior);
}

.club_info #sec02 .list-item dl:first-of-type {
  border-top: 1px solid #ddd;
}
.club_info #sec02 .list-item dl {
  width: 100%;
  border-bottom: 1px solid #ddd;
  padding-top: 1em;
}

.club_info #sec02 .list-item dt {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .3em 1em;
  background-color: var(--color-theme-white);
  border: 1px solid #222;
  line-height: 1;
  width: fit-content;
  min-width: 8em;
}
.club_info #sec02 .list-item dd {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  padding: 1em 0;
}
.club_info #sec02 .list-item dd span {
  display: block;
  padding-left: 1em;
  position: relative;
}
.club_info #sec02 .list-item dd span::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}
.club_info #sec02 .list-item dd span:not(:last-child) {
  margin-right: 1em;
}

.equipment .flexbox {
  flex-wrap: wrap;
  gap: var(--grid-gap);
}
.equipment .big-size .module_wrap {
  width: calc(calc(100% - 40px) / 2);
}
.equipment .normal-size {
  margin-top: var(--content-margin);
}
.equipment .normal-size .module_wrap {
  width: calc(calc(100% - 80px) / 3);
}
.equipment .module_wrap {
  padding: 2em;
  background-color: var(--color-theme-white);
  border: 1px solid #ddd;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-direction: column;
}
.equipment .module_wrap .thumbnail {
  width: 100%;
  height: auto;
}
.equipment .module_wrap .sml_img_com {
  text-align: center;
}
.equipment .module_wrap .sml_img_com p {
  text-align: left;
}
#sec01.eq_wrap {
  padding: var(--section-padding ) 0 !important;
}

.equipment .module_wrap h3 {
  padding: 0;
  border: none;
}
.equipment .module_wrap p,
.equipment .module_wrap a {
  display: block;
  width: 100%;
}
.equipment .module_wrap a {
  text-decoration: none;
}
.equipment .module_wrap a button {
  transition: var(--transition);
}
.equipment .module_wrap a:hover button {
  opacity: .5;
}
.equipment button {
  background-color: var(--color-font-base);
  color: var(--color-theme-white);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .5em 1em;
  width: 100%;
  border-radius: var(--border-radius);
}
.equipment .button_bottom {
  margin-top: var(--content-margin);
}

.uniforms .swiper-area {
  max-width: 500px;
  margin: 0 auto;
}
.uniforms .slide-content figcaption {
  text-align: center;
  margin-top: 1em;
  font-size: 16px;
}
.uniforms .swiper-pagination {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 1.2rem 0.8rem;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 1.2rem;
  text-align: center;
}
.uniforms .swiper-pagination-bullet {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  cursor: pointer;
  -webkit-transition: var(--transition);
  transition: var(--transition);
  vertical-align: top;
  background-color: #ccc;
}
.uniforms .swiper-pagination-bullet-active {
  background-color: var(--color-theme-primary);
}
.uniforms .swiper-button-prev,
.uniforms .swiper-button-next {
  position: absolute;
  z-index: 1;
  top: 0;
  bottom: 0;
  margin: auto;
}
.uniforms .uniforms-description {
  max-width: 500px;
  margin: var(--content-margin) auto 0;
}
#sec01.uniforms_wrap {
  padding: var(--section-padding) 0 !important;
}


.annual_events .sche_year {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: var(--grid-gap);
}
.annual_events .month_box {
  width: calc(calc(100% - 80px) / 3);
  background-color: var(--color-theme-white);
  border: 1px solid #ddd;
  padding: 0;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
}
.annual_events .month_box .month {
  background-color: #f5f5f5;
  color: var(--color-theme-primary);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 18px;
  font-family: var(--font-family-serif);
  font-size: 28px;
  font-weight: 500;
  min-width: 110px;
  border-right: 1px solid #ddd;
}
.annual_events .month_box .sche {
  padding: 18px;
}
.annual_events .month_box .season {
  font-size: 14px;
  font-family: var(--font-family-sans);
  font-weight: 400;
  display: block;
  text-align: center;
  color: var(--color-font-base);
}
.annual_events .month_box .sche li {
  position: relative;
  padding-left: 1em;
}
.annual_events .month_box .sche li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
}
.annual_events .month_box .hi_sch {
  color: var(--color-theme-high);
}
.annual_events .month_box .jh_sch {
  color: var(--color-theme-junior);
}
.annual_events [class*=swiper]:focus {
  outline: none;
}
.annual_events .slide-media,
.annual_events .thumb-media {
  position: relative;
  overflow: hidden;
}
.annual_events .slide-media img,
.annual_events .thumb-media img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  max-width: 300px;
  height: 100%;
  -o-object-fit: cover;
      object-fit: cover;
}
.annual_events .swiper-area {
  margin-top: 0;
}
.annual_events .l-inner {
  padding-bottom: 0;
}
.annual_events .swiper-wrapper {
  height: 187px;
  -webkit-transition-timing-function: linear !important;
          transition-timing-function: linear !important;
}
.annual_events .swiper-slide {
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  height: 187px;
}
.annual_events .slide {
  width: 300px;
  height: 187px;
  -webkit-transition: var(--transition);
  transition: var(--transition);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}
.annual_events .slide-media {
  height: 187px;
}
.annual_events .slide-content {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 3.2rem 1.6rem 1.6rem;
  -webkit-transition: var(--transition);
  transition: var(--transition);
  opacity: 0;
  color: #fff;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), color-stop(50%, rgba(0, 0, 0, 0.3)));
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.3) 50%);
}
.annual_events .slide-title {
  font-size: 1.4rem;
  line-height: 1.4;
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
/*
.annual_events .slide:hover {
  width: calc(300px * 1.25);
  height: 187px;
}
*/
.annual_events .slide:hover .slide-content {
  opacity: 1;
}
.pics_sq.annual_events {
  padding: var(--section-padding) 0 !important;
}






.content-wrap .title-heading-lv2:not(:first-of-type) {
  margin-top: var(--content-margin);
}


@media print, screen and ( max-width : 1240px ) {
  .club_info .list article {
    width: calc(calc(100% - 40px) / 2);
  }
  .equipment .normal-size .module_wrap {
    width: calc(calc(100% - 40px) / 2);
  }
  .annual_events .month_box {
    width: calc(calc(100% - 40px) / 2);
  }
}

@media print, screen and ( max-width : 900px ) {
  .school_info #sec03 .enkaku_centar ul.timeline > li {
    gap: 0;
  }
  .school_info #sec03 .enkaku_centar ul.timeline > li .year,
  .school_info #sec03 .enkaku_centar ul.timeline > li .nengou {
    width: fit-content;
    margin-right: 1em;
  }
  .school_info #sec03 .enkaku_centar ul.timeline > li .year {
    min-width: auto;
  }
  .school_info #sec03 .enkaku_centar ul.timeline li ul.content {
    width: 100%;
    flex: auto;
  }
  .club_info .list article {
    width: 100%;
  }
  
  .equipment .big-size .module_wrap,
  .equipment .normal-size .module_wrap,
  .annual_events .month_box {
    width: 100%;
  }

  .school_info #sec03 .enkaku_centar ul.timeline > li {
    gap: 0;
  }
  .school_info #sec03 .enkaku_centar ul.timeline > li .year,
  .school_info #sec03 .enkaku_centar ul.timeline > li .nengou {
    width: fit-content;
    margin-right: 1em;
  }
  .school_info #sec03 .enkaku_centar ul.timeline > li .year {
    min-width: auto;
  }
  .school_info #sec03 .enkaku_centar ul.timeline li ul.content {
    width: 100%;
    flex: auto;
  }
  .school_info #sec03 .enkaku_centar ul.timeline {
    padding-left: 30px;
  }
  .school_info #sec03 .enkaku_centar ul.timeline li ul.content {
    margin-left: 1.75em;
  }
  .school_info #sec03 .enkaku_centar ul.timeline > li::before {
    left: -36px;
  }

}

@media print, screen and ( max-width : 600px ) {

  .principal .asign img {
    max-width: 200px;
  }
  .school_info .section-title .title-wrap {
    width: 100%;
  }
  .school_info #sec01 .type-defferent {
    font-size: 40px;
  }
  .school_info .section-title .title-wrap {
    font-size: 26px;
  }
  .school_info .section-title .title-wrap span {
    font-size: 26px;
    margin-right: 10px;
    vertical-align: baseline;
  }
  .school_info .section-title {
    height: 240px;
    background-position: top;
  }
  .school_info #sec02 .rule {
    flex-direction: column;
  }
}