@charset "utf-8";

html {
	font-size: 16px;
}
@media (min-width: 768px) {
	html {
	font-size: 18px;
	}
}


html * {
	box-sizing: border-box;
}
body {
	margin: 0;
	font-family: "游明朝", YuMincho, "ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

/* ------------clearfix------------ */
* html .clearFix {zoom: 1;}
*+html .clearFix {zoom: 1;}
.clearFix:after {
	height: 0;
	visibility: hidden;
	content: ".";
	display: block;
	clear: both;
}

.wrap_mainb {
	width: 100%;
	background-color: #89a5d5;
	color: #ffffff;
}
.wrap_mainb2 {
	width: 100%;
	background-color: #feb6bc;
}
#wrap_main {
	width: 100%;
	background-color: #FFF;
	line-height:1.7;
}
@media (min-width: 768px) {
.wrap_mainb {
	background:url(../image/o2box02_b.jpg) repeat-x left top #89a5d5;
	}
#wrap_main {
	max-width: 840px;
	margin-right: auto;
	margin-left: auto;
	background-color: #FFF;
	line-height: 2;
	}
}


#wrap {
	width: 100%;
	background-color: #FFF;
	line-height:1.7;
}
.wrap2 {
	width: 100%;
	line-height: 1.7;
	margin-bottom: 10%;
}
.wrap3 {
	width: 100%;
	line-height: 1.7;
}
.wrap4 {
	width: 94%;
	line-height: 1.7;
	margin: 2rem auto 4rem auto;
	padding: 2rem;
	background-image: url(../image/o2box04_2.jpg);
	background-repeat: no-repeat;
	box-shadow: 0 0 6px rgba(0,0,0,.2);
	background-color: #fff;
	background-position: top;
}
@media (min-width: 768px) {
#wrap {
	max-width: 840px;
	margin-right: auto;
	margin-left: auto;
	background-color: #FFF;
	line-height: 2;
}
.wrap2 {
	max-width: 840px;
	margin-right: auto;
	margin-left: auto;
	line-height: 2;
	margin-bottom: 5%;
}
.wrap3 {
	max-width: 840px;
	margin-right: auto;
	margin-left: auto;
	line-height: 2;
}
.wrap4 {
	max-width: 840px;
	margin: 2rem auto 4rem auto;
	padding: 2rem;
	background-image: url(../image/o2box04.jpg);
}
}


.keyvisual {
	font-size: 0;
}
.keyvisual img {
	width: 100%;
}

.com_m {
	font-size: calc(100vw / 18);
	text-align: center;
	line-height: 1.5;
	background:url(../image/o2box02_2.jpg) no-repeat center top;
	padding-top: 15%;
	padding-bottom: 6%;
	font-weight: bold;
}
.com_m2 {
	font-size: calc(100vw / 18);
	text-align: center;
	color: #334ca9;
	background: url(../image/o2box04_2.jpg) no-repeat center top;
	padding-top: 20%;
	padding-bottom: 2%;
	font-weight: bold;
}
.com_m3 {
	font-size: calc(100vw / 18);
	text-align: center;
	color: #cf4764;
	padding-top: 15%;
	padding-bottom: 3%;
	font-weight: bold;
}
.com_m3 span {
	font-size: calc(100vw / 20);
	border-bottom-width: 2px;
	border-bottom-style: solid;
	border-bottom-color: #CF4764;
}
.com_m4 {
	font-size: calc(100vw / 28);
	text-align: center;
	line-height: 1.5;
	padding-top: 3%;
	padding-bottom: 2%;
	font-weight: bold;
}
.com_m5 {
	font-size: calc(100vw / 31);
	text-align: center;
	color: #0073aa;
	padding-top: 5%;
	padding-bottom: 4%;
	font-weight: bold;
}
.text01 {
	padding-right: 6%;
	padding-bottom: 5%;
	padding-left: 6%;
	padding-top: 5%;
}
.text02 {
	padding: 0%;
}
@media (min-width: 768px) {
.com_m {
	font-size: 2.2em;
	text-align: center;
	line-height: 1.5;
	background:url(../image/o2box02.jpg) no-repeat center top;
	padding: 130px 0px 60px 0px;
}
.com_m2 {
	font-size: 2.2em;
	text-align: center;
	line-height: 1.5;
	background:url(../image/o2box04.jpg) no-repeat center top;
	padding-top: 10%;
	padding-bottom: 5%;
}
.com_m3 {
	font-size: 2.2em;
	text-align: center;
	line-height: 1.5;
	padding-top: 10%;
	padding-bottom: 3%;
}
.com_m3 span {
	font-size: 0.8em;
	border-bottom-style: dashed;
}
.com_m4 {
	font-size: 1.5em;
	text-align: center;
	line-height: 1.5;
	padding: 0px;
}
.com_m5 {
	font-size: 1.5em;
	text-align: center;
	line-height: 1.5;
	padding-top: 5%;
	padding-bottom: 3%;
}
.text01 {
	padding-right: 8%;
	padding-bottom: 3%;
	padding-left: 8%;
	padding-top: 0%;
}
.text02 {
	padding-right: 3%;
	padding-bottom: 3%;
	padding-left: 3%;
	padding-top: 0%;
}
}


