@charset "utf-8";

/* common
------------------------------------------------------------*/
p:not(:last-child),
ul:not(:last-child),
ol:not(:last-child),
table:not(:last-child) {
	margin-bottom: 20px;
}
.inner {
	width: 100%;
	max-width: 1200px;
	margin: auto;
}


/* btn
------------------------------------------------------------*/
.more {
	font-size: 1.5rem;
	font-weight: 600;
	color: #111;
	text-align: right;
}
.more a {
	text-decoration: none;
	transition: .3s;
}
.more span::after,
.more a::after {
	content: "";
	width: 40px;
	height: 2px;
	background: #222;
	margin-left: 10px;
	display: inline-block;
	position: relative;
	top: -4px;
	transition: .3s;
}
.moreWt,
.moreWt a {
	color: #fff;
}
.moreWt span::after,
.moreWt a::after {
	background: #fff;
}
.more a:hover,
.more a:hover::after {
	opacity: .5;
}


/* トップページ
------------------------------------------------------------*/
#kv {
	height: 90vh;
	background: url("/campaign/assets/images/portfolio/main_pc.jpg") no-repeat center center;
	background-size: cover;
}
#kv .catch {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
	
}
#sec01 {
	background: #fff;
	padding: 100px 0;
}
#sec01 .inner {
	position: relative;
	z-index: 10;
}
#sec01 h2 {
	font-size: 1.8rem;
}
#sec01 h2 span {
	font-size: 9rem;
	font-weight: 700;
	line-height: 1;
	color: #eb4034;
	display: block;
}
#sec01 .shadowArea {
	max-width: 65%;
	background: #fff;
	padding: 60px 70px 60px 0;
	box-shadow: 0 10px 30px 0 rgba(4,53,128,.15);
}
#sec01 .shadowArea h3 {
	font-size: 3rem;
	font-weight: 600;
	margin-bottom: 20px;
	letter-spacing: 2px;
}
#sec01 figure {
	position: absolute;
	top: 0;
	right: 0;
	z-index: -1;
}
#sec02 {
	background: #fff;
	padding: 80px 0;
	position: relative;
	z-index: 10;
}
#sec02::before {
	content: "";
	width: 90%;
	height: 100%;
	background: #eb4034;
	background: -moz-linear-gradient(top, #eb4034 0%, #eb4034 80%, #ffffff 80%, #ffffff 100%);
	background: -webkit-linear-gradient(top, #eb4034 0%,#eb4034 80%,#ffffff 80%,#ffffff 100%);
	background: linear-gradient(to bottom, #eb4034 0%,#eb4034 80%,#ffffff 80%,#ffffff 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eb4034', endColorstr='#ffffff',GradientType=0 );
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	z-index: -10;
}
#sec02 h2 {
	font-size: 1.8rem;
	color: #fff;
	margin-bottom: 60px;
	text-align: center;
}
#sec02 h2 span {
	font-size: 80px;
	font-weight: 700;
	line-height: 1;
	display: block;
}
#sec02 ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: space-between;
	-ms-flex-pack: space-between;
	justify-content: space-between;
}
#sec02 ul li {
	max-width: 46.5%;
	-ms-flex-preferred-size: 47%;
	flex-basis: 47%;
	background: #fff;
}
#sec02 ul li a {
	height: 100%;
	color: #333;
	display: block;
	text-decoration: none;
	transition: .3s;
}
#sec02 ul li .txtArea {
	padding: 30px 50px;
	position: relative;
	box-shadow: 0 10px 30px 0 rgba(4,53,128,.15);
}
#sec02 ul li .txtArea h3 {
	font-size: 2.4rem;
	font-weight: 600;
	margin-bottom: 15px;
}

