@charset "utf-8";

/****************************************

    /* CSS Reset

*****************************************/

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    font-size: 100%;
    vertical-align: baseline;
    border: 0;
    outline: 0;
    background: transparent;
    margin: 0;
    padding: 0;
}

body {
    line-height: 1;
}

article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
    display: block;
}

blockquote, q {
    quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content: "";
    content: none;
}

a {
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
    margin: 0;
    padding: 0;
}

ins {
    color: #000;
    text-decoration: none;
    background-color: #ff9;
}

mark {
    color: #000;
    font-style: italic;
    font-weight: bold;
    background-color: #ff9;
}

del {
    text-decoration: line-through;
}

abbr[title], dfn[title] {
    border-bottom: 1px dotted;
    cursor: help;
}

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

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}

input, select, textarea, img, th, td {
    vertical-align: middle;
}

ul, dl, ol {
    list-style: none;
}

/****************************************

    /* 共通設定

*****************************************/

* {
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
         -o-box-sizing: border-box;
        -ms-box-sizing: border-box;
            box-sizing: border-box;
    -webkit-appearance: none;
            appearance: none;
}

body {
    font-family: Meiryo, sans-serif;
    font-size: 16px;
    color: #333;
    line-height: 1.6;
    background: #fff;
    -webkit-text-size-adjust: 100%;
}

@media screen and (max-width: 800px) {

body {
    font-size: 14px;
}

}

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

a {
    color: #333;
    text-decoration: underline;
    transition-duration: .3s;
}

a:hover {
    text-decoration: none;
    transition-duration: .3s;
}

a:hover img {
    -moz-opacity: .5;
    opacity: .5;
    transition-duration: .3s;
}

img, video, object {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
    border: none;
    transition-duration: .3s;
}

button{
    padding: 0;
    border: 0;
}

table {
    table-layout:fixed;
}

table th,
table td {
    vertical-align: middle;
}
.clearfix:after {
    content: "";
    display: block;
    clear: both;
}

.al-r{
    text-align: right;
}
.al-l{
    text-align: left;
}
.al-c{
    text-align: center;
}

section{
    text-align: center;
}

/* ■ Wrap
----------------------------- */

.wrap {
    width: 1000px;
    margin: 0 auto;
    position: relative;
}

.wrap:after {
    content: "";
    display: block;
    clear: both;
}


/* ■ Flexbox
----------------------------- */

.flex {
    display: flex;
    margin: 0 auto;
}

.flex li {
    flex: 1;
    margin: 0 auto;
}

@media screen and (max-width: 800px) {

.flex {
    flex-direction: column;
}

}

/* ■ scrollTop
----------------------------- */

#scrollTop {
    position: fixed;
    bottom: 10px;
    right: 10px;
}

#scrollTop a {
    display: block;
    width: 40px;
    height: 40px;
    color: #fff;
    text-decoration: none;
    background: rgba(0,0,0,.50);
    position: relative;
    border-radius: 20px;
}

#scrollTop a::after {
    display: block;
    content: "";
    width: 8px;
    height: 8px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    margin-top: -3px;
    position: absolute;
    top: 50%;
    left: 15px;
    transform: rotate(-45deg);
    transition-duration: .3s;
}

#scrollTop a:hover {
    text-decoration: none;
    background: rgba(0,0,0,.75);
}

#scrollTop a:hover::after {
    margin-top: -8px;
    transition-duration: .3s;
}


/****************************************

    /* #keyvisual

*****************************************/

#keyvisual {
    background: #010a23;
}

/****************************************

    /* .cta

*****************************************/

.cta {
    background-image: url(images/cta-bg.jpg);
    background-size: cover;
    padding-bottom: 40px;
}
.cta .cta-btn-wrap{
    margin: -110px auto 0;
}

/****************************************

    /* #section01

*****************************************/

#section01 h1{
    background: #010a23;
}
#section01 h2{
    background: url(images/pattern01.jpg) repeat top center;
}

/****************************************

    /* #section02

*****************************************/

#section02 {
    background: url(images/pattern02.jpg) repeat top center;
}

/****************************************

    /* #section03

*****************************************/
#section03{
    position: relative;
}
#section03 h1{
    background: url(images/pattern03.jpg) repeat top left;
}
#section03 span{
    position: absolute;
    top: 8%;
    left: 0;
    right: 0;
    margin: 0 auto;
}
#section03 h2{
    background: url(images/section03-h2-bg.jpg);
    background-size: cover;
}
#section03 p{
    background: url(images/pattern01.jpg) repeat top left;
}
#section03 p img{
    margin-top: -50px;
}

/****************************************

    /* #section04

*****************************************/

#section04 {
    background: url(images/pattern02.jpg) repeat top left;
}

/****************************************

    /* #section05

*****************************************/

