@charset "utf-8";
/* CSS Document */

/* main_view
   ========================================================================== */
.main_view {
  margin: 0 0 0;
  position: relative;
  height: 100vh;
  min-height: 850px;
}

.main_view .fix {
  margin: auto;
  height: 100vh;
  min-height: 850px;
  position: relative;
  top: 0;
  left: 0;
  right: 0;
  z-index: 4;
}

.main_view .inner {
  padding: 0 0 0;
  box-sizing: border-box;
  height: 100%;
  width: 98%;
  max-width: 1180px;
  position: relative;
  z-index: 4;
}

.main_view .catch {
  position: absolute;
  top: 115px;
  left: 0;
  width: 35%;
  max-width: 497px;
}

.main_view .page_title {
  position: absolute;
  bottom: 165px;
  right: 35px;
  width: 25%;
  max-width: 258px;
}

.main_view .kv_banner {
  position: absolute;
  bottom: 165px;
  left: 0;
  width: 60%;
  max-width: 650px;
}

.main_view .kv_banner a {
  line-height: 0;
  display: inherit;
}

/* video
   ========================================================================== */
#bg_movie {
  position: fixed;
  width: auto;
  min-width: 100vw;
  min-height: 130vh;
  top: 445px;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
}

header .fix::before {
  content: '';
  background: rgba(0, 0, 0, 0.4);
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
}

/* message
   ========================================================================== */
.message {
  position: relative;
  z-index: 5;
}

.message .inner {
  padding: 105px 20px 120px;
}

.message h2 {
  font-size: 28px;
  font-weight: 500;
}

.message h2,
.message p {
  text-align: center;
  font-family: 'Noto Serif JP';
  color: #fff;
}

.message p {
  margin: 60px 0 300px;
  font-size: 20px;
  line-height: 40px;
  font-weight: 400;
}

/* page_title02
   ========================================================================== */
.page_title02 {
  background: #000;
}