#sec03 {
	color: #fff;
	background: #fff;
	padding: 80px 0;
	position: relative;
	z-index: 10;
}
#sec03::before {
	content: "";
	width: 90%;
	height: 100%;
	background: #90736b;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -10;
}
#sec03 h2 {
	font-size: 1.8rem;
	margin-bottom: 60px;
	text-align: center;
}
#sec03 h2 span {
	font-size: 65px;
	font-weight: 600;
	line-height: 0.8;
	display: block;
}
#sec03 ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: space-between;
	-ms-flex-pack: space-between;
	justify-content: space-between;
}
#sec03 ul li {
	max-width: 30%;
	-ms-flex-preferred-size: 30%;
	flex-basis: 30%;
}
#sec03 ul li a {
	color: #333;
	display: block;
	text-decoration: none;
	position: relative;
	transition: .3s;
}
#sec03 ul li .txtArea {
	background: #fff;
	padding: 20px 30px;
}
#sec03 ul li .txtArea .catch {
	font-size: 1em;
	font-weight: bold;
	line-height: 1.3;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 1px solid #555;
	letter-spacing: 0;
}
#sec03 ul li .txtArea .name {
	font-size: 2.2rem;
	font-weight: 600;
	margin-bottom: 10px;
}
#sec04 {
	background: #fff;
	padding-top: 100px;
}
#sec04 ul {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
#sec04 ul li {
	max-width: -webkit-calc(100% / 3);
	max-width: calc(100% / 3);
	-ms-flex-preferred-size: -webkit-calc(100% / 3);
	-ms-flex-preferred-size: calc(100% / 3);
	flex-basis: -webkit-calc(100% / 3);
	flex-basis: calc(100% / 3);
}
#sec04 ul li a {
	color: #fff;
	display: block;
	position: relative;
}
#sec04 ul li a::after {
	content: "";
	width: 100%;
	height: 100%;
	background: rgba(19,39,47,.6);
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	transition: .3s;
}
#sec04 ul li .txtArea {
	width: 100%;
	text-align: center;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
	z-index: 100;
}
#sec04 ul li .txtArea p {
	font-size: 1.6rem;
}
#sec04 ul li .txtArea p span {
	font-size: 4.2rem;
	font-weight: 700;
	display: block;
}


@media screen and (max-width:600px) {
	
	/* common
	------------------------------------------------------------*/
	p:not(:last-child),
	ul:not(:last-child),
	ol:not(:last-child),
	table:not(:last-child) {
		margin-bottom: 15px;
	}
	.inner {
		max-width: 90%;
	}


	/* btn
	------------------------------------------------------------*/
	.more {
		font-size: 1.4rem;
		text-align: center;
	}
	.more span,
	.more a {
		padding: 8px 20px;
		display: inline-block;
		border: 2px solid #333;
	}
	.more span::after,
	.more a::after {
		display: none;
	}
	.moreWt span,
	.moreWt a {
		border-color: #fff;
	}
	

	/* トップページ
	------------------------------------------------------------*/
	#kv {
		height: 40vh;
		margin-top: 60px;
		position: relative;
	}
	#kv .kvIn {
		padding-top: 0;
	}
	#kv .kvIn .bg {
		width: 60%;
	}
	#kv .kvIn .catch img {
		height: 160px;
	}
	.sticky {
		position: static;
	}
	#sec01 {
		padding: 30px 0;
	}
	#sec01 h2 {
		font-size: 1.2rem;
		margin-bottom: 20px;
		text-align: center;
	}
	#sec01 h2 span {
		font-size: 5rem;
	}
	#sec01 .shadowArea {
		max-width: 100%;
		padding: 0;
		margin-bottom: 15px;
		box-shadow: none;
	}
	#sec01 .shadowArea h3 {
		font-size: 2.2rem;
		letter-spacing: 0;
	}
	#sec01 figure {
		position: static;
	}
	#sec02 {
	background: #9b7364;
		padding: 30px 0;
	}
	#sec02::before {
		display: none;
	}
	#sec02 .inner::after {
		width: 50%;
		height: 20vh;
		top: 0;
		left: 50%;
		-webkit-transform: translate(-50%,-50%);
		transform: translateX(-50%);
	}
	#sec02 h2 {
		font-size: 1.4rem;
		margin-bottom: 20px;
	}
	#sec02 h2 span {
		font-size: 4rem;
	}
	#sec02 ul li {
		max-width: 100%;
		flex-basis: 100%;
	}
	#sec02 ul li:not(:last-of-type) {
		margin-bottom: 15px;
	}
	#sec02 ul li .txtArea {
		padding: 15px;
	}
	#sec02 ul li .txtArea h3 {
		font-size: 1.8rem;
		margin-bottom: 10px;
	}
	#sec03 {
		background: #eb4034;
		padding: 30px 0;
	}
	#sec03::before {
		display: none;
	}
	#sec03::after {
		width: 50%;
		height: 20vh;
		top: 20px;
		left: 50%;
		-webkit-transform: translate(-50%,-50%);
		transform: translateX(-50%);
	}
	#sec03 .ttlArea {
		margin-bottom: 20px;
		display: block;
	}
	#sec03 .ttlArea h2 {
		font-size: 1.4rem;
		margin-bottom: 20px;
		text-align: center;
	}
	#sec03 .ttlArea h2 span {
		font-size: 4rem;
	}
	#sec03 .ttlArea p:not(:last-child) {
		margin-bottom: 15px;
	}
	#sec03 ul li {
		max-width: 100%;
		flex-basis: 100%;
	}
	#sec03 ul li:not(:last-of-type) {
		margin-bottom: 15px;
	}
	#sec03 ul li figure {
		height: 200px;
		position: relative;
		overflow: hidden;
	}
	#sec03 ul li figure img {
		position: absolute;
		top: 50%;
		left: 50%;
		-webkit-transform: translate(-50%,-40%);
		transform: translate(-50%,-40%);
	}
	#sec03 ul li .txtArea {
		padding: 15px;
	}
	#sec03 ul li .txtArea .catch {
		font-size: 2.4rem;
		padding-bottom: 10px;
		margin-bottom: 10px;
	}
	#sec03 ul li .txtArea .name {
		font-size: 1.6rem;
	}
	#sec03 ul li .job {
		font-size: 1.4rem;
		top: 15px;
		left: 15px;
	}
	#sec04 {
		padding-top: 0;
	}
	#sec04 ul li {
		max-width: 100%;
		flex-basis: 100%;
	}
	#sec04 ul li .txtArea p {
		font-size: 1.3rem;
	}
	#sec04 ul li .txtArea p span {
		font-size: 3rem;
	}
}

