@charset "UTF-8";

.hitotokinote-icon {
  pointer-events: none;
}
/* -------------------------------------
mv
------------------------------------- */
/* slick dotsnavi */
.common-slider__dots {
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  z-index: 3;
  white-space: nowrap;
}
.common-slider__dots li {
  display:inline-block;
  margin:0 3px;
}
.common-slider__dots button {
  background-color: transparent;
  text-indent: -9999px;
  position: relative;
  border: none;
}
.common-slider__dots button::before {
  content: "";
  display: block;
  width:10px;
  height:10px;
  outline: none;
  border: none;
  border-radius:50%;
  position:absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  background-color: #f1f1f1;
}
.common-slider__dots .slick-active button::before{
  background: #008EC7;
}
@media screen and (min-width:768px) {
  .common-slider__dots li {
    margin:0 7.5px;
  }
  .common-slider__dots {
    bottom: 22px;
  }
}

/* new-btn */
.new-link {
  display: block;
  position: absolute;
  bottom: 70px;
  right: 20px;
  border-radius: 50%;
  box-shadow: 0 2px 4px 0 rgb(0 0 0 / 50%)
}
.new-link img{
  width: 148px;
  height: 148px;
}
@media screen and (min-width:768px) {
  .new-link {
    bottom: 80px;
  }
}
@media screen and (min-width:1000px) {
  .new-link {
    right: 100px;
  }
  .new-link img{
    width: 200px;
    height: 200px;
  }
}

/* -------------------------------------
News
------------------------------------- */
#news{
  margin: 30px 0;
}
.news__txt{
  color: #008EC7;
  text-align: center;
}

/* -------------------------------------
Main
------------------------------------- */
/* concept */
#concept{
  position: relative;
}
#concept::after{
  content: "";
  display: block;
  width: 100%;
  height: 797px;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  background-image: url(/hitotoki/sp/hitotokinote/img/concept_img_sp.webp);
  background-size: cover;
  background-position-y: center;
  z-index: -1;
}
#concept .common-ttl{
  font-size: 3.0rem;
  -ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
  font-feature-settings: normal;
  margin: 0 auto;
  padding-top: 54px;
  width: 102px;
}
.concept__catch-area{
  display: flex;
  justify-content: center;
  margin: 0 auto;
  padding-left: 5.5%;
}
.concept__catch{
  font-size: 1.6rem;
  font-weight: bold;
  text-align: center;
}
.concept__catch:first-of-type{
  margin-right: 78px;
  position: relative;
}
.concept__catch:first-of-type::before,
.concept__catch:first-of-type::after{
  content: "";
  display: block;
  width: 60px;
  height: 1px;
  background: #505050;
  transform: rotate(45deg);
  transform-origin:0% 50%;
  position: absolute;
  top: 6px;
  right: -76px;
}
.concept__catch:first-of-type::after{
  transform: rotate(-45deg);
  transform-origin:100% 50%;
  right: -58px;
}
.concept__txt{
  text-align: center;
  margin-top: 317px;
  margin-bottom: 52px;
}
@media screen and (min-width:500px) {
  #concept::after{
    background-image: url(/hitotoki/sp/hitotokinote/img/concept_img_pc.webp);
    background-size: cover;
    background-position: center;
    z-index: -1;
  }
}
@media screen and (min-width:768px) {
  #concept::after{
    width: 100%;
    height: 1394px;
    background-repeat: no-repeat;
    background-size: 1920px;
    background-color: #ccdfea;
    overflow-X: hidden;
  }
  #concept .common-ttl{
    font-size: 4.4rem;
    padding-top: 140px;
    white-space: nowrap;
    width: 150px;
  }
  .concept__catch-area{
    padding-left: 2.5%;
  }
  .concept__catch{
    font-size: 3.0rem;
  }
  .concept__catch:first-of-type{
    margin-right: 150px;
  }
  .concept__catch:first-of-type::before,
  .concept__catch:first-of-type::after{
    width: 122px;
    right: -157px;
  }
  .concept__catch:first-of-type::after{
    right: -121px;
  }
  .concept__txt{
    font-size: 1.8rem;
    margin-top: 600px;
    margin-bottom: 90px;
  }
}

