@charset "UTF-8";
/* Reset CSS */
@import "kiso.css";

/* ------------------------------------------------------------------
 Base settings
------------------------------------------------------------------ */
:root {
  --txt-color: #080808;
  --color-bk: #000;
  --color-gold: #c09b21;
  --color-wt: #fff;
}

html {
  scroll-padding-top: 50px;
  scroll-behavior: smooth;
}
body {
  background: linear-gradient(#edf4fb 0%, #d4eafa 100%);
  color: var(--txt-color);
  font-family: 'Noto Sans JP', sans-serif;
  letter-spacing: 0.05em;
}
img {
  max-width: 100%;
  height: auto;
}

main {
  margin: 0 auto;
  width: 90%;
  max-width: 1000px;
  color: #555;
  font-size: clamp(0.75rem, 0.682rem + 0.34vw, 0.938rem);
  line-height: 1.8;
}
section { padding-bottom: 4rem; }

.fullw {
  position: relative;
  margin: 0 calc(-50vw + 50%) 4rem;
  padding: 4rem 5.33333vw 5rem;
  width: 100vw;
  max-width: none;
}
.fullw > * {
 margin-left: auto;
 margin-right: auto;
 width: 100%;
 max-width: 1000px;
}


/* ------------------------------------------------------------------
 Commonos
------------------------------------------------------------------ */
:where(header, footer){
  & a { text-decoration: none; }
}
.w600 {
  width: 100%;
  max-width: 600px;
}

h2 { margin-bottom: clamp(1.5rem, 0.955rem + 2.73vw, 3rem); }
h2:not(.intro h2) {
  color: var(--color-bk);
  font-size: clamp(0.75rem, 0.682rem + 0.34vw, 0.938rem);
  font-weight: normal;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-align: center;
}
h2 span,
.sidemenu nav li span {
  display: block;
  font-family: "Libre Bodoni", serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0.1em;
}
h2 span { font-size: clamp(2.375rem, 1.693rem + 3.41vw, 4.25rem); }
.sidemenu nav li span { font-size: clamp(1.5rem, 1.023rem + 2.39vw, 2.813rem);}

p { margin: 0 0 1rem; }
.notes { font-size: clamp(0.688rem, 0.642rem + 0.23vw, 0.813rem); }

.brmb::before, .brpc::before {
 content: "\A" ;
 white-space: pre ;
}
.brpc::before { display: none; }

@media screen and (min-width: 768px) {
  html { scroll-padding-top: 60px; }
  .brmb::before { display: none; }
}

/* ------------------------------------------------------------------
 Header
------------------------------------------------------------------ */
header {
  margin: 0 auto;
  padding: 5px 5px 5px 15px;
  width: 100%;
  max-width: 1600px;
  height: 50px;
  line-height: 1;
}
header .header_inner {
  display: flex;
  justify-content: space-between;
  margin-left: auto;
  position: relative;
}
header .header_inner > figure {
  display: block;
  margin-top: 0.5rem;
  width: 120px;
}


@media screen and (min-width: 768px) {
  header { height: 100px; }
  header .header_inner > figure {
  width: 180px;
}
}


/* header menu -----------------------------------*/
.hdmenu {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 50;
}
.navi {
  cursor: pointer;
  height: 50px;
  background-color: var(--color-wt);
  border-radius: 50px;
  position: absolute;
  right: 5px;
  top: 5px;
  width: 50px;
  box-shadow: 3px 3px 5px 0px rgba(202, 222, 240, 0.5);
  z-index: 52;
}
.navi span {
  background-color: #555;
  height: 2px;
  left: 15px;
  position: absolute;
  transition: all 0.6s;
  width: 20px;
}
.navi_linetop { top: 20px; }
.navi_linebottom { top: 28px; }
.nav_open .navi { background-color: var(--color-bk); }
.nav_open .navi span { background-color: var(--color-wt); }
.nav_open .sidemenu { right: 0; }
.nav_open .navi_linetop {
  top: 26px;
  transform: rotate(45deg);
}
.nav_open .navi_linebottom {
  top: 26px;
  transform: rotate(-45deg);
}
.nav_open .overlay {
  opacity: 0.8;
  visibility: visible;
}
.overlay {
  background-color: #000;
  cursor: pointer;
  height: 100vh;
  left: 0;
  opacity: 0;
  position: fixed;
  top: 0;
  transition: all 0.6s;
  visibility: hidden;
  width: 100vw;
  z-index: 1;
}

.sidemenu {
  position: fixed;
  top: 0;
  right: -100%;
  padding-top: 50px;
  width: 100%;
  background-color: var(--color-wt);
  text-align: center;
  transition: all 0.6s;
  z-index: 51;
}
.sidemenu nav {
  margin: 0 auto;
  width: fit-content;
  font-size: clamp(0.938rem, 0.915rem + 0.11vw, 1rem);
  letter-spacing: 0.05em;
  line-height: 1.4;
}
.sidemenu ul {
  list-style: none;
  padding: 20px 40px 5rem;
}
.sidemenu li {
  margin: 20px 0 clamp(2.5rem, 2.318rem + 0.91vw, 3rem);
  font-size: clamp(0.75rem, 0.682rem + 0.34vw, 0.938rem);
  line-height: 1.6;
}
.sidemenu a {
  text-decoration: none;
  color: var(--txt-color);
  transition: color 0.3s;
}
.sidemenu a:hover { color: var(--color-gold); }


@media screen and (min-width: 768px) {
.navi {
  height: 90px;
  top:15px;
  right: 30px;
  width: 90px;
}
.navi span {
  left: 25px;
  width: 40px;
}
.navi_linetop { top: 35px; }
.navi_linebottom { top:55px; }
.nav_open .navi_linetop,
.nav_open .navi_linebottom { top: 46px; }

}



/*------------------------------------------------------
  Hero area
-------------------------------------------------------*/
.mv {
  position: relative;
  margin-bottom: 0;
  padding: 0;
  height: 600px;
}
.mv h1 {
  margin: 0;
  width: clamp(14.688rem, 8.892rem + 28.98vw, 30.625rem);
  max-width: 490px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  z-index: 3;
}

.mv .top_cp {
  display: block;
  width: clamp(8.75rem, 6.25rem + 12.5vw, 15.625rem);
  max-width: 250px;
  position: absolute;
  bottom: 0;
  right: 5vw;
  z-index: 5;
}

.mv.fullw > .topslider {
  margin: 0;
  padding: 0;
  max-width: initial;
}
.swiper {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  height: 100%;
}
.swiper-slide {
  text-align: center;
  font-size: 1background: linear-gradient(#edf4fb 0%, #d4eafa 100%);
  display: flex;
}
.swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
:where(.infinite-slider, .infinite-slider2) .swiper-slide {  width: auto; }

.infinite-slider {
  height: 600px;
  width: auto;
}
.infinite-slider .swiper-slide　{
  width: 570px;
  height: 600px;
}
.infinite-slider .swiper-wrapper {
  transition-timing-function: linear;
}

#particles {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  width: 100%;
  max-width: initial;
  height: 100%;
} 

@media screen and (min-width: 768px) {
.mv,
.infinite-slider { height: 800px; }
.infinite-slider .swiper-slide　{
  width: 760px;
  height: 800px;
}
}


/*------------------------------------------------------
  Intro
-------------------------------------------------------*/
.intro {
  padding-top: clamp(4.375rem, 1.875rem + 12.5vw, 11.25rem);
  background: url("../img/bg_intoro.png") no-repeat;
  background-position: 5vw 0;
  background-size: contain;
  line-height: 3em;
}
.intro h2 {
  margin-bottom: clamp(1rem, 0.636rem + 1.82vw, 2rem);
  font-size: clamp(1.375rem, 1.011rem + 1.82vw, 2.375rem);
}
.intro picture {
  display: block;
  margin-top: 3rem;
}


@media screen and (min-width: 768px) {
  .intro > div {
    display: flex;
    gap: 3rem;
  }
  .intro > div div { width: 50%; }
  .intro > div picture {
    padding-top: 20%;
    width: calc(50% - 3rem);
  }

}

/*------------------------------------------------------
  MESSAGE
-------------------------------------------------------*/
#message { padding-bottom: clamp(4rem, 1.818rem + 10.91vw, 10rem);}
#message .president-slider {
  width: 100%;
  height: auto;
}
#message .president-slider .swiper-wrapper {
  padding-bottom: 3rem;
}
#message .w600 { margin-top: 1rem; }

