@charset "UTF-8";

/*-----------------------------------------
　全般設定
-----------------------------------------*/
.clearfix:after {
  content: ".";
  clear: both;
  display: block;
  height: 0;
  visibility: hidden;
}
html { font-size: 62.5%; }
body {
  background-color: #FFF;
  color: #583831;
	font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-size: 1.6rem;
  margin: 0 auto;
  padding: 0;
  width: 100%;
  line-height: 1.7;
}
*,
*::before,
*::after { box-sizing: border-box; }
a:link,
a:visited,
a:hover,
a:active { text-decoration: none; }
img {	vertical-align: bottom; }
.mt20 { margin-top: 20px; }
.mt40 { margin-top: 40px; }
.mt60 { margin-top: 60px; }
.ml40 { margin-left: 40px; }
.left { float: left; }
.right { float: right; }
.center { text-align: center; }
.clear { clear: both; }
.bold { font-weight: bold; }
.size18 { font-size: 1.8rem; }
.size24 { font-size: 2.4rem; }
.size30 { font-size: 3rem; }
.bold {	font-weight: bold; }
.red { color: #F00; }
.inner {
	width: 100%;
	max-width: 1280px;
	padding: 0 20px;
	margin: 0 auto;
}
.inner:after {
	content: "";
	clear: both;
	display: block;
}
ul.disc {
	list-style-type: disc;
	margin-left: 20px;
}
ul.square {
	list-style-type: none;
	line-height: 2.5;
}
ul.square li:before { content: '■'; }

/*-----------------------------------------
　ヘッダー
-----------------------------------------*/
#top-head {
	width: 100%;
	padding: 30px 0 20px 0;
	z-index: 999;
}
#top-head a,
#top-head {
	color: #583831;
	text-decoration: none;
}
#top-head .inner { position: relative; }
#top-head .logo { float: left; }
h1 img {
	border-top: 1px solid #CCC;
	border-bottom: 1px solid #CCC;
}

/*-----------------------------------------
　グローバルナビ
-----------------------------------------*/
#global-nav ul {
	list-style: none;
	position: absolute;
	right: 0;
	bottom: 0;
	font-size: 1.4rem;
}
#global-nav ul li {	display: inline-block; }
#global-nav ul li.last {
	border-right: 1px solid #CCC;
	margin-right: 20px;
}
#global-nav ul li a {
	padding: 0 20px;
	font-weight: bold;
}
/* Fixed */
#top-head.fixed {
	margin-top: 0;
	top: 0;
	position: fixed;
	padding-top: 30px;
	height: 80px;
	background: #FFF;
	transition: top 0.65s ease-in;
	-webkit-transition: top 0.65s ease-in;
	-moz-transition: top 0.65s ease-in;
	border-bottom: 1px solid #CCC;
}
#top-head.fixed #global-nav ul li a {
	color: #583831;
	padding: 0 20px;
}
/* Toggle Button */
#nav-toggle {
	display: none;
	position: absolute;
	right: 0;
	top: 0;
	width: 55px;
	height: 55px;
	cursor: pointer;
	z-index: 101;
	background: #EA1871;
	padding: 7px 10px;
	line-height: 1;
}
#nav-toggle p {
	font-size: 1rem;
	color: #FFF;
	font-weight: bold;
	margin-bottom: 5px;
	text-align: center;
}
#nav-toggle div { position: relative; }
#nav-toggle span {
	display: block;
	position: absolute;
	height: 4px;
	width: 100%;
	background: #FFF;
	left: 0;
	-webkit-transition: .35s ease-in-out;
	-moz-transition: .35s ease-in-out;
	transition: .35s ease-in-out;
}
#nav-toggle span:nth-child(1) { top: 0; }
#nav-toggle span:nth-child(2) { top: 10px; }
#nav-toggle span:nth-child(3) { top: 20px; }