#box1 {
	padding-bottom: 5%;
}

#box1 ul {
	font-size: 16px;
	padding-top: 2%;
}
#box1 ul li {
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #cccccc;
	width: 90%;
	margin-right: auto;
	margin-left: auto;
	padding-top: 10px;
	padding-bottom: 10px;
	text-align: center;
	list-style-type: none;
}
@media (min-width: 768px) {
#box1 {
	padding-bottom: 50px;
}
#box1 ul li {
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #cccccc;
	width: 85%;
	margin-right: auto;
	margin-left: auto;
	padding-top: 10px;
	padding-bottom: 10px;
	font-size: 25px;
	list-style-type: none;
	text-align: center;

}
}


.box2 {
	margin-right: 5%;
	margin-left: 5%;
	border: 1px solid #89A5D5;
	padding: 4%;
}
.box2 p {
	background-color: #89A5D5;
	text-align: center;
	color: #FFF;
	font-size: calc(100vw / 20);
	margin-bottom: 3%;
}
.box3 {
	background-color: #fef9ee;
	border-radius: 20px;
	margin-top: 3%;
}
@media (min-width: 768px) {
.box2 {
	margin-right: 60px;
	margin-left: 60px;
	padding: 20px;
}
.box2 p {
	color: #FFF;
	font-size: 20px;
	margin-bottom: 15px;
}
}


.btn01 {
	position: relative;
	text-decoration: none;
	color: #FFF;
	display: block;
}
.btn01::before {
	content: '';
    /*絶対配置でキラッと光るの位置を決める*/
	position: absolute;
	top: 0;
	left: -75%;
    /*キラッと光る形状*/
    width: 50%;
	height: 100%;
	background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.3) 100%);
	transform: skewX(-25deg);
}

/*hoverした際の移動のアニメーション*/
.btn01:hover::before {
	animation: shine 0.7s;
}
@keyframes shine {
	100% {
		left: 125%;
	}
}


.box4 {
	width: 95%;
	margin: 50px auto;
	padding: 20px;
	color: #ffffff;
	text-align: center;
	background-color: #334ca9;
}
.box4 .box4_01 {
	font-size: 18px;
	font-weight: bold;
}
@media (min-width: 768px) {
.box4 {
	width: 80%;
}
.box4 .box4_01 {
	font-size: 30px;
	font-weight: bold;
}
}


#box5 {
	line-height: 1.7;
	padding-bottom: 10%;
	margin-top: 10%;
	background-color: #feb6bc;
}
dl.box5_1 {
	background-color: #fde8eb;
	border-radius:10px;
	margin-right: 3%;
	margin-bottom: 2%;
	margin-left: 3%;
}
.box5_1 dt {
	padding-left: 2.5em;
	padding-right: 10px;
	text-indent: -2em;
	font-weight: bold;
	padding-top: 20px;
	color: #cf4764;
}
.box5_1 dt span {
	color: #cf4764;
}
.box5_1 dd {
	padding-right: 10px;
	padding-left: 2.5em;
	padding-bottom: 20px;
	text-indent: -2em;
	padding-top: 2%;
}
.box5_1 dd img {
	width: 100%;
}
.box5_1 ul {
	list-style-type: none;
	padding-top: 4%;
}
.box5_1 li {
	padding-left: 30px;
	list-style-type: square;
	margin-left: 5%;
}
@media (min-width: 768px) {
dl.box5_1 {
	background-color: #fde8eb;
	margin-right: 2%;
	margin-bottom: 2%;
	margin-left: 2%;
}	
.box5_1 dt {
	padding-left: 3em;
	padding-right: 20px;
	text-indent: -2em;
	font-weight: bold;
	padding-top: 40px;
	font-size: 18px;
}
.box5_1 dd {
	padding-right: 20px;
	padding-left: 3.4em;
	padding-bottom: 40px;
	text-indent: -2em;
	padding-top: 20px;
}
.box5_1 dd img {
	width: 650px;

}
}