#message details {
  margin-bottom: clamp(1rem, 0.818rem + 0.91vw, 1.5rem);
  padding: 0.5rem 1rem;
  background-color: #fff;
  border-radius: 10px;
  max-width: 600px;
}
#message summary {
  display: block;
  font-size: clamp(0.813rem, 0.699rem + 0.57vw, 1.125rem);
  padding: clamp(0.5rem, 0.318rem + 0.91vw, 1rem) clamp(25px, 4vw, 40px) clamp(0.5rem, 0.318rem + 0.91vw, 1rem) clamp(45px, 8vw, 80px);
  font-weight: bold;
  position: relative;
  cursor: pointer;
  transition: 0.3s;
}
#message details p {
  margin: 0;
  padding: 0 clamp(25px, 4vw, 40px) 1rem clamp(45px, 8vw, 80px);
  color: #808080;
  font-size: clamp(0.75rem, 0.682rem + 0.34vw, 0.938rem);
  position: relative;
}


@media screen and (min-width: 768px) {
#message > div {
  display: flex;
  align-items: flex-start;
  gap: 5rem;
}
#message .w600 { margin-top: 0; }

}


/*------------------------------------------------------
  HISTORY
-------------------------------------------------------*/
#history {
  padding-top: clamp(5rem, 3.182rem + 9.09vw, 10rem);
  margin-bottom: clamp(6rem, 2.727rem + 16.36vw, 15rem);
  padding-bottom: 0;
  background-color: var(--color-wt);
  background-repeat: no-repeat;
  background-position: top center;
  background-size: contain;
  border-top-left-radius: 200px;
  border-top-right-radius: 200px;
}
#history h2 span { font-size: clamp(2.375rem, -0.307rem + 13.41vw, 9.75rem); }
#history h2 img {
  width: clamp(6rem, -0.909rem + 34.55vw, 25rem);
}
#history .anniversary {
  position: relative;
  margin: clamp(10rem, 6.364rem + 18.18vw, 20rem) calc(-50vw + 50%) 0;
  width: 100vw;
  max-width: none;
}
#history .anniversary .popup {
  width: clamp(15.625rem, 9.943rem + 28.41vw, 31.25rem);
  position: absolute;
  top: -55%;
  left: 50%;
  transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}
