@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=M+PLUS+Rounded+1c:400,500,700,800,900&display=swap&subset=japanese");
/* Reset
------------------------------------------------------------*/
html, body, main, div, span, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, small, form, fieldset, p, blockquote, th, td, header, footer, nav, aside, article, section, caption, summary, audio, video {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body {
  min-width: 320px;
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
}
h1, h2, h3, h4, h5, h6, small, table, input, textarea, select, option, button {
  font-size: 100%;
}
ul, ol {
  list-style-type: none;
}
a {
  outline: none;
  cursor: pointer;
  text-decoration: none;
}
img, fieldset {
  border: 0;
}
img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}
/* Contents
------------------------------------------------------------*/
html {
  overflow-y: scroll;
}
body {
  width: 100%;
  font-size: 100%;
  font-size: 16px;
  color: #000000;
  background: #FFFFFF;
  line-height: 1.5;
  font-weight: 400;
  margin: 0;
  padding: 0;
}
@media screen and (max-width: 767px) {
  .pc_show {
    display: none;
  }
}
@media print, screen and (min-width: 768px) {
  .sp_show {
    display: none;
  }
}
.contents_inner {
  max-width: 1000px;
  margin: 0 auto;
}
.contents_ttl {
  text-align: center;
  margin: 0;
}
/*mainvisual*/
.mainvisual {
  position: relative;
  width: 100%;
  height: 774px;
  overflow: hidden;
  background: url('../images/mainvisual_bg.jpg') center center / cover no-repeat;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media print, screen and (min-width: 768px) {
  .mainvisual_title.pc_show {
    width: 100%;
    max-width: 1080px;
    height: auto;
    display: block;
  }
}
@media screen and (max-width: 1080px) {
  .mainvisual {
    height: auto;
    aspect-ratio: 1080 / 774;
  }
  .mainvisual_title.pc_show {
    width: 98%;
  }
}
@media screen and (max-width: 767px) {
  .mainvisual {
    position: static;
    width: 100%;
    background: none;
    aspect-ratio: auto;
  }
  .mainvisual_title {
    width: 100%;
  }
}
/*plan*/
.plan_section {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: url('../images/plan_bg.jpg') top / cover no-repeat;
  padding: 0 40px 70px;
}
.plan_section_ttl .pc_show {
  width: 700px;
  height: auto;
  margin-bottom: 0;
}
@media screen and (min-width: 768px) {
  .plan_group {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 50px 28px;
  }
  .plan_box {
    display: grid;
    grid-template-rows: subgrid;
    grid-row: span 2;
    gap: 0;
  }
  .box_intro {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
  }
  .contents_inner {
    height: 100%;
  }
}
.box_ttl {
  text-align: center;
  font-family: "M PLUS Rounded 1c", sans-serif;
  color: #FFF;
  font-size: 23px;
  border-radius: 15px 15px 0 0;
  padding: 25px 0 18px;
}
.plan_box .box_ttl {
  background: #ff569f;
}
.pack_box .box_ttl {
  background: #a022aa;
}
.box_inner {
  background: #FFFFFF;
  border-radius: 0 0 15px 15px;
  padding: 30px 40px 36px;
}
.box_images {
  display: flex;
  gap: 14px;
  margin-top: 25px;
}
.plan_image {
  width: calc((100% - 14px) / 2);
  height: auto;
}
.box_intro {
  text-align: center;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.61;
  color: #ff569f;
  min-height: 9em;
}
.table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #cccccc;
  margin-top: 35px;
}
.table tr {
  border-bottom: 1px solid #cccccc;
}
.table_ttl, .table_txt {
  color: #000000;
  font-size: 14px;
  line-height: 1.285;
  vertical-align: top;
  padding-top: 25px;
  padding-bottom: 23px;
}
.table_ttl {
  width: 6em;
  text-align: center;
  font-weight: bold;
}
.table_txt {
  text-align: justify;
  padding-right: 20px;
  padding-left: 20px;
}
.box_note {
  position: relative;
  color: #000000;
  font-size: 14px;
  line-height: 1.285;
  text-indent: -1em;
  margin-top: 35px;
  padding-left: 1em;
}
.box_note + .box_note {
  margin-top: 0;
}
.box_note::before {
  content: "※";
}
.pack_box {
  margin-top: 50px;
}
.pack_box .box_inner {
  display: flex;
  justify-content: space-between;
  padding: 30px 4% 36px;
}
.pack_box .pack_overview {
  width: 406px;
}
.pack_box .pack_outline {
  width: calc(90.7% - 406px);
}
.pack_box .box_intro {
  min-height: auto;
  color: #a022aa;
  font-size: 17px;
}
.pack_box .box_images {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.pack_group .box_images div {
  width: calc((100% - 14px) / 2);
}
.pack_box .table {
  margin-top: 0;
}
@media screen and (max-width: 959px) {
  .pack_box .pack_overview {
    width: 40.6%;
  }
  .pack_box .pack_outline {
    width: 47.4%;
  }
}
@media screen and (max-width: 767px) {
  .plan_section {
    background: url('../images/plan_bg_sp.png') top / cover no-repeat;
    padding: 0 0 calc(70 / 750 * 100vw);
  }
  .plan_section_ttl .sp_show {
    width: 100%;
    height: auto;
  }
  .box_ttl {
    font-size: calc(30 / 750 * 100vw);
    padding: calc(45 / 750 * 100vw) 0 calc(40 / 750 * 100vw);
  }
  .plan_group {
    flex-direction: column;
    padding: 0 calc(25 / 750 * 100vw);
    gap: 0;
  }
  .plan_box {
    width: 100%;
    margin-top: 0;
  }
  .plan_box + .plan_box {
    margin-top: calc(60 / 750 * 100vw);
  }
  .box_inner {
    padding: calc(50 / 750 * 100vw) calc(30 / 750 * 100vw);
  }
  .box_intro {
    text-align: center;
    font-size: calc(30 / 750 * 100vw);
    line-height: 1.56;
    min-height: auto;
  }
  .box_images {
    gap: calc(20 / 750 * 100vw);
    margin-top: calc(50 / 750 * 100vw);
  }
  .table {
    width: calc(640 / 750 * 100vw);
    margin-top: calc(60 / 750 * 100vw);
  }
  .table_ttl, .table_txt {
    font-size: calc(25 / 750 * 100vw);
    line-height: 1.44;
    padding-top: calc(19 / 750 * 100vw);
    padding-right: calc(22 / 750 * 100vw);
    padding-bottom: calc(22 / 750 * 100vw);
    padding-left: calc(22 / 750 * 100vw);
  }
  .table_ttl {
    width: calc(200 / 750 * 100vw);
  }
  .box_note {
    font-size: calc(22 / 750 * 100vw);
    line-height: 1.5625;
    margin-top: calc(48 / 750 * 100vw);
  }
  .pack_group {
    padding: 0 calc(25 / 750 * 100vw);
  }
  .pack_box {
    margin-top: calc(60 / 750 * 100vw);
  }
  .pack_box .box_inner {
    width: 100%;
    flex-direction: column;
    padding: calc(50 / 750 * 100vw) calc(30 / 750 * 100vw);
  }
  .pack_box .pack_overview {
    width: 100%;
  }
  .pack_box .box_intro {
    font-size: calc(30 / 750 * 100vw);
    line-height: 1.56;
  }
  .pack_box .pack_outline {
    width: 100%;
  }
  .pack_box .table {
    margin-top: calc(60 / 750 * 100vw);
  }
}
/*contact*/
.contact_section {
  width: 100%;
  height: 100%;
  overflow: hidden;
  text-align: center;
  background: url('../images/contact_bg.jpg') top / cover no-repeat;
  padding: 65px 40px 70px;
}
.contact_section_ttl .pc_show {
  max-width: 766px;
  height: auto;
}
.contact_section .contents_inner {
  max-width: 1000px;
  background-color: #FFFFFF;
  border-radius: 15px;
  margin: 0 auto;
  padding: 60px;
}
.contact_section .contact_wrp {
  margin-top: 65px;
}
.contact_section .contact_desk {
  margin-top: 40px;
}
.contact_txt {
  text-align: center;
  font-size: 22px;
  line-height: 1.54;
  color: #000000;
  margin-bottom: 48px;
}
.contact_btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 590px;
  height: 90px;
  margin: 0 auto;
  background-color: #ff569f;
  border-radius: 45px;
  color: #ffffff;
  font-size: 20px;
  font-weight: bold;
  font-family: "Hiragino Sans", "Meiryo", sans-serif;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.contact_btn:hover {
  opacity: 0.85;
}
.contact_btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 30px;
  width: 12px;
  height: 12px;
  border-right: 4px solid #ffffff;
  border-bottom: 4px solid #ffffff;
  transform: translateY(-50%) rotate(-45deg);
  transition: right 0.3s ease;
}
.contact_btn:hover::after {
  right: 25px;
}
.contact_btn_txt {
  display: block;
  width: 100%;
  font-weight: bold;
  text-align: center;
}
.contact_btn.contact_desk_btn {
  background-color: #0099fa;
}
@media screen and (max-width: 767px) {
  .contact_section {
    background: url('../images/contact_bg_sp.jpg') top / cover no-repeat;
    padding: calc(65 / 750 * 100vw) calc(25 / 750 * 100vw) calc(70 / 750 * 100vw);
  }
  .contact_section_ttl .sp_show {
    width: calc(534 / 750 * 100vw);
    height: auto;
  }
  .contact_section .contact_wrp {
    margin-top: calc(50 / 750 * 100vw);
  }
  .contact_section .contact_desk {
    margin-top: calc(50 / 750 * 100vw);
  }
  .contact_section .contents_inner {
    border-radius: none;
    padding: calc(64 / 750 * 100vw) calc(50 / 750 * 100vw) calc(70 / 750 * 100vw);
  }
  .contact_txt {
    font-size: calc(32 / 750 * 100vw);
    line-height: 1.56;
    margin-bottom: calc(42 / 750 * 100vw);
  }
  .contact_btn {
    width: calc(600 / 750 * 100vw);
    height: calc(120 / 750 * 100vw);
    border-radius: calc(60 / 750 * 100vw);
    font-size: calc(26 / 750 * 100vw);
    line-height: 1.46;
  }
  .contact_btn::after {
    right: calc(30 / 750 * 100vw);
    width: calc(12 / 750 * 100vw);
    height: calc(12 / 750 * 100vw);
    border-right-width: calc(4 / 750 * 100vw);
    border-bottom-width: calc(4 / 750 * 100vw);
  }
  .contact_btn:hover::after {
    right: calc(25 / 750 * 100vw);
  }
}
/*info*/
.info_section {
  width: 100%;
  height: auto;
  overflow: hidden;
  text-align: center;
  background: url('../images/info_bg.jpg') top / cover no-repeat;
  padding: 30px 40px 70px;
}
.info_section_ttl .pc_show {
  width: 720px;
  height: auto;
}
.movie .info_ttl {
  margin-top: -30px;
}
.youtube_box_wrp {
  border: 4px solid #ff569f;
  border-radius: 15px;
  background: #FFFFFF;
  background-size: 100%;
  max-width: 600px;
  margin: 0 auto;
  padding: 15px 0 10px;
}
.youtube_box_wrp .youtube_box .youtube_box_inner {
  position: relative;
  z-index: 2;
  padding: 0;
}
.info_ttl {
  margin: 0;
}
.info_ttl .pc_show {
  width: 290px;
  height: auto;
}
.banner_link {
  display: block;
  transition: opacity 0.3s ease;
}
.banner_link:hover {
  opacity: 0.7;
}
.media_sns {
  margin-top: 42px;
}
.sns_list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 25px;
  list-style: none;
  margin-top: 40px;
  padding: 0;
}
.sns_item a {
  display: block;
  transition: opacity 0.3s ease;
}
.sns_item a:hover {
  opacity: 0.7;
}
.sns_item img {
  width: 76px;
  height: 76px;
  display: block;
}
@media screen and (max-width: 767px) {
  .info_section {
    background: url('../images/info_bg_sp.jpg') top / cover no-repeat;
    padding: 0 0 calc(70 / 750 * 100vw);
  }
  .info_section .contents_inner {
    padding: 0 calc(50 / 750 * 100vw) calc(70 / 750 * 100vw);
  }
  .info_section_ttl .sp_show {
    width: calc(720 / 750 * 100vw);
    height: auto;
    margin-top: calc(20 / 750 * 100vw);
  }
  .info_ttl .sp_show {
    width: calc(360 / 750 * 100vw);
    height: auto;
  }
  .youtube_box_wrp {
    padding: 0;
  }
  .youtube_box_wrp .youtube_box {
    background-size: 100% 100%;
    padding: 10px;
  }
  .youtube_box_wrp .youtube_box .youtube_box_inner {
    position: relative;
    z-index: 2;
    padding-top: 56.25%;
  }
  .youtube_box_wrp .youtube_box iframe {
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    position: absolute;
  }
  .media_sns {
    margin-top: calc(40 / 750 * 100vw);
  }
  .sns_list {
    gap: calc(25 / 750 * 100vw);
    margin-top: calc(40 / 750 * 100vw);
  }
  .sns_item img {
    width: calc(76 / 750 * 100vw);
    height: calc(76 / 750 * 100vw);
  }
}
/*footer*/
.footer {
  background-color: #FFFFFF;
}
.footer_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1080px;
  margin: 0 auto;
  padding: 40px;
}
.footer_copyrights small {
  color: #231815;
  font-size: 12px;
  line-height: 1.6;
  display: block;
  margin: 0;
}
.footer_copyrights small + small {
  margin-top: 4px;
}
.footer_links {
  display: flex;
  gap: 20px;
}
.footer_link {
  color: #231815;
  font-size: 11px;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s ease;
}
.footer_link:hover {
  border-bottom-color: #231815;
}
@media screen and (max-width: 767px) {
  .footer_inner {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    padding: calc(40 / 750 * 100vw) calc(25 / 750 * 100vw);
    gap: calc(30 / 750 * 100vw);
  }
  .footer_copyrights {
    text-align: left; /* ★追加 */
  }
  .footer_copyrights small + small {
    margin-top: calc(4 / 750 * 100vw);
  }
  .footer_links {
    flex-direction: column;
    align-items: flex-end;
    gap: calc(16 / 750 * 100vw);
  }
}