/* type */
.type {
  padding: 90px 40px 100px;
  background-color: #F5FAFD;
}

.type-list {
  margin-top: 60px;
}
.type-list__item {
  position: relative;
  padding-top: 15px;
  padding-bottom: calc(23% + 15px);
}
.type-list__item + .type-list__item {
  margin-top: 60px;
}
.type-new {
  width: 20%;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
.type-list__img {
  width: 51%;
  margin: 0 auto 15px;
  filter: drop-shadow(0px 3px 6px rgba(0,0,0,0.16));
}
.type-list__ttl {
  text-align: center;
  margin-bottom: 10px;
}
.type-list__open {
  position: relative;
  margin-top: 15px;
}
.type-list__open--before,
.type-list__open--after {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	-webkit-animation: patapata 3s linear infinite 0s forwards;
			animation: patapata 3s linear infinite 0s forwards;
}
.type-list__open--before {
	z-index: 2;
	opacity: 1;
}
.type-list__open--after {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	-webkit-animation-delay: -1.5s;
			animation-delay: -1.5s;
	opacity: 0;
}
@-webkit-keyframes patapata {
	0% {
		opacity: 1;
		z-index: 2;
	}
	50.5% {
		opacity: 1;
		z-index: 2;
	}
	51% {
		opacity: 0;
		z-index: 0;
	}
	100% {
		opacity: 0;
		z-index: 0;
	}
}
@keyframes patapata {
	0% {
		opacity: 1;
		z-index: 2;
	}
	50.5% {
		opacity: 1;
		z-index: 2;
	}
	51% {
		opacity: 0;
		z-index: 0;
	}
	100% {
		opacity: 0;
		z-index: 0;
	}
}
@media screen and (min-width:768px) {
  .type-txt {
    text-align: center;
  }
  .type-list {
    display: flex;
    justify-content: space-between;
  }
  .type-list__item {
    width: calc((100% - 100px) / 3);
  }
  .type-list__item + .type-list__item {
    margin-top: 0;
  }
  .type-list__img {
    width: 57%;
  }
  .type-list__open {
    position: absolute;
    width: 100%;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: 0;
  }
}

/* --point--*/
.point{
  padding: 90px 40px 30px;
}
.point-list{
  padding-top: 30px;
}
.point-list-item{
  padding-bottom: 70px;
}
.point-list-item:last-of-type {
  padding-bottom: 0;
}
.point-list-item__no{
  font-size: 2.0rem;
  font-weight: bold;
  text-align: center;
  color: #fff;
  position: relative;
  margin-bottom: 20px;
}
.point-list-item__no::after{
  content: "";
  display: block;
  width: 40px;
  height: 40px;
  background: #008EC7;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  z-index: -1;
}
.point-list-item__sttl {
  font-size: 1.5rem;
  font-weight: bold;
  text-align: center;
  line-height: 1.2;
  margin-bottom: 8px;
}
.point-list-item__ttl {
  font-size: 2.0rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 20px;
  position: relative;
  line-height: 1.5;
}
.point-list__img {
  width: 100vw;
  max-width: 100vw;
  margin: 0 calc(50% - 50vw);
}
.point-list__txt{
  margin-top: 20px;
}
.point-list__info{
  background: #F5F5F5;
  margin-top: 20px;
  padding-left: 15px;
  padding-right: 15px;
}
.point-list__info-ttl {
  font-size: 1.4rem;
  font-weight: 700;
}
.point-list__info-detail {
  width: 80%;
  font-size: 1.4rem;
}
.point-type {
  color: #008EC7;
  font-size: 1.4rem;
  line-height: 1.25;
  background-color: #fff;
  border-radius: 999px;
  border: 1px solid #008EC7;
  display: inline-block;
  width: 150px;
  text-align: center;
  padding: 2px 0;
  margin: 2px 0;
}
.point-list__info-detail.detail--type {
  font-size: 1.4rem;

}

.point-list__size {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  padding-top: 20px;
  padding-bottom: 20px;
  background-size: 10px 2px;
  background-image: linear-gradient(to right, #707070, #707070 2px, transparent 2px, transparent 10px);
  background-repeat: repeat-x;
}
.point-list__size:first-of-type,
.point-list__type:first-of-type {
  background-image: none;
}
.point-list__size-icon {
  width: auto;
  height: 46px;
}
.point-list__size-icon.-passport {
  height: 40px;
}
.point-list__size-icon.-comic {
  padding-left: 3px;
}
.point-list__type {
  padding-top: 20px;
  padding-bottom: 20px;
  background-size: 10px 2px;
  background-image: linear-gradient(to right, #707070, #707070 2px, transparent 2px, transparent 10px);
  background-repeat: repeat-x;
}

.point-summary {
  margin-top: 30px;
}
.point-summary__type + .point-summary__type {
  margin-top: 5px;
}
.point-summary__title {
  margin-bottom: 2px;
}
@media screen and (min-width:768px) {
  .point{
    padding: 120px 0 40px;
  }
  .point-inner{
    max-width: 1400px;
  }
  .point-list-item{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
  .point-list-item.-reverse{
    flex-direction: row-reverse;
  }
  .point-list-item__text-area{
    width: 35%;
    margin-top: 24px;
    margin-left: 60px;
  }
  .-reverse .point-list-item__text-area{
    margin-left: 0;
    margin-right: 60px;
  }
  .point-list-item__ttl::after{
    display: none;
  }
  .point-list-item__ttl,
  .point-list-item:nth-child(4) .point-list-item__ttl {
    margin-bottom: 0;
  }
  .point-list__img{
    width: 55.75%;
    max-width: 100%;
    height: 500px;
    margin: 0 0 0 5.75%;
    object-fit: cover;
  }
  .-reverse .point-list__img{
    margin-left: 0;
    margin-right: 5.75%;
    object-position: 100% 0;
  }
  .point-list-item:nth-child(3) .point-list__img,
  .point-list-item:nth-child(4) .point-list__img {
    height: 650px;
    min-height: 500px;
    object-fit: contain;
  }
  .point-type {
    padding: 3px 0 1px;
  }
}

/* --Lineup--*/
#lineup{
  padding: 100px 0;
}
.lineup-date {
  font-size: 1.4rem;
  text-align: center;
  position: relative;
  margin-top: 8px;
}
.lineup-new {
  width: 70px;
  margin: 0 auto;
}
.lineup-new img {
  width: 100%;
}
.lineup-sttl {
  font-size: 1.6rem;
  color: #008EC7;
  text-align: center;
  margin: 25px 0 40px;
}
.lineup-size {
  margin-bottom: 35px;
}
.lineup-size__ttl {
  font-size: 1.4rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 20px;
}
.lineup-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 auto;
}
.-passport .lineup-list {
  width: 64%;
}
.-comic .lineup-list {
  width: 78.6%;
}
.lineup-list__img {
  width: calc(87% / 2);
  margin-left: 6.5%;
  margin-bottom: 30px;
  filter: drop-shadow(0px 3px 6px rgba(0,0,0,0.16));
}
.lineup-list__img:nth-of-type(1),
.lineup-list__img:nth-of-type(2n+1) {
  margin-left: 0;
}
.lineup-list__img:nth-last-of-type(2) {
  margin-bottom: 0;
}
#lineup .link-btn {
  width: calc(100% - 80px);
  max-width: 300px;
  display: block;
}
@media screen and (min-width:768px) {
  #lineup{
    padding: 120px 0;
  }
  .lineup-date {
    font-size: 1.6rem;
  }
  .lineup-new {
    width: 90px;
  }
  .lineup-sttl {
    font-size: 2.0rem;
  }
  .lineup-size {
    margin-bottom: 60px;
  }
  .lineup-size__ttl {
    font-size: 1.6rem;
    margin-bottom: 20px;
  }
  .lineup-list {
    flex-wrap: nowrap;
  }
  .-passport .lineup-list {
    width: 87%;
  }
  .-comic .lineup-list {
    width: 100%;
  }
  .lineup-list__img {
    width: calc(80% / 5);
    margin-left: 5%;
    margin-bottom: 0;
  }
  .lineup-list__img:nth-of-type(2n+1) {
    margin-left: 5%;
  }
  .lineup-list__img:nth-of-type(1) {
    margin-left: 0;
  }
  .lineup-list__img:nth-last-of-type(2) {
    margin-bottom: 0;
  }
  #lineup .link-btn {
    width: calc(100% - 80px);
    max-width: 300px;
    display: block;
  }
}