#tlink {
	margin-top: 30px;
	margin-right: 10px;
	margin-left: 10px;
	margin-bottom: 30px;
	font-size: 14px;
}
#tlink ul {
	text-align: center;
}
#tlink ul li {
	background-color: #f3eee3;
	margin-top: 5px;
	margin-bottom: 5px;
	list-style-type: none;
	background-image: url(../image/arrow.png);
	background-repeat: no-repeat;
	background-position: right center;
}
#tlink li a {
	display: block;
	text-decoration: none;
	color: #333;
	padding-top: 5px;
	padding-bottom: 5px;
}
@media (min-width: 768px) {
#tlink ul li {
	background-color: #ffffff;
	display: inline-block;
	background-image: none;
}
#tlink li a {
	text-decoration: underline;
	padding-right: 10px;
	padding-left: 10px;
	display: block;
}
}


#footer {
	text-align: right;
	line-height: 1.3;
	font-size: 14px;
	padding-top: 20px;
	padding-bottom: 20px;
	padding-right: 10px;
	border-top-width: 2px;
	border-top-style: solid;
	border-top-color: #E6DCC4;
	background-color: #FFFFFF;
}

#wrap_footer {
	width: 100%;
}
@media (min-width: 768px) {
	#wrap_footer {
	max-width: 1200px;
	margin-right: auto;
	margin-left: auto;
	}
}


.title {
    font-size: 2rem;
    line-height: 1.5;
    padding-top: 3rem;
}
.title::after {
    content: '';
    display: block;
    height: 5px;
    width: 10rem;
    background: #d0bea2;
    margin: 2rem 0 2.5rem;
}
.title-center {
    text-align: center;
}
.title-center::after {
    margin: 2.5rem auto;
}


.back_c_gray {
	background-color: #E5E5E5;
	padding-left: 5%;
	padding-top: 20px;
	padding-bottom: 20px;
	line-height: 1.5;
	margin-top: 10px;
	margin-bottom: 20px;
	padding-right: 5%;
}
@media (min-width: 768px) {
.back_c_gray {
	background-color: #E5E5E5;
	padding-left: 5%;
	padding-top: 20px;
	padding-bottom: 20px;
	line-height: 1.5;
	margin-top: 10px;
	margin-bottom: 10px;
	padding-right: 5%;
	margin-right: 100px;
	margin-left: 100px;
}
}


.dl01 dd {
	margin-left: 20px;
	margin-bottom: 15px;
}
.dl01 dd li {
	margin-left: 10px;
	margin-bottom: 5px;
}
.dl01 li {
	list-style-type: none;
	border-bottom-width: 1px;
	border-bottom-style: dotted;
	border-bottom-color: #CCC;
}




table {
    margin: 3.5rem 0;
    width: 100%;
}
th,
td {
    display: block;
}
th {
	background: #f8f6f2;
	vertical-align: middle;
	padding: 1rem;
	text-align: left;
}
td {
    padding: 0.75rem 1.75rem 1.75rem 1.75rem;
}
/** MUST **/
table.inputTable th span.must{
	float: right;
	display: block;
	background-color: transparent;
	background-image: url(../image/pic_must.gif);
	background-repeat: no-repeat;
	background-position: right center;
	margin-top: 0px;
	margin-right: 0;
	margin-left: 0;
}

/* Form */
input[type='text'],
input[type='email'],
input[type='url'],
select,
textarea {
    border: 1px solid #bbb;
    background: #fff;
    padding: .5rem;
    width: 100%;
}
input[type='text']::placeholder,
input[type='email']::placeholder,
input[type='url']::placeholder,
textarea::placeholder {
    color: #bbb;
}
textarea {
    height: 10rem;
}

label {
    display: block;

}

.select-box {
    position: relative;
}
.select-box::after {
    display: inline-block;
    position: absolute;
    top: .625rem;
    right: 1rem;
}

input.reset {
	width: 110px;
	height: 30px;
}
input.send {
	width: 110px;
	height: 30px;
	margin-right: 10px;
}


@media (min-width: 768px) {
    tr:nth-child(odd) {
        background: #f8f6f2;
    }
    tr:nth-child(even) th {
        background: #fff;
    }

    th,
    td {
        padding: 1.25rem;
        display: table-cell;
    }
    th {
	width: 30%;
	vertical-align: middle;
    }
    td {
	width: 70%;
    }
    label {
        display: inline-block;
        margin: 0 1.5rem 0 0;
    }
    .select-box {
        width: 40%;
    }
}