#history .anniversary .fullimg img {
  /*height: clamp(17.5rem, 6.136rem + 56.82vw, 48.75rem);*/
  width: 100%;
  object-fit: cover;
}

@media screen and (min-width: 750px) {
  #history .anniversary { margin-top: clamp(6rem, 4.545rem + 7.27vw, 10rem); }  
  #history .anniversary .popup {
    width: clamp(25rem, 14.773rem + 51.14vw, 53.125rem);
    top: -40%;
  }

}


/*------------------------------------------------------
  PHOTO MENU
-------------------------------------------------------*/
#photo-menu > div {
  margin: 0 auto ;
  width: 95%;
}
#photo-menu > div div + div { margin-top: 3rem; }
#photo-menu > div div h3 {
  margin: 0.8rem 0;
  padding: 0.6rem 0 0.6rem 3.2rem;
  background: url("../img/pmenu01.png") top left no-repeat;
  background-size: contain;
  font-size: clamp(1.125rem, 0.989rem + 0.68vw, 1.5rem);
  line-height: 1;
}
#photo-menu > div div:nth-of-type(2) h3 {
  background: url("../img/pmenu02.png") top left no-repeat;
  background-size: contain;
}
#photo-menu > div div:nth-of-type(3) h3 {
  background: url("../img/pmenu03.png") top left no-repeat;
  background-size: contain;
}
#photo-menu > div div strong {
  display: block;
  margin-bottom: 0.6rem;
  font-size: clamp(0.875rem, 0.807rem + 0.34vw, 1.063rem);
}


