@charset "utf-8";

/* **************************
Loading
************************** */
.loading{
    width: 100vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #FFFFFF;
    color: #FFFFFF;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 99999;
}

.loading .compass .img{
	background: url(../img/base/loading-compass_bg.png) no-repeat center;
	background-size:50px;
	text-align:center;
}

.loading .compass img{
    width: 50px;
    height: 50px;
    animation: rotate-anime 1.4s linear infinite;
}

@keyframes rotate-anime{
	0%{ transform:rotate(0);}
	100%{ transform:rotate(360deg); }
}

.loading .compass p{
    width: 100%;
    padding-top:8px;
}

/* **************************
Common
************************** */
section .inner{
    max-width: 960px;
    margin: auto;
    padding: 5% 0;
}

section .inner > h2{
    text-align: center;
    font-size: 30px;
    font-weight: bold;
    margin-bottom: 48px;
}

section .inner > h2:after{
	border-bottom: solid 2px var(--main-color);
	display:block;
	content:"";
	width: 120px;
	margin:auto;
	padding-top:16px;
}

/* **************************
Header
************************** */
.l_header,
.header_wrap,
.nav_list{
    background: none;
    box-shadow: none;
}

.l_main {
    padding-top: 0;
}

.scroll-nav{
    background: var(--main-color);
    box-shadow: 0 0 12px 0 rgba(0, 0, 0, .3);
	-webkit-transition: all 0.4s ease;
	-moz-transition: all 0.4s ease;
	-o-transition: all 0.4s ease;
}

/* **************************
Top
************************** */
.top{
    background: url("../img/top/main.jpg") center;
    background-size: cover;
    position: relative;
    overflow: hidden;
}