/*-----------------------------------------
　コンテンツ
-----------------------------------------*/
#contents {
	width: 100%;
  box-sizing: border-box;
  text-align: left;
	padding: 0 20px;
	margin: 80px auto;
}
.block {
	width: 90%;
	box-sizing: border-box;
	margin: 40px 0;
	position: relative;
}
.block-contents-r-t-img {
	box-sizing: border-box;
	padding-left: 120px;
	padding-right: 40px;
}
.block-contents-l-t-img {
	box-sizing: border-box;
	padding-right: 120px;
	padding-left: 40px;
}
.block-contents-l-t {
	box-sizing: border-box;
	padding-left: 80px;
}
.block-contents-l {
	box-sizing: border-box;
	padding-right: 40px;
	float: left;
}
.block-contents-r {
	box-sizing: border-box;
	padding-left: 40px;
	float: right;
}
.block-img {
	width: 30%;
	box-sizing: border-box;
}
.w-70 {	width: 70%; }
.w-60 {	width: 60%; }
.w-50 {	width: 50%; }
.block-center {
	width: 100%;
	max-width: 1280px;
	box-sizing: border-box;
	margin: 40px auto;
}
.pl40 { padding-left: 40px; }
.pr40 {	padding-right: 40px; }

/*-----------------------------------------
　見出し
-----------------------------------------*/
.hl01-l {
	writing-mode: vertical-rl;
	color: #EA1871;
	font-size: 2.4rem;
	position: absolute;
	left: 0;
	top: -25px;
}
.hl01-r {
	writing-mode: vertical-rl;
	color: #EA1871;
	font-size: 2.4rem;
	position: absolute;
	right: 0;
	top: -25px;
	display: inline-flex;
}

