@charset "UTF-8";
/* CSS Document */

h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, figure {
  margin: 0;
  padding: 0;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

h1, h2, h3, h4, h5, h6, th {
	font-weight: bold;
}

ol, ul { list-style: none; }

strong {
	font-weight: bold;
}

body {
	min-width: 1280px;
  color: #333;
  font-size: 16px;
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 300;
  font-style: normal;
  line-height: 1.5;
	letter-spacing: 0;
}

a {
  color: #ec4756;
  transition: opacity 0.3s;
}

a:hover { opacity: 0.7; }

img { vertical-align: bottom; }

*, *:before, *:after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

*:focus { outline: none; }

::selection {
	background: #4c64d3;
	color: #fff;
}
/* for Firefox */
::-moz-selection{
	background: #4c64d3;
	color: #fff;
}

@media screen and (max-width:500px) {
	body {
		min-width: auto;
	}
}

/* # common
   -------------------------------------------------------------------------- */
img {
	width: 100%;
	height: auto;
}

.point-txt01 { color: #ec4756; }
.point-txt02 { color: #fffc00; }

.marker {
	background: linear-gradient(transparent 60%, #fffc00 60%)
}

.ib { display: inline-block;}

@media screen and (max-width:500px) {
	.sp-none { display: none!important; }
}
@media screen and (min-width:501px) {
	.pc-none { display: none!important; }
}

/* # header
   -------------------------------------------------------------------------- */
@media screen and (max-width:500px) {
	
	.l-header {
		overflow: hidden;
		padding: 10px;
	}
	.header-logo {
		float: left;
		padding: 10px 0;
		line-height: 1;
	}
	.header-logo a {
		display: block;
		color: #333;
		font-size: 20px;
		font-weight: bold;
		text-decoration: none;
	}
	
	/* header-btn */
	.header-btn {
		position: fixed;
		top: 5px;
		right: 5px;
		width: 50px;
		height: 50px;
		font-size: 0;
		text-align: center;
		vertical-align: middle;
		background-color: #A91A72;
		border-radius: 8px;
		z-index: 1001;
	}

	.header-btn-ico,
	.header-btn-ico:before,
	.header-btn-ico:after {
		content: "";
		position: absolute;
		width: 30px;
		height: 1px;
		background-color: #fff;
		transition: 0.3s;
	}

	.header-btn-ico {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translateX(-50%) translateY(-50%);
	}

	.header-btn-ico:before {
		top: -8px;
		left: 0;
	}
	.header-btn-ico:after {
		bottom: -8px;
		left: 0;
	}

	.header-btn.btn-active .header-btn-ico { background-color: #A91A72; }
	.header-btn.btn-active .header-btn-ico:before {
		top: 0;
		transform: rotate(45deg);
	}

	.header-btn.btn-active .header-btn-ico:after {
		bottom: 0;
		transform: rotate(-45deg);
	}

	/* heqder-nav */
	.header-nav {
		position: fixed;
		top: 0;
		right: 0;
		display: block;
		width: 90%;
		bottom: 0;
		background-image: linear-gradient( -5deg, rgb(255,221,131) 0%, rgb(242,105,57) 12%, rgb(207,46,146) 34%, rgb(76,100,211) 100%);
		transform: translateX(100%);
		transition: 0.1s;
		z-index: 1000;
	}
	.header-nav.menu-active { transform: translateX(0); }

	.header-nav nav {
		overflow: scroll;
		width: 100%;
		height: 100%;
		padding: 60px 0;
	}

	.header-nav ul { border-top: 1px solid rgba(255,255,255,0.4) }

	.header-nav ul li { border-bottom: 1px solid rgba(255,255,255,0.4); }

	.header-nav ul li a {
		display: block;
		padding: 30px;
		color: #fff;
		font-size: 16px;
		line-height: 1.25;
		text-decoration: none;
	}
	
	.header-nav ul li a .point-txt01 {
		color: #fff;
		font-weight: normal;
	}
	
	.header-contact-wrap {
		position: fixed;
		top: 5px;
		right: 60px;
		z-index: 1001;
	}
	.header-contact {
		display: block;
		width: 50px;
		height: 50px;
		font-size: 0;
		border-radius: 8px;
		background: url("../../images/header/bg_contact.png") no-repeat;
		background-size: contain;
		background-color: #ec4756;
		background-position: top center;
	}
}

@media screen and (min-width:501px) {
	.l-header {
		display: table;
		width: 100%;
	}
	.header-logo {
		display: none;
	}
	.header-btn { display: none; }
	.header-nav {
		display: table-cell;
		vertical-align: middle;
	}
	.header-nav-list {
		display: table;
	}
	.header-nav-list li {
		display: table-cell;
		padding: 0 20px;
		vertical-align: middle;
		border-left: 1px solid #d2d2d2;
	}
	.header-nav-list li a {
		display: block;
		color: #333;
		font-size: 16px;
		font-weight: bold;
		line-height: 1.25;
		text-decoration: none;
	}
	.header-contact-wrap {
		display: table-cell;
		padding: 5px;
		text-align: right;
		font-size: 0;
	}
	.header-contact {
		position: relative;
		display: inline-block;
		width: 240px;
		padding: 18px 0;
		color: #fff;
		font-size: 14px;
		font-weight: bold;
		line-height: 1;
		text-align: center;
		text-decoration: none;
		border-radius: 25px;
		background-color: #ec4756;
	}
	.header-contact:before {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 6px;
    height: 6px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    transform-origin: top right;
    transform: rotate(45deg);
	}
}


/* overlay */
.gnav-overlay {
	content: "";
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0);
	cursor: pointer;
	transition: 0.1s;
	z-index: 999;
}
.overlay-active .gnav-overlay {
	visibility: visible;
	background: rgba(0,0,0,.8);
}


/* # cta
   -------------------------------------------------------------------------- */
.l-cta {
	background-color: #ec4756;
}

.cta-inner {
	overflow: hidden;
	max-width: 1080px;
	margin: 0 auto;
}

.cta-txt {
	float: left;
	width: 760px;
	padding-top: 117px;
	color: #fff;
	font-weight: bold;
}

.cta-txt-sub {
	margin-bottom: 17px;
	font-size: 24px;
	line-height: 1.25;
}

.cta-txt-main {
	margin-bottom: 30px;
	font-size: 36px;
	line-height: 1.5555555556;
}

.cta-btn {
	position: relative;
	display: block;
	width: 360px;
	padding: 30px 0;
	font-size: 20px;
	line-height: 1;
	font-weight: normal;
	text-decoration: none;
	text-align: center;
	background-color: #fff;
	border-radius: 40px;
}
.cta-btn:before {
	content: "";
	position: absolute;
	top: 50%;
	right: 30px;
	width: 8px;
	height: 8px;
	border-top: 1px solid #ec4756;
	border-right: 1px solid #ec4756;
	transform-origin: top right;
	transform: rotate(45deg);
}

.cta-bg {
	float: right;
	width: 320px;
}

@media screen and (max-width:500px) {
	.cta-inner {
		position: relative;
		padding: 40px 20px;
	}
	.cta-txt {
		float: none;
		width: 100%;
		padding: 0;
	}
	.cta-txt-sub {
		margin-bottom: 10px;
		font-size: 18px;
		text-decoration: underline;
	}
	.cta-txt-main {
		position: relative;
		margin-bottom: 15px;
		font-size: 28px;
		white-space: nowrap;
	}
	.cta-btn {
		width: 100%;
		font-weight: bold;
	}
	.cta-bg {
		position: absolute;
		top: 10px;
		right: 0;
		float: none;
		width: 100px;
	}
}

/* # footer
   -------------------------------------------------------------------------- */
.l-footer {
	position: relative;
	padding: 60px 100px;
	background-color: #4c5c60;
}

.footer-ttl {
	margin-bottom: 20px;
	line-height: 1;
}
.footer-ttl a {
	color: #fff;
	font-size: 24px;
	font-weight: bold;
	line-height: 1;
	text-decoration: none;
}

.footer-menu {
	overflow: hidden;
}
.footer-menu li {
	float: left;
	margin-right: 16px;
	padding-right: 16px;
	font-size: 16px;
	line-height: 1;
	border-right: 1px solid #869295;
}
.footer-menu li:last-child {
	margin-right: 0;
	padding-right: 0;
	border-right: none;
}
.footer-menu li a {
	display: block;
	color: #fff;
	text-decoration: none;
}

.footer-copyright {
	position: absolute;
	bottom: 60px;
	right: 100px;
	line-height: 1;
}
.footer-copyright small {
	display: block;
	color: #869295;
	font-size: 12px;
}

@media screen and (max-width:500px) {
	.l-footer {
		padding: 40px 20px;
	}
	.footer-menu li { margin-bottom: 10px; }
	.footer-copyright {
		position: relative;
		bottom: auto;
		right: auto;
		display: block;
		margin-top: 10px;
	}
}

/* # 凡庸クラス
   -------------------------------------------------------------------------- */
.clearfix:before, .clearfix:after {
  content: "";
  display: table;
}
.clearfix:after { clear: both; }
.clearfix { zoom: 1; } /* For IE 6/7 */

.tr { text-align: right!important; }
.tl { text-align: left!important; }
.tc { text-align: center!important; }

.m0 { margin: 0!important; }
.mt0 { margin-top: 0!important; }
.mb0 { margin-bottom: 0!important; }
.ml0 { margin-left: 0!important; }
.mr0 { margin-right: 0!important; }

.p0 { padding: 0!important; }
.pt0 { padding-top: 0!important; }
.pb0 { padding-bottom: 0!important; }
.pl0 { padding-left: 0!important; }
.pr0 { padding-right: 0!important; }

.ib { display: inline-block!important; }