#section05 h1 {
    background: url(images/pattern02.jpg) repeat top left;
    border-bottom: 1px #f4f4f4 solid;
}
.section05-wrap{
    background: url(images/pattern03.jpg) repeat top left;
}
#section05 li{
    border-bottom: 1px #f4f4f4 solid;
}
#section05 li:first-of-type{
    background: url(images/section05-li01-bg.png) no-repeat top left;
}
#section05 li:nth-of-type(2){
    background: url(images/section05-li02-bg.png) no-repeat top left;
}
#section05 li:last-of-type{
    background: url(images/section05-li03-bg.png) no-repeat top left;
}

/****************************************

    /* #section06

*****************************************/

#section06 {
    background: url(images/pattern04.jpg) repeat top left;
}

/****************************************

    /* #section07

*****************************************/

#section07 {
    background: url(images/pattern01.jpg) repeat top left;
}
#section07 h1 img {
    margin-top: -25px;
}

#section07 h2 {
    background: url(images/pattern03.jpg) repeat top left;
}
#section07 h2 img {
    margin-top: -25px;
}

/****************************************

    /* #section08

*****************************************/

#section08 {
    background: url(images/section08-bg.png) no-repeat top 0 center / 100% auto #0c0e13;
}
#section08 .wrap{
    text-align: center;
    padding: 65px 0;
}
#section08 .table-wrap{
    width: 85%;
    border: 3px #f4f4f4 solid;
    background: #fff;
    margin: 0 auto;
    padding-bottom: 30px;
}
#section08 table{
    margin: 0 5%;
    width: 90%;
    text-align: left;
}
#section08 table th:first-of-type, 
#section08 table td:first-of-type {
    border-top: 1px #f4f4f4 solid;
}
#section08 table th {
    padding: 30px 0 30px 30px;
    border-bottom: 1px #f4f4f4 solid;
    width: 40%; 
    font-weight: 700;
    vertical-align: top;
}
#section08 table td {
    padding: 30px 30px 30px 0;
    border-bottom: 1px #f4f4f4 solid;
}

/****************************************

    /* #form

*****************************************/

#form {
    background: url(images/form-bg.jpg);
    background-size: cover;
}
#form .wrap{
    text-align: center;
    padding-bottom: 45px;
}
#form .table-wrap{
    width: 85%;
    border: 3px #f4f4f4 solid;
    background: #fff;
    margin: -40px auto 0;
    padding: 30px 0;
}
#form table{
    margin: 0 5%;
    width: 90%;
    text-align: left;
}
#form table th {
    padding: 30px 0 30px 30px;
    border-bottom: 1px #f4f4f4 solid;
    width: 40%; 
    font-weight: 700;
    vertical-align: middle;
    position: relative;
}
#form table td {
    padding: 30px 30px 30px 0;
    border-bottom: 1px #f4f4f4 solid;
}
#form input[type="text"]{
    line-height: 50px;
    width: 100%;
    box-shadow: 0;
    border: 1px solid #ccc; 
    outline: 0;
    padding: 0 15px;
    font-size: 16px;
    border-radius: 3px;
}
#form textarea{
    height: 200px;
    width: 100%;
    border: 1px solid #ccc; 
    outline: 0;
    padding: 15px;
    font-size: 16px;
    border-radius: 3px;
}
#form input::placeholder,
#form textarea::placeholder{
    color: #ccc;
}
#form th .hissu{
    display: inline-block;
    line-height: 20px;
    vertical-align: middle;
    font-size: 14px;
    color: #fff;
    background: #db001b;
    padding: 5px 10px;
    position: absolute;
    right: 30px;
    top: 40px;
}
.btn-wrap{
    padding: 45px 0;
}

/****************************************

    /* #section09

*****************************************/

#section09 {
    background: url(images/pattern04.jpg) repeat top left;
    color: #fff;
}
#section09 .wrap{
    margin-top: 60px;
    padding-bottom: 60px;
}
#section09 .left{
    width: 48%;
    margin-left: 2%;
    float: left;
}
#section09 .right{
    width: 48%;
    margin-right: 2%;
    float: right;
}
#section09 dl{
    text-align: left;
    margin: 30px auto;
    border-bottom: 1px #fff dotted;
}
#section09 .left dl{
    margin-right: 20px;
}
#section09 .right dl{
    margin-left: 20px;
}
#section09 dt{
    font-weight: 700;
    padding: 0 20px 10px;
}
#section09 dd{
    padding: 0 20px 20px;
}

/****************************************

    /* footer

*****************************************/

footer{
    background: #010719;
    color: #fff;
    padding: 20px;
    text-align: center;
    font-size: 12px;
}
footer img{
    margin-bottom: 20px;
}
footer span{
    display: inline-block;
    margin-right: 50px;
}
/* ========================================
    ■ thanks page
======================================== */
#thanks{
    padding: 70px 0 0;
    text-align: center;
}
#thanks .thanks_photo{
    margin: 50px 0;
}
#thanks address{
    margin: 30px 0;
}
#thanks .button{
    display: block;
    width: 475px;
    margin: 100px auto 150px;
}