@media screen and (min-width: 768px) {
  #photo-menu > div {
    margin-bottom: 4rem;
    display: flex;
    gap: 2.5rem;
  }
  #photo-menu > div div {
  width: calc((95% - 5rem) / 3);
}
  #photo-menu > div div + div { margin-top: 0; }
  #photo-menu > div div h3 {
    margin: 1.2rem 0 1rem;
    padding: 0.7rem 0 0.7rem 3.5rem;
  }

}


/*------------------------------------------------------
  CAMPAIGN
-------------------------------------------------------*/
#campaign {
  padding-top: clamp(4rem, 1.818rem + 10.91vw, 10rem);
  padding-bottom: clamp(2rem, 0.545rem + 7.27vw, 6rem);
  background-color: var(--color-wt);
}
#campaign > div {
  padding: 2rem 1rem;
  background-color: #f4f1de;
  border-radius: 20px;
  text-align: center;
}
#campaign > div p { margin-bottom: 0; }
#campaign > div p:first-of-type {
  font-size: clamp(1.125rem, 0.852rem + 1.36vw, 1.875rem);
  font-weight: 600;
  text-decoration: underline;
  letter-spacing: 0.08em;
}
#campaign > div p:nth-last-of-type(2) {
  margin: clamp(1rem, 0.636rem + 1.82vw, 2rem) auto 1rem;
  padding: 1rem 2rem;
  background-color: #c09b21;
  border-radius: 8px;
  width: fit-content;
  color: var(--color-wt);
  font-size: clamp(1.25rem, 0.932rem + 1.59vw, 2.125rem);
  font-weight: 600;
  line-height: 1.5;
}

.btn {
  margin: 3rem auto;
  padding: 0;
  width: fit-content;
}
.btn a {
  display: block;
  padding: 1rem 2.5rem;
  background-color: var(--color-bk);
  border-radius: 100px;
  color: var(--color-wt);
  font-size: clamp(1.125rem, 0.852rem + 1.36vw, 1.875rem);
  font-weight: 600;
  letter-spacing: 0.1em;
  transition: all 0.5s;
}
.btn a:hover { background-color: var(--color-gold); }

@media screen and (min-width: 768px) {
  #campaign > div { padding-bottom: 3rem; }
  .btn { margin-top: 5rem; }
  .btn a { padding: 1.5rem 5rem; }

}


/* ------------------------------------------------------------------
 Footer
------------------------------------------------------------------ */
footer {
  margin: 0;
  padding: 0 0 1rem;
  width: 100%;
  text-align: center;
}
footer > p {
  margin: clamp(3rem, 1.545rem + 7.27vw, 7rem) auto 0;
  width: 90%;
  max-width: 1000px;
  font-size: clamp(0.688rem, 0.642rem + 0.23vw, 0.813rem);
  letter-spacing: 0.08em;
}

.infinite-slider2 {
  height: 100px;
  width: auto;
}
.infinite-slider2 .swiper-slide　{
  width: 917px;
  height: 100px;
}
.infinite-slider2 .swiper-wrapper {
  transition-timing-function: linear;
}

@media screen and (min-width: 768px) {
  .infinite-slider2 {
    margin-top: 3rem;
    height: 200px;
  }
  .infinite-slider2 .swiper-slide　{
    width: 1833px;
    height: 200px;
  }
  
}