.btn-square-slant {
  display: inline-block;
  position: relative;
  padding: 0.5em 1.4em;
  text-decoration: none;
  background: #eb4034;/*ボタン色*/
  color: #FFF;
  border-bottom: solid 5px #b53128;/*ボタン色より暗めに*/
  border-right: solid 5px #992922;/*ボタン色より暗めに*/
}

.btn-square-slant:before {  
  content: " ";
  position: absolute;
  bottom: -5px;
  left: -1px;
  width: 0;
  height: 0;
  border-width: 0 6px 6px 0px;
  border-style: solid;
  border-color: transparent;
  border-bottom-color: #FFF;
}

.btn-square-slant:after {  
  content: " ";
  position: absolute;
  top: -1px;
  right: -5px;
  width: 0;
  height: 0;
  border-width: 0px 6px 6px 0px;
  border-style: solid;
  border-color: #FFF;
  border-bottom-color: transparent;
}

.btn-square-slant:active {
  /*ボタンを押したとき*/
  border:none;
  -webkit-transform: translate(6px,6px);
  transform: translate(6px,6px);
}

.btn-square-slant:active:after, .btn-square-slant:active:before {
  content: none;/*ボタンを押すと線が消える*/
}



.box15 {
    padding: 0.2em 0.5em;
    margin: 2em 0;
    color: #565656;
    background: #ffeaea;
    box-shadow: 0px 0px 0px 10px #ffeaea;
    border: dashed 2px #ffc3c3;
    border-radius: 8px;
	max-width: 900px;
}
.box15 p {
    margin: 0; 
    padding: 0;
}

::selection {
  background: #ffbf94;
}
::-moz-selection {
  background: #ffbf94;
}

nav ul li a {
	position: relative;
}
nav ul li a::before {
	content: "";
	width: 0;
	height: 1px;
	background: #fff;
	display: block;
	position: absolute;
	top: calc(100% + 5px);
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	transition: .3s;
}
nav ul li a:hover::before {
	width: 100%;
}

/* ドロップシャドウ */
ul li a {
	transition: .3s;
}
ul li a:hover {
	box-shadow: 0 10px 30px 0 rgba(0,0,0,.15);
}

/* 画像を暗くする */
ul li figure {
	position: relative;
	overflow: hidden;
}
ul li figure::after {
	content: "";
	width: 100%;
	height: 100%;
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	transition: .3s;
}
ul li a:hover figure::after {
	background: rgba(19,39,47,.6);
}

.main {
	position: sticky;
	top: 0;
}
.content {
	position: sticky;
	top: 0;
}

*, *:before, *:after {
	-webkit-box-sizing: border-box;
	        box-sizing: border-box;
}
.cp_cssslider {
	width: 300px;
	padding-top: 200px; /* 画像の高さ */
	position: relative;
	margin: 2em auto;
	text-align: center;
}
.cp_cssslider > img {
	position: absolute;
	left: 0;
	top: 0;
	transition: all 0.5s;
	border-radius: 3px;
	box-shadow:0px 0px 5px 0px rgba(0,0,0,0.3);
}
.cp_cssslider input[name='cp_switch'] {
	display: none;
}
/* サムネイル */
.cp_cssslider label {
	margin: 15px 5px 0 5px;
	border: 2px solid #ffffff;
	display: inline-block;
	cursor: pointer;
	transition: all 0.5s ease;
	opacity: 0.6;
	border-radius: 3px;
}
.cp_cssslider label:hover {
	opacity: 0.9;
}
.cp_cssslider label img {
	display: block;
	width: 40px;
	border-radius: 2px;
}
.cp_cssslider input[name='cp_switch']:checked + label {
	border: 2px solid #FF7043;
	opacity: 1;
}
.cp_cssslider input[name='cp_switch'] ~ img {
	opacity: 0;
}
.cp_cssslider input[name='cp_switch']:checked + label + img {
	opacity: 1;
}