/*-----------------------------------------
　パーツ
-----------------------------------------*/
ul.check { list-style-type: none; }
ul.check li {
	padding-left: 30px;
	background-image: url(../img/img_check.png);
	background-repeat: no-repeat;
	background-position: 0px 2px;
	line-height: 2.3;
}
ul.link li {
	display: inline-block;
	padding: 0 20px;
	margin-bottom: 20px;
	border-right: 1px solid #CCC;
}
ul.link li:first-child { padding-left: 0; }
ul.link li:last-child { border-right: none; }
ul.link li a { color: #583831; }

dl.qa dt span {
	margin-right: 40px;
	display: block;
	float: left;
	height: 60px;
}
dl.qa dd {
	margin-top: 10px;
	margin-left: 65px;
}
table.flow th.num {
	background: #EA1871;
	color: #FFF;
	border-radius: 100%;
	padding: 3px;
	height: 40px;
	width: 40px;
	text-align: center;
	font-size: 2rem;
	font-weight: bold;
	display: inline-block;
}
table.flow th { padding: 15px 0; }
table.flow td {	padding-left: 40px; }
table.course {
	width: 80%;
	margin: 0 auto;
}
table.course th,
table.course td {
	vertical-align: middle;
	padding-top: 10px;
}
table.course th { width: 30%; }
table.service {	width: 100%; }
table.service th,
table.service td {
	width: 50%;
	vertical-align: top;
	box-sizing: border-box;
}
table.service td.migi { padding-left: 40px; }
p.box,
p.box-red {
	text-align: left;
	display: inline-block;
	padding: 20px;
}
p.box {
	background: #F8F2F1;
	border: 1px solid #CCC;
}
p.box-red {
	border: 2px solid #FF0000;
	color: #FF0000;
	font-weight: bold;
}
table.cancel {
	text-align: center;
	border-collapse: collapse;
  border-spacing: 0;
}
table.cancel th {
	font-weight: normal;
	background: #F8F2F1;
	border: 1px solid #CCC;
	padding: 8px 20px;
}
table.cancel td {
	border: 1px solid #CCC;
	padding: 8px 20px;
}
.contact {
	border: 1px solid #CCC;
	padding: 20px;
}
.commitment-l,
.commitment-r {
	margin: 40px 0;
	width: 90%;
	position: relative;
}
.commitment-l {
	float: left;
	padding-left: 80px;
}
.commitment-r {
	float: right;
	padding-right: 80px;
}
.commitment-l-t,
.commitment-r-t {
	position: absolute;
	top: -40px;
}
.commitment-l-t { left: 0; }
.commitment-r-t {	right: 0; }
.commitment-l-t h4,
.commitment-r-t h4 {
	writing-mode: vertical-rl;
	font-size: 2rem;
	font-weight: bold;
	color: #EA1871;
	line-height: 1.4;
	vertical-align: middle;
	display: inline-flex;
}
.commitment-l-t h4 span,
.commitment-r-t h4 span {
	background: #EA1871;
	color: #FFF;
	font-size: 3rem;
	line-height: 1.7;
	width: 50px;
	height: 50px;
	text-align: center;
	display: block;
	margin-bottom: 15px;
	float: left;
}
.commitment-l p,
.commitment-r p {
	background: #F8F2F1;
	padding: 20px;
	width: 70%;
}
.commitment-l p { float: left; }
.commitment-r p {	float: right; }

/*-----------------------------------------
　ボタン
-----------------------------------------*/
a.btn,
a.contact {
	background: #FFF;
	border: 2px solid #EA1871;
	padding: 10px !important;
	text-align: center;
	color: #EA1871 !important;
	font-size: 1.4rem;
	font-weight: bold;
	position: relative;
	display: inline-block;
	box-shadow:5px 5px 0px 0px rgba(70,6,34,0.3);
	transition: .3s all;
}
a.btn:hover,
a.contact:hover {
	transform: translate(5px,5px);
	box-shadow: none;
}
a.contact span {
	width: 18px;
	height: 14px;
	background:url(../img/img_mail.png) no-repeat;
	display: inline-block;
	margin-right: 10px;
}
a.btn span {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #EA1871;
	display: inline-block;
	margin-right: 10px;
	position: relative;
	vertical-align: text-top;
}
a.btn span::before {
	box-sizing: border-box;
	width: 5px;
	height: 6px;
	border: 4px solid transparent;
	border-left: 5px solid #fff;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 6px;
	margin: auto;
	content: "";
	vertical-align: middle;
}
.btn-w200 {	width: 200px; }
.btn-w300 {	width: 300px; }

/*-----------------------------------------
問い合わせフォーム
-----------------------------------------*/
form#mailformpro dl dd input[type=text],
form#mailformpro dl dd input[type=mail],
form#mailformpro dl dd textarea {
	width: 100% !important;
	padding: 10px;
	border: 1px solid #CCC;
}
form#mailformpro dl dd textarea { height: 150px !important; }
form#mailformpro button[type=submit] {
	width: 50%;
	border: 2px solid #EA1871;
	padding: 10px 20px;
	margin-top: 20px;
	color: #EA1871;
	font-weight: bold;
	transition: .3s all;
}
form#mailformpro button[type=submit]:hover {
	background: #EA1871;
	color: #FFF;
}
#mailformpro input[type="radio"]{
  display: block;
  overflow: hidden;
  width: 30px;
  height: 30px;
  background: url(../img/img_radio.png) 0 0 no-repeat;
  -webkit-appearance: none;
  appearance: none;
  white-space: nowrap;
  vertical-align: middle;
  margin-right: 10px;
  float: left;
}
#mailformpro input[type="radio"]:checked {
  content: "";
  background-position: 0 -30px;
}

/*-----------------------------------------
フッター
-----------------------------------------*/
footer {
	text-align: center;
	font-size: 1.2rem;
}
#footer-link {
	background: #EA1871;
	padding: 20px;
}
#footer-link ul li {
	display: inline-block;
	list-style: none;
	margin: 0 10px;
}
#footer-link ul li a {
	color: #FFF;
	font-size: 1.4rem;
}
#copyright { margin: 10px 0; }
#page-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 50px;
  height: 50px;
  cursor: pointer;
}
#page-top a {
  display: block;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
}
#page-top a::before {
  position: absolute;
  content: '';
  width: 50px;
  height: 50px;
  background: #EA1871;
  top: 0;
  left: 0;
  transition: .3s all;
}
#page-top a::after {
  position: absolute;
  content: '';
  width: 10px;
  height: 10px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  top: 42%;
  left: 20px;
}
#page-top a:hover::before { background: #C41C63; }