/* --Howtouse--*/
#howto {
  padding-top: 100px;
  background: #F5FAF5;
}
.howto-bg.-green {
  background: #F5FAF5;
}
.howto-bg.-yellow{
  background: #F9F8F3;
}
.howto-bg.-blue{
  background: #F5FAFD;
}
.-passport.howto-list{
  padding-bottom: 40px;
}
.-comic.howto-list{
  padding: 40px 0;
}
.-square.howto-list{
  padding: 40px 0 60px;
}
.howto-list-item{
  padding: 40px 40px 30px;
}
.howto-list-item__no{
  font-size: 16px;
  color:#008EC7;
  text-align: center;
  margin-bottom: 14px;
}
.howto-list-item__tll{
  font-size: 2.0rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 20px;
}
.howto-img{
  height: 280px;
  margin: 0 auto 20px;
  display: block;
  object-fit: cover;
  object-position: left;
}
.-passport .howto-img,
.-comic .howto-img {
  width: 186px;
}
.-passport .howto-list-item:nth-of-type(1) .howto-img,
.-passport .howto-list-item:nth-of-type(2) .howto-img {
  width: 216px;
}
.-comic .howto-list-item:nth-of-type(1) .howto-img,
.-comic .howto-list-item:nth-of-type(2) .howto-img {
  width: 198px;
}
.-square .howto-img{
  width: 280px;
}
@media screen and (min-width:768px) {
  #howto {
    padding-top: 120px;
  }
  .howto-list{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  .-passport.howto-list{
    padding-bottom: 0;
  }
  .-comic.howto-list{
    padding: 100px 0 0;
  }
  .-square.howto-list{
    padding: 100px 0 40px;
  }
  .howto-list-item{
    width: 48%;
    padding: 0;
    margin-bottom: 100px;
  }
  .howto-list-item__no{
    margin-bottom: 12px;
  }
  .howto-list-item__tll{
    margin-bottom: 32px;
  }
  .howto-img{
    height: auto;
    margin: 0 auto 20px;
    display: block;
    object-fit: contain;
    object-position: left;
  }
  .-passport .howto-img,
  .-passport .howto-list-item:nth-of-type(1) .howto-img,
  .-passport .howto-list-item:nth-of-type(2) .howto-img,
  .-comic .howto-img,
  .-comic .howto-list-item:nth-of-type(1) .howto-img,
  .-comic .howto-list-item:nth-of-type(2) .howto-img {
    width: 60%;
  }
  .-square .howto-img{
    width: 100%;
  }
  #howto .link-btn{
    width: 47.75%;
  }
}
/*howtoモーダル*/
#howto .modal{
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100vw;
  z-index: 9999;
  padding: 70px 40px 50px;
  overflow: scroll;
  background: #F9F8F3;
}
#howto .-passport .modal{
  background: #F5FAF5;;
}
#howto .-comic .modal{
  background: #F9F8F3;
}
#howto .-square .modal{
  background: #F5FAFD;
}
#howto .modal-content__inner{
  width: 100%;
}
body.fixed {
  position: fixed;
  width: 100%;
  height: 100%;
  left: 0;
}
.close-btn{
  display: block;
  width: 55px;
  height: 55px;
  background: #fff;
  border-radius: 50%;
  border: none;
  box-shadow: 0 2px 4px 0 rgba(0,0,0,0.3);
  position: absolute;
  top: 20px;
  right: 100px;
}
.close-btn::before,
.close-btn::after{
  content: "";
  display: block;
  width: 70%;
  height: 2px;
  background: #008EC7;
  transform: rotate(45deg);
  transform-origin:0% 50%;
  position: absolute;
  top: 25%;
  left: 26%;
}
.close-btn::after{
  transform: rotate(-45deg);
  transform-origin:100% 50%;
  left: auto;
  right: 26%;
}
.close-txt{
  color: #008EC7;
  margin: 40px 0 200px;
  text-align: center;
  cursor: pointer;
}
.close-txt:hover{
  color: #505050;
  transition: all .3s ease;
}
.scroll-txt{
  font-size: 1.2rem;
  color: #909090;
  position: relative;
}
.scroll-txt::before,
.scroll-txt::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0px;
  height: 1px;
  background: #909090;
}
.scroll-txt:before{
  left: -30px;
  width: 90px;
  transform: translate(30px, 0px);
  -webkit-transform: translate(30px, 0px);
  -ms-transform: translate(30px, 0px);
}
.scroll-txt:after{
  left: 45px;
  width: 16px;
  transform-origin: right center;
  transform: translate(30px, 0px) rotate(25deg);
  -webkit-transform: translate(30px, 0px) rotate(25deg);
  -ms-transform: translate(30px, 0px) rotate(25deg);
}
#howto .modal-content__img{
  width: 90%;
  overflow-x: scroll;
}
.note-img{
  display: block;
  margin: 0 auto 20px;
  max-width: none;
}
.-passport .note-img{
  width: 430px;
}
.-comic .note-img{
  width: 430px;
}
.-square .note-img{
  width: 590px;
}
.modal-content__txt{
  margin-top: 30px;
}
.modal-content__inner .howto-list-item__no,
.modal-content__inner .howto-list-item__tll,
.modal-content__txt,
.close-txt{
  width: 78.6666%;
}
@media screen and (min-width:768px) {
  #howto .modal{
    padding: 100px 0;
  }
  #howto .modal-content__inner{
    max-width: 1200px;
    margin: 0 auto;
  }
  .close-btn{
    top: 40px;
    right: 50px;
  }
  .close-txt{
    margin: 30px 0 180px;
  }
  .scroll-txt{
    display: none;
  }
  #howto .modal-content__img{
    overflow-x: hidden;
    width: 100%;
  }
  .note-img{
    margin: 0 auto;
  }
  .-comic .note-img{
    width: 55.5%;
  }
  .-square .note-img{
    width: 82.5%;
  }
  .modal-content__txt{
    margin: 50px auto 0;
  }
  .modal-content__inner .howto-list-item__no,
  .modal-content__inner .howto-list-item__tll,
  .close-txt {
    width: 100%;
  }
  .modal-content__txt {
    width: 48%;
  }
}

/* --banner--*/
.banner {
  max-width: 300px;
  margin: 50px auto 0;
}
@media screen and (min-width:768px) {
  .banner {
    max-width: 700px;
    margin-top: 100px;
  }
  .banner a:hover {
    opacity: 0.7;
  }
}

/* --gallery--*/
#gallery{
  padding: 100px 40px;
}
.gallery-list{
  display: grid;
  gap: 15px;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}
.gallery-list-item.is-hidden {
  opacity: 0;
  height: 0;
  margin: 0;
  display:none;
}
.more-btn{
  margin-top: 40px;
}
.more-btn.is-btn-hidden{
  display:none;
}

@media screen and (min-width:768px) {
  #gallery{
    padding: 120px 65px 140px;
  }
  .gallery-list{
    gap: 48px;
    grid-template-columns: repeat(auto-fit, minmax(264px, 1fr));
  }
}
@media screen and (min-width:1200px) {
  #gallery{
    padding: 120px 0 140px;
  }
}