.top .inner{
    max-width: 1080px;
    margin: auto;
    padding-top: 16%;
    padding-bottom: 8%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.top .title{
    width: 46%;
    z-index: 1;
}

.top .title h1{
    color: #FFFFFF;
    font-size: 2vw;
    font-weight: bold;
}

.top .title .copy{
    font-size: 8.5vw;
    line-height: 0.8;
    color: var(--main-color);
    display:block;
    padding-bottom:24px;
}

.top .title .copy > span{
    display:block;
}

.top .title .btn a{
	display: block;
	padding: 16px 0;
	font-size: 18px;
	font-weight: bold;
	max-width: 320px;
	text-align: center;
	margin:40px auto;
	border-radius: 6px;
}

/* case */
.top .case{
    position: relative;
    margin-top: auto;
    margin-bottom: 0;
}

.top .case a:hover img{
    transform:scale(1.02,1.02);
	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
	-o-transition: all 0.2s ease;
}

/* event-banner */
.top .banner{
	max-width: 350px;
	float: right;
}


/* demo */
.top .demo{
    background: url("../img/top/top_free-demo.png") left center no-repeat;
    background-size: contain;
    width: 44%;
    position: relative;
}

.top .demo .button{
	text-align: center;
	position:absolute;
	bottom: 30px;
	right: -20px;
}

.top .demo .button a{
	width: 200px;
	height: 200px;
	border-radius: 50%;
	font-size: 40px;
	font-weight:bold;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
    box-shadow: 0px 0px 12px rgb(0 0 0 / 80%);
}

.top .demo .button a:hover{
    transform:scale(1.02,1.02);
}

.top .demo .button em{
    font-style: normal;
    font-weight: bold;
    display: block;
    line-height: 1.1;
    font-size: 33px;
}

.top .demo .button span.text_top{
    display: block;
    font-size: 20px;
    border-bottom: solid 1px #000000;
    margin-bottom: 8px;
    padding-bottom: 4px;
}

.top .demo .button span.text_bottom{
    display: block;
    font-size: 14px;
    color: #784806;
    padding-top:8px;
}

/* animation-noise */
.top .inner:before{
    position: absolute;
    top: -14%;
    background: url("../img/top/noise.png");
    animation: noise_anima 1s steps(10) infinite;
    content:"";
    width:100%;
    height: 114%;
}

@keyframes noise_anima {
	from { background-position: 0 0; }
	to { background-position: 123px 456px; }
}

/* animation-fadein */
.fadein_01 {
   opacity: 0;
   animation-name: fadein_01;
   animation-duration: 0.6s;
   animation-timing-function: ease-out;
   animation-fill-mode: forwards;
}
@keyframes fadein_01 {
   0% {
      opacity: 0;
      transform: translateX(20px);
   }
   100% {
      opacity: 1;
      transform: translateX(0);
   }
}

.fadein_02 {
   opacity: 0;
   animation-name: fadein_02;
   animation-duration: 1.2s;
   animation-timing-function: ease-out;
   animation-fill-mode: forwards;
}
@keyframes fadein_02 {
   10% {
      opacity: 0;
      transform: translateX(30px);
   }
   100% {
      opacity: 1;
      transform: translateX(0);
   }
}

.fadein_03 {
   opacity: 0;
   animation-name: fadein_03;
   animation-duration: 1.8s;
   animation-timing-function: ease-out;
   animation-fill-mode: forwards;
}
@keyframes fadein_03 {
   20% {
      opacity: 0;
      transform: translateX(40px);
   }
   100% {
      opacity: 1;
      transform: translateX(0);
   }
}

.fadein_04 {
	display:inline-block;
   opacity: 0;
   animation-name: fadein_04;
   animation-duration: 2.2s;
   animation-timing-function: ease-out;
   animation-fill-mode: forwards;
}
@keyframes fadein_04 {
   30% {
      opacity: 0;
      transform: translateX(30px);
   }
   100% {
      opacity: 1;
      transform: translateX(0);
   }
}

.fadein_05 {
  animation-name: fadein_05;
  animation-duration: 1.5s;
  animation-iteration-count: infinite;
  animation-timing-function: ease-out;
  animation-iteration-count: 1;
}

@keyframes fadein_05 {
  0% {
    opacity: 0;
  }
  80% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@media screen and (min-width: 1240px) {
	.top{
		background: url("../img/top/main.jpg") top center;
		background-size: cover;
	}

	.top .inner{
		max-width:1240px;
		padding-top: 220px;
		padding-bottom: 96px;
	}

	.top .title h1{
		font-size: 30px;
	}

	.top .title .copy{
		font-size: 110px;
	}

	.top .demo{
		background: url("../img/top/top_free-demo.png") left center no-repeat;
		background-size: 90%;
	}
}


/* **************************
Top News
************************** */
.top_news{
    background: #0090e0;
    text-align: center;
}

.top_news p{
	padding: 24px 12px;
	color:#FFF;
}

.top_news a{
	color:#FFF;
	text-decoration:underline;
	width: 100%;
}


/* **************************
Thoughts
************************** */
.thoughts{
	background: url(../img/top/thoughts_bg.jpg) center no-repeat;
	background-size: cover;
	color: #FFF;
}

.thoughts .inner > h2{
    margin-bottom: 0;
}

.thoughts .inner > h2:after{
	border-bottom: none;
}

.thoughts p{
	max-width: 800px;
	margin:auto;
}

/* **************************
About
************************** */
.about{
    /* background: var(--main-color); */
    /* color: #FFFFFF; */
}

.about .inner > h2{
	text-align: center;
	font-size: 30px;
	margin-bottom: 0 !important;
}

.about .inner > h2:after{
	border-bottom: none;
}

.about .inner{
	padding-top: 8%;
	padding-bottom: 8%;
}

.about p{
	font-size: 18px;
	max-width: 760px;
	margin:auto;
	padding-top: 16px;
}

.about .img{
	max-width: 560px;
	margin:auto;
	margin-top: 40px;
}

/*番組データベース*/
.about .database{
	color: #FFF493;
}

.about .data{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.about .movie-block{
	width: 100%;
	height: 0;
	position: relative;
	padding-top: 56.25%;
	overflow: hidden;
	margin-top: 24px;
}

.about .movie-block iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
}

.about .database h3{
	font-size: 30px;
	font-weight: bold;
	text-align:center;
	padding:48px;
}

.about .database .data li{
	margin-bottom: 24px;
}

.about .database .data li.station{
	padding-right: 120px;
}

.about .database .data dt{
    font-size: 20px;
}

.about .database .data dt:before{
    content: "［"
}

.about .database .data dt:after{
    content: "］"
}

.about .database .data dd{
    font-size: 28px;
    font-weight: bold;
    position: relative;
}

.about .database .data .station dd{
	text-align:center;
	/* display: flex; */
	/* align-items: end; */
}

.about .database .data dd > em{
    line-height: 0.8;
    font-size: 112px;
    font-weight: bold;
    font-style: normal;
    font-family: acumin-pro-extra-condensed, sans-serif;
    font-weight: 800;
    font-style: normal;
}

.about .database .data dd > span{
    position: absolute;
    right: 0;
    bottom: 30px;
}

.about .database .data dd > span.items{
    font-size: 14px;
    display: block;
    /* position: initial; */
    text-align: left;
    bottom: 0;
    left: 146px;
    width: 120px;
}


/* **************************
Function
************************** */
.function{
    background: var(--main-lightgray);
}

/* function_list */
.function-list{
	text-align: center;
	padding: 40px 0;
	border-bottom: solid 1px #CFCFCF;
}

.function-list h2{
	font-size: 30px;
	font-weight: bold;
	padding-bottom: 32px;
}

.function-list ul{
	display: flex;
	justify-content: space-between;
	/* max-width: 860px; */
	margin: auto;
}

.function-list ul li{
	width: 16%;
	text-align: center;
	line-height: 1.2;
}

.function-list ul li figure{
	padding-bottom: 0.5em;
}

.function-list ul li img{
	max-width: 80px;
	width: 100%;
	height: auto;
}

/* function-box */
.function_box {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-bottom: solid 1px #CFCFCF;
}

.function_box .inner{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}

.function .img{
	order: 1;
	width: 48%;
	text-align: center;
}

.function .text{
	order: 2;
	width: 40%;
	margin: auto;
}

.function .text h3{
	font-size: 24px;
	font-weight: bold;
	vertical-align: middle;
	align-items: center;
	padding-left: 56px;
	margin-bottom: 12px;
	line-height: 1.2;
}

.function .text h3 > em{
	display: block;
	font-size: 16px;
	font-weight: normal;
	font-style: normal;
	padding-bottom: 4px;
}

.competitor_search .text h3{
	background: url(../img/base/icon_search.svg) no-repeat;
	background-size: 48px;
}

.aggregate_report .text h3{
	background: url(../img/base/icon_aggregate.svg) no-repeat;
	background-size: 48px;
}

.creative_watch .text h3{
	background: url(../img/base/icon_watch.svg) no-repeat;
	background-size: 48px;
}

.program_list .text h3{
	background: url(../img/base/icon_program.svg) no-repeat;
	background-size: 48px;
}

.efficiency .text h3{
	background: url(../img/base/icon_efficiency.svg) no-repeat;
	background-size: 48px;
}

.room .text h3{
	background: url(../img/base/icon_room.svg) no-repeat;
	background-size: 48px;
}

.marketplace .text h3{
	background: url(../img/base/icon_marketplace.svg) no-repeat;
	background-size: 48px;
}

.aggregate_report img,
.room img{
	/* max-width: 320px; */
	width: 100%;
}

.function .btn a{
	display: block;
	padding: 16px 0;
	font-size: 18px;
	font-weight: bold;
	max-width: 320px;
	text-align: center;
	margin:40px auto;
	border-radius: 6px;
}

/* **************************
Special
************************** */
.special ul{
	display: flex;
	flex-wrap:wrap;
	justify-content:space-between;
}

.special ul li{
	width: 46.5%;
}

.special ul li:hover img{
	opacity:0.8;
    transform:scale(1.02,1.02);
	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
	-o-transition: all 0.2s ease;
}

.special ul li .img{
	border: solid 1px #C8C8C8;
	border-radius: 12px;
	overflow: hidden;
 }
.special ul li h3{
	color: var(--main-color);
	font-size: 16px;
	font-weight:bold;
	padding:16px 0 8px;
}

.special ul li p{
	font-size: 14px;
}


/* **************************
Topics
************************** */
.topics{
    background: var(--main-lightgray);
}

.topics ul{
	width:fit-content;
	margin: auto;
	max-height: 256px;
	overflow-y: scroll;
	border-bottom: solid 1px #CFCFCF;
	padding-bottom: 12px;
}

.topics ul li {
	margin: 12px 0;
	display: flex;
	flex-wrap:nowrap;
	align-items: flex-start;
}

.topics ul li span{
	color: #FFFFFF;
	display:inline-block;
	padding:4px 8px;
	font-size: 13px;
	text-align:center;
	min-width:120px;
	margin-right: 12px;
}

.topics ul li span.press{
	background:#C9A322;
}

.topics ul li span.media{
	background:#5E9A57;
}

.topics ul li span.event{
	background: #505b9a;
}

/* **************************
slide_window
************************** */
.slide_window {
    position: fixed;
    bottom: 10px;
    right: -100%;
    padding: 0px;
    opacity: 0;
    transition: 1s;
	background: #6e1cff;
}
.slide_window_content > div:hover {
	outline: 2px solid #dee7eb;
	outline-offset: -6px;
	-webkit-transition: all 0.1s ease;
	-moz-transition: all 0.1s ease;
	-o-transition: all 0.1s ease;
}
.slide_window.js_active {
    right: 10px;
    z-index: 9999;
    opacity: 1;
}
.slide_window_close {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 20px;
    height: 20px;
    transform: rotate(45deg);
    border: none;
    background: none;
    outline: none;
}
.slide_window_close::before,
.slide_window_close::after {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 3px;
    height: 3px;
    background-color: #FFFFFF;
    content: "";
}
.slide_window_close::before {
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
}
.slide_window_close::after {
    left: 50%;
    transform: translateX(-50%);
    height: 100%;
}
.slide_window_close:hover {
    cursor: pointer;
}

@media screen and (max-width: 960px) {
	section .inner{
		padding: 8% 5%;
	}
	
	/* **************************
	room
	************************** */
	.function .capture{
		display:flex;
		flex-wrap: wrap;
		border-bottom: dotted 1px #565656;
		margin-bottom: 48px;
	}
	.function .capture p.top{
		order:2;
		font-size: 14px;
	}
	.function .capture .img{
		order:1;
		margin-bottom: 24px;
	}
	.room .inner h3{
	    padding-top: 64px;
	    padding-bottom: 12px;
	    font-size: 24px;
	    text-align: left;
	    display: table;
	    margin: auto;
	    background-size: 48px;
	}
	.room h3 > em{
		font-size: 14px;
		text-align: center;
	}
	.function .point{
	    display: flex;
	    flex-wrap: wrap;
	}
}

@media screen and (max-width: 768px) {
	section .inner > h2{
		font-size: 24px;
		margin-bottom: 24px;
	}
	section .inner > h2:after{
		width: 40px;
		margin:auto;
		padding-top:16px;
	}

	/* **************************
	Header
	************************** */
	.header_inner,
	.nav_list{
		background: var(--main-color);
	}

	.l_main {
		padding-top: 0;
	}

	.scroll-nav{
		background: var(--main-color);
		box-shadow: 0 0 12px 0 rgba(0, 0, 0, .3);
		-webkit-transition: all 0.4s ease;
		-moz-transition: all 0.4s ease;
		-o-transition: all 0.4s ease;
	}

	/* **************************
	top
	************************** */
	.top{
		background: url("../img/top/main.jpg") top right 38%;
		background-size: cover;
		position: relative;
		overflow: hidden;
	}
	
	.top .inner{
		padding-bottom: 20%;
	}

	.top .inner:before{
		background-size: 25%;
	}

	.top .title{
		text-align: center;
		width: 100%;
		order: 2;
		/* padding-top: 12%; */
	}

	.top .title .btn a{
		margin: 24px auto 0;
	}

	.top .title h1{
		font-size: 4.2vw;
		text-align: center;
	}

	.top .title .copy{
		font-size: 16vw;
		text-align: left;
		padding-bottom: 8px;
		/* display:flex; */
		/* flex-wrap:nowrap; */
		/* justify-content: center; */
	}

	.top .title .copy > span{
		margin:auto;
	}

	.top .demo{
		width: 96%;
		height: 300px;
		background: url("../img/top/top_free-demo.png") center no-repeat;
		background-size: contain;
		margin-bottom: 16px;
	}

	.top .demo .button{
		position:absolute;
		bottom: -10px;
		right: -20px;
	}

	.top .demo .button a{
		width: 160px;
		height: 160px;
		box-shadow: 0px 0px 6px rgb(0 0 0 / 80%);
	}

	.top .demo .button em{
		font-size: 25px;
	}

	.top .demo .button span.text_top{
		font-size: 16px;
	}

	.top .demo .button span.text_bottom{
		font-size: 12px;
	}

	/* case */
	.top .case{
		margin-top: 24px;
	}

	/* animation */
	.fadein_01,
	.fadein_02,
	.fadein_03{
	   animation-duration: 0s;
	}

	.demo.fadein_05 {
	  animation-duration: 0s;
	}
	@keyframes fadein_04 {
	   30% {
		  transform: translateX(0);
	   }
	   100% {
		  opacity:1;
	   }
	}

	/* **************************
	Top News
	************************** */
	.top_news{
	    text-align: left;
	}
	
	/* **************************
	Thoughts
	************************** */
	.thoughts .inner > h2{
	    font-size: 20px;
	}

/* **************************
	About
	************************** */
	.about .inner > h2{
		text-align: left;
		padding-top: 16px;
		font-size: 22px;
		font-weight:bold;
		line-height: 1.2;
	}

	.about .inner > h2:after{
		display:none;
	}

	.about .inner h2 br{
		display:none;
	}

	.about p{
		font-size: 16px;
	}

	.about .img{
		width: 80%;
		margin-top: 5%;
	}

	.about .database h3{
		font-size: 22px;
		font-weight: bold;
		text-align:center;
		padding: 24px 0;
		line-height: 1.2;
	}

	.about .data{
		justify-content: center;
	}

	.about .database .data li{
		margin-left: auto;
		margin-right: auto;
	}

	.about .database .data li.station{
		margin-right: 0;
	}

.about .database .data dt{
		font-size: 16px;
		color: #ffef3e;
	}

	.about .database .data dd{
		font-size: 20px;
		color: #ffef3e;
	}

	.about .database .data dd > em{
		font-size: 80px;
	}

	.about .database .data dd > span{
		bottom: 22px;
	}
	.about .database .data dd > span.items{
	    font-size: 11px;
	    left: 104px;
	    width: 104px;
	}

	/* **************************
	function
	************************** */
	/* function_list */
	.function-list{
		padding: 32px 0;
	}

	.function-list h2{
		font-size: 24px;
		/* text-align: left; */
		display: table;
		margin: auto;
	}

	.function-list ul{
		flex-flow:wrap;
	}
	
	.function-list ul li{
		font-size: 12px;
		line-height: 1.2;
		width: 25%;
		margin-bottom: 16px;
	}

	.function-list ul li br{
		display:none
	}

	.function-list ul li img{
		max-width: 56px;
	}

	.function .img{
		order: 2;
		width: 90%;
		margin: 0 auto 1em;
	}

	.function .text{
		order: 1;
		width: 100%;
		padding-bottom: 1em;
		text-align: center;
	}

	.function .text h3{
		font-size: 22px;
		justify-content: center;
		padding-left: inherit;
		padding-top: 64px;
	}

	.competitor_search .text h3{
		background: url(../img/base/icon_search.svg) no-repeat top center;
		background-size: 48px;
	}

	.aggregate_report .text h3{
		background: url(../img/base/icon_aggregate.svg) no-repeat top center;
		background-size: 48px;
	}

	.creative_watch .text h3{
		background: url(../img/base/icon_watch.svg) no-repeat top center;
		background-size: 48px;
	}

	.program_list .text h3{
		background: url(../img/base/icon_program.svg) no-repeat top center;
		background-size: 48px;
	}

	.efficiency .text h3{
		background: url(../img/base/icon_efficiency.svg) no-repeat top center;
		background-size: 48px;
	}

	.room .text h3{
		background: url(../img/base/icon_room.svg) no-repeat top center;
		background-size: 48px;
	}

	.marketplace .text h3{
		background: url(../img/base/icon_marketplace.svg) no-repeat top center;
		background-size: 48px;
	}

	.function .text p{
		text-align: left;
	}

	/* **************************
	room
	************************** */
	.room .inner h3{
	    font-size: 22px;
	}
	.function .point li{
		width: 100%;
		border-bottom: dotted 1px #565656;
		margin: auto auto 40px;
		padding-bottom: 40px;
		max-width: inherit;
	}
	.function .point li:last-child{
		border-bottom: none;
	    margin-bottom: 0;
	    padding-bottom: 0;
	}
	.function .point li .img{
		width: 80%;
		max-width: 400px;
	}
	.function .point li h4{
		display: table;
		margin: auto;
		font-size: 18px;
	}
	
	/* **************************
	Special
	************************** */
	.special ul li {
		width: 100%;
		margin-bottom: 48px;
	}

	.special ul li .img{
		width: 90%;
		margin:auto;
	}

	.special ul li img{
		width: 100%;
		height:auto;
	}

	/* **************************
	Topics
	************************** */
	.topics ul{
		width:fit-content;
		margin: auto;
	}

	.topics ul li {
		margin: 0 0  20px 0;
		font-size: 14px;
		border-bottom: dotted 1px #c9c9c9;
		padding-bottom: 8px;
	}

	.topics ul li span{
		font-size: 12px;
		min-width: 104px;
	}
	/* **************************
	slide_window
	************************** */
	.slide_window {
		width: 96%;
		background: #000;
		/* border: solid 1px #AFAFAF; */
		z-index: 9999;
	}
	.slide_window_content {
		/* display: flex; */
	}
/*
	.slide_window_content > div {
		width: 50%;
	}
	.slide_window_content > div:last-child{
		background: #1e1e1e;
	}
*/
	.slide_window.js_active {
		right: 2%;
		z-index: 9999;
		opacity: 1;
	}
	.slide_window img.sp{
		/* max-width: 355px; */
		margin: auto;
	}
	.slide_window_close {
		top: 6px;
		right: 6px;
		width: 22px;
		height: 22px;
	}
}
