@charset "utf-8";

/* ====================================================================

  MGEO LP SP Style

==================================================================== */

/*
  Main Visual
-------------------------------------------------------------------- */
.main-visual { margin: 0; }
.main-visual figure {
  height: auto;
  min-height: initial;
  padding: 0;
}
.main-visual figure img {
  height: calc(767 / 750 * 100vw);
  min-height: initial;
  object-position: 60% 100%;
}
.page-heading li:last-of-type { padding: calc(200 / 750 * 100%) 0 0; }
.page-heading h1 { font-size: calc(60 / 750 * 100vw); }
.page-heading h1 small {
  margin: calc(40 / 750 * 100%) 0 0;
}
.page-heading h2 {
  width: calc(327 / 750 * 100vw);
  height: calc(327 / 750 * 100vw);
}
.page-heading h2 img {
  width: 100%;
  height: auto;
}

/*
  Section
-------------------------------------------------------------------- */

/* Heading
---------------------------------- */
.sec-heading span {
  font-size: calc(40 / 750 * 100vw);
  line-height: calc(54 / 40);
}
.sec-heading i {
  width: calc(150 / 750 * 100vw);
  margin: 0 auto 5px;
  display: block;
}
.sec-heading i::after {
  font-size: calc(25 / 750 * 100vw);
}

/* Contents
---------------------------------- */
.sec-contents {
  flex-direction: column-reverse;
  margin: 0;
}
.sec-contents > div {
  width: 100%;
  padding: calc(40 / 750 * 100%) calc(40 / 750 * 100%) 0;
}
.sec-contents > figure { width: 100%; }
.sec-contents dl dt {
  font-size: calc(30 / 750 * 100vw);
  line-height: calc(48 / 30);
  padding: 0;
  margin: .5em 0;
}
.sec-contents dl dd {
  font-size: calc(24 / 750 * 100vw);
  line-height: calc(40 / 24);
  padding: 0;
}

/* 詳しく見る
---------------------------------- */
.show-detail {
  font-size: calc(30 / 750 * 100vw);
  line-height: initial;
  margin: calc(50 / 750 * 100%) 0 0;
  padding: 1em 0;
}

/* Section01
---------------------------------- */
.sec01 { padding: calc(60 / 750 * 100%) 0; }

/* Modal Contents
---------------------------------- */
.modal_content .js-modal-close {
  top: 10px;
  right: 10px;
  transform: rotate(45deg) scale(2.0);
}
.modal_content {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 90%; /* このままでOK */
    max-height: 90vh;
    overflow-y: auto;
    overflow-x: clip;
    padding: 0;
}
/* Section02
---------------------------------- */
.sec02 {
  display: flex;
  flex-direction: column-reverse;
}
.sec02 > .contents-area {
  display: block;
  background-color: #666666;
  padding: calc(40 / 750 * 100%);
}
.sec02 h3 {
  font-size: calc(48 / 750 * 100vw);
  text-align: left;
  margin: 0 0 calc(60 / 750 * 100%);
}
.sec02 h4 {
  font-size: calc(30 / 750 * 100vw);
  text-align: left;
  width: auto;
  background: none;
  padding: 0 0 0 calc(35 / 750 * 100%);
  margin: 0;
}
.movie-unit {
  flex-direction: column;
  gap: 0;
  padding: 0 calc(35 / 750 * 100%);
}
.movie-item {
  display: flex;
  align-items: center;
  margin: calc(25 / 750 * 100%) auto 0;
}
.movie-item a {
  width: calc(299 / 670 * 100%);
  height: auto;
}
.movie-item a img {
  width: 100%;
  height: auto;
  flex-shrink: 0;
}
.movie-item p {
  font-size: calc(24 / 750 * 100vw);
  background: none;
  padding: 0 0 0 calc(25 / 750 * 100%);
}

/* Section03
---------------------------------- */
.sec03 { padding: calc(95 / 750 * 100%) 0 calc(100 / 750 * 100%); }