.page_title02 .inner {
  height: 245px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.page_title02 .title {
  line-height: 0;
  max-width: 745px;
  width: 90%;
}

/* scene_wrap
   ========================================================================== */
.scene_wrap .inner {
  height: 550px;
  position: relative;
}

.scene_wrap .text_box {
  position: absolute;
}

.scene_wrap .text_box p {
  font-family: 'Noto Serif JP';
  color: #fff;
  font-size: 20px;
  line-height: 45px;
}

.scene_wrap .text_box p.f27 {
  font-size: 27px;
}

.scene_wrap .scene01 .text_box {
  top: 80px;
  right: 50px;
}

.scene_wrap .scene02 .text_box {
  top: 216px;
  left: 0;
}

.scene_wrap .scene03 .text_box {
  top: 328px;
  left: 0;
}

.scene_wrap .scene04 .text_box {
  top: 385px;
  right: 0;
}

.scene_wrap .scene05 .text_box {
  top: 70px;
  left: 0;
}

.scene_wrap .scene06 .text_box {
  top: 256px;
  left: 0;
}

/* special_movie
   ========================================================================== */
.special_movie {
  padding: 100px 0;
  background: #111;
}

.special_movie a {
  height: 550px;
  display: block;
  position: relative;
}

.special_movie .inner {
  height: 550px;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}

.special_movie .text {
  width: 30%;
  max-width: 305px;
  position: absolute;
  top: 90px;
  left: 0;
}

.special_movie .text_box {
  display: block;
  position: absolute;
  bottom: 60px;
  left: 0;
}

.special_movie .text_box .ttl {
  display: block;
  font-family: 'Noto Serif JP';
  color: #fff;
  font-size: 25px;
  letter-spacing: 0.1em;
  line-height: 45px;
}

.special_movie .text_box .sub {
  display: block;
  font-family: 'Noto Serif JP';
  color: #fff;
  font-size: 39px;
  letter-spacing: 0.1em;
  line-height: 45px;
}

.special_movie svg {
  width: 85px;
  color: rgba(255, 255, 255, 0.4);
}

.special_movie a:hover svg {
  animation: special_movie 2s infinite cubic-bezier(0.77, 0, 0.175, 1);
}

.special_movie a::after {
  content: '';
  width: 80px;
  height: 80px;
  border-radius: 100px;
  border: 2px solid rgba(255, 255, 255, 0.4);
  position: absolute;
  margin: auto;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  opacity: 0;
}

.special_movie a:hover::after {
  animation: special_movie_item 2s infinite ease;
}

@keyframes special_movie {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(0.9);
  }
  60% {
    transform: scale(1.1);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes special_movie_item {
  0% {
    opacity: 0;
  }
  45% {
    opacity: 0;
    transform: scale(1);
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: scale(1.5);
  }
}

/* limited
   ========================================================================== */
.limited {
  background: #000;
}

.limited .inner {
  height: 400px;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.limited .title {
  line-height: 0;
  max-width: 602px;
  width: 90%;
}

/* photo_book
   ========================================================================== */
.photo_book .main {
  line-height: 0;
  position: relative;
  text-align: center;
  min-height: 550px;
}

.photo_book .main .flex {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.photo_book .main h2 {
  margin: 0 0 50px;
  font-family: 'Noto Serif JP';
  color: #fff;
  font-weight: 400;
  font-size: 50px;
  letter-spacing: 0.45em;
  line-height: 45px;
}

.photo_book .main p {
  margin: 20px 0 0;
  font-family: 'Jost';
  color: #fff;
  font-weight: 300;
  font-size: 45px;
  letter-spacing: 0.45em;
  line-height: 45px;
}

.photo_book .book_content {
  padding: 70px 0 0;
}

.photo_book .book_content h3 {
  line-height: 0;
}

.photo_book .book_content .box {
  margin: 75px 50px 0;
  position: relative;
}

.photo_book .book_content .box .book {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.photo_book .book_content .box h4 {
  padding: 0 0 30px 360px;
  line-height: 0;
  position: relative;
}

.photo_book .book_content .box h4::after {
  content: '';
  background: #707070;
  width: 1000%;
  height: 1px;
  position: absolute;
  bottom: 0;
  left: 0;
}

.photo_book .book_content .box .book_index {
  padding: 25px 0 0 360px;
}

.photo_book .book_content .box .book_index p {
  font-size: 17px;
  line-height: 28px;
  color: #fff;
}

.photo_book .book_content .box .content_photo {
  padding: 70px 0 0;
}

.photo_book .book_content .box .content_photo .photo:nth-child(1) {
  position: relative;
  z-index: 1;
}

.photo_book .book_content .box .content_photo .photo:nth-child(2) {
  margin: -325px 0 0;
  text-align: right;
  position: absolute;
  left: 250px;
}

.photo_book .book_content .box .content_photo .photo img {
  max-width: none;
  width: auto;
}

/* benefit
   ========================================================================== */
.benefit .inner {
  padding-top: 85px;
}

.benefit h2 {
  text-align: center;
  line-height: 0;
}

.benefit .box {
  margin: 55px 50px 0;
}

.benefit .box ul {
  margin: 62px 0 0;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.benefit .box > ul:first-child {
  margin-top: 0;
}

.benefit .box ul li {
  line-height: 0;
}

.benefit .box ul li.b03 {
  margin: 0 57px 0 47px;
}

.benefit .box ul li.b06 {
  margin: 0 0 0 93px;
}

.benefit .price {
  margin: 92px 0 0;
}

.benefit .price ul li {
  margin: 20px 0 0;
  text-align: center;
  line-height: 0;
}

.benefit .price ul li:first-child {
  line-height: 0;
}

.benefit .delivery {
  margin: 70px 0 0;
  line-height: 0;
  text-align: center;
}

/* year_block
   ========================================================================== */
.year_block .inner {
  padding-top: 75px;
}

.year_block h2 {
  line-height: 0;
  text-align: center;
}

.year_block ul {
  margin: 60px 0 0;
}

.year_block ul li {
  margin: 50px 0 0;
  text-align: center;
  line-height: 0;
}

.year_block ul li:first-child {
  line-height: 0;
}

/* please
   ========================================================================== */
.please .inner {
  padding-top: 95px;
  padding-bottom: 85px;
}

.please h3 {
  font-family: 'Noto Serif JP';
  color: #fff;
  font-weight: 600;
  font-size: 25px;
  letter-spacing: 0.1em;
  line-height: 45px;
  text-align: center;
}

.please p {
  margin: 45px 50px 0;
  color: #fff;
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.1em;
  line-height: 20px;
}

/* cv
   ========================================================================== */
.cv {
  background: #111;
}

.cv .inner {
  padding: 96px 70px 86px;
}

.cv.middle {
  margin: 110px 0 0;
}

.cv.middle .inner {
  padding: 96px 70px 60px;
}

.cv .buy_block .box {
  margin: auto;
  width: 800px;
}

.cv .buy_block .box a {
  display: block;
  background: #bf1616;
  position: relative;
  height: 220px;
  transition: 1s;
}

.cv .buy_block .box a img {
  position: absolute;
  right: 0;
  bottom: 0;
}

.cv .buy_block .box a::after {
  content: '';
  background: url(/lp/ma/images/pc/buy_button.png) no-repeat center center;
  width: 800px;
  height: 302px;
  position: absolute;
  margin: auto;
  top: -82px;
  bottom: 0;
  left: 0;
  right: 0;
  opacity: 0;
}

.cv .buy_block .box a:hover {
  background: #1a2781;
}

.cv .buy_block .box a:hover::after {
  animation: buy_button 2s infinite ease;
}

@keyframes buy_button {
  0% {
    transform: scale(1);
    opacity: 0.5;
  }
  100% {
    transform: scale(1.1);
    opacity: 0;
  }
}

.cv .tel_block {
  margin: 80px 0 0;
}

.cv .tel_block a {
  display: block;
  line-height: 0;
}

.cv .tel_block a .text {
  margin: 25px 0 0;
  text-align: right;
  display: block;
  font-size: 18px;
  color: #fff;
}

/* to_home
   ========================================================================== */
.to_home .inner {
  padding-top: 92px;
  padding-bottom: 116px;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 348px;
}

.to_home .to_home_btn {
  line-height: 0;
  width: auto;
  background: #fff;
}

.to_home .to_home_btn a {
  line-height: 0;
  display: block;
  background: #1a2781;
}

/* last_message
   ========================================================================== */
.last_message .inner {
  height: 789px;
  position: relative;
}

.last_message h2 {
  font-family: 'Noto Serif JP';
  color: #fff;
  font-weight: 400;
  font-size: 40px;
  letter-spacing: 0.1em;
  line-height: 45px;
  position: absolute;
  top: 134px;
  left: 0;
}

.last_message .page_title {
  margin: auto;
  display: flex;
  height: 130px;
  justify-content: center;
  align-items: center;
  text-align: center;
  position: absolute;
  bottom: 100px;
  left: 0;
  right: 0;
  z-index: 1;
}

.last_message .inner::after {
  content: '';
  width: 1000%;
  height: 130px;
  background: rgba(0, 0, 0, 0.69);
  position: absolute;
  bottom: 100px;
  left: -500%;
}

.last_message .page_title img {
  width: 492px;
}

/* footer
   ========================================================================== */
footer {
  padding: 62px 0;
  text-align: center;
}

footer address {
  font-size: 18px;
  font-family: 'Jost';
  font-weight: 300;
  letter-spacing: 0.1em;
  color: #fff;
  text-align: center;
}

/* TOPへ戻るボタン
   ========================================================================== */
#page-top {
  position: fixed;
  width: 55px;
  bottom: 40px;
  right: 40px;
  z-index: 100;
  line-height: 0;
}

#page-top a {
  display: block;
  transition: ease-in 0.3s;
  line-height: 0;
}

#page-top a:hover {
  opacity: 0.8;
}

@media screen and (min-width: 1025px) {
  /* attachment
	   ========================================================================== */
  .attachment {
    background-attachment: fixed;
  }

  /* photo_book
       ========================================================================== */
  .photo_book .main {
    height: 40vw;
  }

  .photo_book .book_content .box .content_photo {
    padding: 48px 0 0;
  }
}

/* notice */

.notice {
  width: 1000px;
  margin: 0 auto;
  padding: 0;
  background: #fff;
  position: relative;
  z-index: 10;
}

.notice .inbox {
  padding: 5px;
  position: relative;
  border: 3px solid #13145d;
}

.notice .inbox .box {
  padding: 25px 25px 10px;
  position: relative;
  border: 1px solid #13145d;
  text-align: center;
}

.notice .ttl {
  font-size: 20px;
  font-weight: bold;
  color: #f70501;
}

.notice p {
  margin: 20px;
  line-height: 180%;
}
