/* FV */

#first_view .fv_title {
   bottom: 32svh !important;
}

/* Campaign */

#top #campaign {
   margin: 120px 0;
   overflow: hidden;
}
#campaign .p_main_heading {
   text-align: center;
   padding-bottom: 0;
   margin-bottom: 80px;
   position: relative;
   z-index: 0;
}
#campaign .p_main_heading .p_bg_letter {
   width: auto;
   height: 100px;
   bottom: -80px;
   right: 0;
   left: 0;
   margin: auto;
}
.bl_campaign {
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.bl_campaign_thumb {
   width: 50%;
   flex-shrink: 0;
   overflow: hidden;
}
.bl_campaign_thumb_inner {
   padding-top: 100%;
   position: relative;
}
.bl_campaign_thumb_inner img {
   position: absolute;
   width: 100%;
   height: 100%;
   object-fit: cover;
   top: 0;
   opacity: 0;
   transition: 0.2s;
   transition-property: opacity;
}

.bl_campaign_list {
   padding-left: 40px;
}
.bl_campaign_link {
   padding: 24px 0;
   border-top: 1px solid #fff;
   color: #fff;
   position: relative;
}
.bl_campaign_link_icon {
   position: absolute;
   top: 0;
   bottom: 0;
   right: 0;
   margin: auto;
   width: 32px;
   height: 32px;
   border: 1px solid #fff;
   border-radius: 50%;
   display: flex;
   align-items: center;
   justify-content: center;
}
.bl_campaign_link_icon img {
   width: 4px;
}
.bl_campaign_link:hover {
   background-color: rgba(255, 255, 255, 0.24);
}
.bl_campaign_link:last-child {
   border-bottom: 1px solid #fff;
}
.bl_campaign_link_content {
   display: block;
   padding-right: 72px;
}
.bl_campaign_link_content span {
   font-size: 14px;
   opacity: 0.6;
   margin-bottom: 12px;
   font-weight: bold;
   letter-spacing: 0;
   display: block;
}
.bl_campaign_link_content p {
   font-size: 18px;
   font-weight: bold;
   line-height: 1.6;
}
.bl_campaign_link_thumb {
   display: none;
}

@media screen and (max-width: 560px) {
   #top #campaign {
      margin: 64px 0;
   }
   #campaign .p_main_heading {
      margin-bottom: 40px;
   }
   #campaign .p_main_heading .p_bg_letter {
      bottom: -64px;
   }

   .bl_campaign {
      display: block;
   }
   .bl_campaign_thumb {
      display: none;
   }
   .bl_campaign_list {
      padding-left: 0;
   }
   .bl_campaign_link {
      display: flex;
      align-items: center;
   }
   .bl_campaign_link_content {
      padding: 0 0 0 16px;
   }
   .bl_campaign_link_content span {
      font-size: 13px;
   }
   .bl_campaign_link_content p {
      font-size: 16px;
   }
   .bl_campaign_link_icon {
      display: none;
   }
   .bl_campaign_link_thumb {
      width: 100px;
      display: block;
      flex-shrink: 0;
   }
   .bl_campaign_link_thumb_inner {
      display: block;
      padding-top: 100%;
      position: relative;
   }
   .bl_campaign_link_thumb_inner img {
      position: absolute;
      width: 100%;
      height: 100%;
      object-fit: cover;
      top: 0;
   }
}

/* MVのCTA */
.bl_mvCampaignCTA {
   width: 100%;
   padding: 16px 40px;
   background-color: rgba(0, 43, 224, 0.56);
   position: absolute;
   bottom: 40px;
   color: #fff;
   transition: 0.6s;
   transition-property: opacity;
}
.bl_mvCampaignCTA:hover {
   opacity: 0.8;
}
.bl_mvCampaignCTA:after,
.bl_mvCampaignCTA:before {
   position: absolute;
   content: "";
   width: 12px;
   height: 12px;
   background-repeat: no-repeat;
   background-size: contain;
   background-position: center;
   z-index: 10;
}
.bl_mvCampaignCTA:before {
   background-image: url(images/border-right-bottom.svg);
   bottom: 0;
   right: 0;
}
.bl_mvCampaignCTA:after {
   background-image: url(images/border-left-top.svg);
   top: 0;
   left: 0;
}

.bl_mvCampaignCTA_info {
   display: flex;
   margin-bottom: 16px;
   letter-spacing: 0;
}

.bl_mvCampaignCTA_info_category {
   font-size: 13px;
   font-weight: bold;
}
.bl_mvCampaignCTA_info_date {
   font-size: 13px;
   margin-left: 12px;
   font-weight: bold;
}

.bl_mvCampaignCTA_title {
   font-size: 16px;
   text-decoration: underline;
   line-height: 1.4;
}

@media screen and (max-width: 560px) {
   .bl_mvCampaignCTA {
      padding: 16px;
      bottom: 80px;
   }
}

.single_events .flex_content_area .left_area, .single_ebook .flex_content_area .left_area {
   width: 100%;
   padding: 0;
}