/* screens smaller than 640---------------------------------------------------------- */
@media only screen and (max-width:640px) {

/*layout*/
/*------------------------------------------------------------------------------*/
#top-head {
	position: relative;
}
header h1 a {
	background-image: url("../image/common/logo02.png");
}
.toptitle03_01 {
	font-size: 26px;
	margin-bottom: 20px;
}
.toptitle03_02 {
	font-size: 40px;
}

/*btn/more/arr*/
/*------------------------------------------------------------------------------*/
.btn01 a {
	width: 100%;
}

/*animation*/
/*------------------------------------------------------------------------------*/
.animation-fadeIn {
  animation-duration: 0;
  opacity: 1;
}

.animation-fadeIn.is-animated {
  animation-name: none;
}
.animation-fadeIn.is-animated.delay02 {
	animation-delay: 0;
}
.animation-fadeIn.is-animated.delay04 {
	animation-delay: 0;
}
.animation-fadeIn.is-animated.delay06 {
	animation-delay: 0;
}

/*mainimg*/
/*------------------------------------------------------------------------------*/
#mainimage .main_img {
	height: 58.04vw;
}
.mainimage_in {
	height: 58.04vw;
	width: 100%;
}
#main_text {
	margin-top: 0;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}
#main_text h2 {
	width: 54.02vw;
	height: 33.66vw;
	background-size: cover;
}

/*top_bnr*/
/*------------------------------------------------------------------------------*/
#top_bnr li {
	width: 32%;
	float: left;
	margin: 0 2% 20px 0;
}
#top_bnr li:nth-child(3n) {
	margin: 0 0 20px;
}

/*tab_area*/
/*------------------------------------------------------------------------------*/
#tab_area {
	padding: 20px 0 9px 0;
}
#tab_area li {
	margin: 0 1.5% 11px 1.5%;
	width: 47%;
}
#tab_area li .sub {
	width: 100%;
}

/*top_box01*/
/*------------------------------------------------------------------------------*/
.top_box01.active li {
	animation-name: none;
}
.top_box01.active li:nth-child(2) {
	animation-delay: 0;
}
.top_box01.active li:nth-child(3) {
	animation-delay: 0;
}
.top_box01 li {
	width: 49%;
}
.top_box01 li:first-child {
	margin: 0 0 20px;
	width: 100%;
}
.top_box01_in h4 {
	font-size: 15px;
	padding: 0 12px 10px;
}
.top_box01_in h4::after {
	left:12px;
}

.top_box01_in .case_content {
	margin-bottom: 10px;
	padding: 0 12px;
	font-size: 14px;
}
.top_box01_in .case_cat {
	padding: 5px 12px;
}

/*top_movie*/
/*------------------------------------------------------------------------------*/
#top_movie {
	margin: -30px 0 40px;
}
#top_movie .slide_all {
	width: 100%;
	height: auto;
}
#top_movie .slide_wrap {
	width: auto;
	position: static;
	left: auto;
	margin-left: 0;
}
#top_movie .slide {
	width: auto;
}
#top_movie .prev_btn {
	left: 10px;
	background-size: 40px;
}
#top_movie .next_btn {
	right: 10px;
	background-size: 40px;
}
#top_movie .movie_btn {
	width: 40px;
	height: 40px;
	margin-top: -20px;
}

/*top_box02*/
/*------------------------------------------------------------------------------*/
#top_box02 .inner {
	padding: 30px 4.9%;
}
#top_box02 .top_box02_in {
	display: block;
}
#top_box02 .unit:first-child {
	width: 100%;
	display: block;
	padding-right: 0;
	margin-bottom: 20px;
}
#top_box02 .unit:last-child {
	width: 100%;
	display: block;
}
#top_box02 .unit:last-child dt {
	font-size: 18px;
}

/*top_box03*/
/*------------------------------------------------------------------------------*/
#top_box03 {
	padding: 40px 0;
}
#top_box03 li {
	width: 50%;
	margin: 0;
}
#top_box03 li:nth-child(2n) {
	margin: 0;
}
.top_box03_in {
	width: 32.81vw;
	height: 21.875vw;
}
.top_box03_in p {
	font-size: 21px;
}

/*top_box04*/
/*------------------------------------------------------------------------------*/
#top_box04 {
	padding: 40px 0;
}
#top_box04 li {
	float: none;
	width: 100%;
	margin: 0 0 20px;
}
#top_box04 li:last-child {
	margin: 0;
}
#top_box04 li .img100 {
	text-align: center;
	margin-left: 5%;
}
#top_box04 li dt {
	font-size: 18px;
}

/*top_box05*/
/*------------------------------------------------------------------------------*/
#top_box05 {
	padding: 20px 0;
}
#top_box05_in {
	padding: 20px 30px;
}
#top_rss_box {
	padding-bottom: 30px;
}
#top_box05 .rss_cat {
	display: none;
}
#top_box05 .rss_title {
	float: none;
	width: 100%;
}



/*------------------------------------------------------------------------------*/
}
/*------------------------------------------------------------------------------*/



/* screens smaller than 500---------------------------------------------------------- */
@media only screen and (max-width:499px) {

/*top_box01*/
/*------------------------------------------------------------------------------*/
.top_box01 li {
	margin: 0 0 20px;
	width: 100%;
}

/*top_box03*/
/*------------------------------------------------------------------------------*/
.top_box03_in p {
	font-size: 16px;
}

/*top_box05*/
/*------------------------------------------------------------------------------*/
#top_box05 .rss_date {
	width: 100%;
	float: none;
}
#top_box05 dd {
	padding-left: 0;
}




/*------------------------------------------------------------------------------*/
}
/*------------------------------------------------------------------------------*/

/* --- 追加：MV・CTAのレスポンシブ修正（スマホ用） --- */
/* --- CTAボタンのピンポイント修正（スマホ用） --- */
/* スマホで動画背景がコンテンツを包み込めるように、高さを可変に補正 */
/* --- スマホ用：高さを可変にして動画内に縦並びで収める --- */
.mainimgArea, .mainimage_in {
    height: auto !important; /* 既存の650px固定を解除 */
    min-height: 100vh !important;
    padding-bottom: 60px !important; /* 下部に安全な余白を確保 */
}

.mainimgConT {
    height: auto !important;
}

.btn-cta-area {
    position: relative !important; /* PCの絶対配置を解除 */
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    transform: none !important;
    display: flex !important;
    flex-direction: column !important; /* スマホは縦並び */
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 290px !important;
    margin: 30px auto 0 !important;
}

.btn-cta-area a {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 48px !important;
    line-height: 48px !important;
    padding: 0 !important;
    font-size: 14px !important;
    box-sizing: border-box !important;
}