/* Section04
---------------------------------- */
.sec04 { padding: 0 0 calc(170 / 750 * 100%); }

/* Section05
---------------------------------- */
.sec05 { padding: 0 0 ; }
.sec05 > h3 {
  font-size: calc(40 / 750 * 100vw);
  font-weight: 400;
  margin: 0 0 calc(30 / 750 * 100%);
}
.sec05 > p {
  font-size: calc(24 / 750 * 100vw);
  line-height: calc(40 / 24);
  text-align: left;
  padding: 0 calc(40 / 750 * 100%);
  margin: 0 0 calc(45 / 750 * 100%);
}
.sec05 > div figure figcaption {
  font-size: calc(22 / 750 * 100vw);
  line-height: calc(30 / 22);
  padding: 0 calc(40 / (750 / 2) * 100%);
  text-align: left;
}

/* Section06
---------------------------------- */
.sec06 { padding: calc(100 / 750 * 100%) 0; }
.sec06 .sec-heading { margin: 0; }
.sec06 .sec-heading span {
  font-size: calc(34 / 750 * 100vw);
  display: inline-block;
  vertical-align: middle;
  margin: 0;
}
.sec06 .sec-heading span small { font-size: calc(22 / 34 * 1em); }
.sec06 .sec-heading i {
  width: calc(130 / 750 * 100vw);
  display: inline-block;
  vertical-align: middle;
  margin: 0 5px 0 0;
}
.sec06 .sec-heading i::after { font-size: calc(22 / 750 * 100vw); }
.movie-info-wrap { flex-direction: column; }
.movie-info { width: 100%; }
.movie-info:first-of-type { margin: 0 0 calc(100 / 750 * 100%); }
.movie-info a {
  padding: 0 calc(15 / 750 * 100%);
}
.movie-info a img { width: 100%; }
.movie-info p {
  font-size: calc(24 / 750 * 100vw);
  line-height: calc(36 / 24);
  padding: 10px calc(20 / 750 * 100%) 0;
}

/* 関連カタログプレセント
---------------------------------- */
.present-unit { padding: calc(120 / 750 * 100%) 0; }
.present-unit h3 {
  font-size: calc(28 / 750 * 100vw);
  margin: 0 auto calc(75 / 750 * 100%);
}
.present-items {
  display: block;
  margin: 0;
}
.present { margin: 0 0 calc(90 / 750 * 100%); }
.present-summary { padding: 0 calc(80 / 750 * 100%); }

/* CheckBox */
.present-summary label { margin: 0 0 calc(20 / 750 * 100%); }
.present-summary label span {
  font-size: calc(28 / 750 * 100vw);
  line-height: calc(42 / 28);
}
.present-summary label span small { font-size: calc(22 / 28 * 1em); }
.present-summary p {
  font-size: calc(24 / 750 * 100vw);
  line-height: calc(33 / 24);
  text-align: left;
}

@media screen and (max-width:414px) {
  .present-summary label { padding: 0 0 0 25px; }
  .present-summary label span::before,
  .present-summary label input[type="checkbox"]:checked + span::after {
    transform: scale(0.9);
    transform-origin: 0 0;
  }
}
@media screen and (max-width:375px) {
  .present-summary label span::before,
  .present-summary label input[type="checkbox"]:checked + span::after {
    transform: scale(0.85);
  }
}

/* Tag */
.tag { margin: calc(25 / 750 * 100%) 0 0; }
.tag i {
  font-size: calc(20 / 750 * 100vw);
  padding: 4px 6px;
}

/* 応募ボタン */
.present-app-btn { margin: 0; }
.present-app-btn img {
  width: 100%;
  height: auto;
}

/* Fixed Button
---------------------------------- */
.fixed-btn {
  display: none;
  right: 0;
  top: initial;
  bottom: 0;
}
.fixed-btn a img {
  width: 100%;
  height: auto;
}