/*-----------------------------------------
レスポンシブ
-----------------------------------------*/
@media screen and (max-width: 680px) {
	#contents { margin: 20px auto; }
	.size24 {	font-size: 2rem; }
	#footer-link { display: none; }
	table.service tr, table.service tr th, table.service tr td,
	table.course tr, table.course tr th, table.course tr td { display: block; }
	table.cancel { width: 100%; }
	table.cancel th,
	table.cancel td { text-align: left; }
	table.service th, table.service td,
	.block,
	.w-70,
	.w-60,
	.w-50,
	.commitment-l p,
	.commitment-r p,
	.btn-w300,
	table.course th { width: 100%; }
	table.service td.migi { padding: 20px 0 0 0; }
	form#mailformpro button[type=submit] { width: 80%; }
	.block-contents-r-t-img { padding-right: 0; }
	.block-contents-l-t-img { padding-left: 0; }
	.block-contents-r { padding-left: 0; }
	.block-contents-l { padding-right: 0; }
	.block-img { margin: 20px 0; }
}
@media screen and (max-width: 950px) {
	ul.link li {
    margin-bottom: 5px;
    border: 1px solid #CCC;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
		transition: .3s all;
	}
	ul.link li:last-child { border-right: 1px solid #CCC; }
	ul.link li a {
		padding: 10px;
		display: block;
	}
	ul.link li:hover { background: #DDD; }
	table.course { width: 100%; }
	h1 { margin-top: 55px; }
	#top-head,.inner {
		width: 100%;
		padding: 0;
	}
	#top-head {
		top: 0;
		position: fixed;
		margin-top: 0;
	}
	/* Fixed reset */
	#top-head.fixed {
		padding-top: 0;
		background: transparent;
		border-bottom: none;
	}
	#mobile-head {
		background: #fff;
		width: 100%;
		height: 56px;
		z-index: 999;
		position: relative;
		border-bottom: 1px solid #CCC;
	}
	#top-head.fixed .logo,
	#top-head .logo {
		position: absolute;
		left: 13px;
		top: 13px;
		color: #333;
		font-size: 26px;
	}
	#global-nav {
		position: absolute;
		/* 開いてないときは画面外に配置 */
		top: -500px;
		background: #FFF;
		width: 100%;
		text-align: center;
		padding: 10px 0;
		-webkit-transition: .5s ease-in-out;
		-moz-transition: .5s ease-in-out;
		transition: .5s ease-in-out;
	}
	#global-nav ul {
		list-style: none;
		position: static;
		right: 0;
		bottom: 0;
		font-size: 14px;
	}
	#global-nav ul li {
		float: none;
		position: static;
		display: block;
		border-bottom: 1px solid #CCC;
	}
	#global-nav ul li.last {
		border-right: none;
    margin-right: 0;
	}
	#top-head #global-nav ul li a,
	#top-head.fixed #global-nav ul li a {
		width: 100%;
		display: block;
		color: #333;
		padding: 18px 0;
	}
	#nav-toggle { display: block; }
	/* #nav-toggle 切り替えアニメーション */
	.open #nav-toggle span:nth-child(1) {
		top: 11px;
		-webkit-transform: rotate(315deg);
		-moz-transform: rotate(315deg);
		transform: rotate(315deg);
	}
	.open #nav-toggle span:nth-child(2) {
		width: 0;
		left: 50%;
	}
	.open #nav-toggle span:nth-child(3) {
		top: 11px;
		-webkit-transform: rotate(-315deg);
		-moz-transform: rotate(-315deg);
		transform: rotate(-315deg);
	}
	/* #global-nav スライドアニメーション */
	.open #global-nav {
		/* #global-nav top + #mobile-head height */
		-moz-transform: translateY(556px);
		-webkit-transform: translateY(556px);
		transform: translateY(556px);
	}
}