@charset "UTF-8";
@import url('https://fonts.googleapis.com/css?family=Barlow+Semi+Condensed:400,600&display=swap');

.tel { font-family: 'Barlow Semi Condensed', sans-serif; font-weight: 600; letter-spacing: 0.2em;}

/*				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, dialog, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}
sub {
    font-size: 86%;
	vertical-align: baseline;
	position: relative;
	bottom: 0;
}
sup.supText {
	font-size: 86%;
	vertical-align: top;
	position: relative;
	top: 0.2em;
}
sup.supText2 {
	font-size: 86%;
	vertical-align: top;
	position: relative;
	top: -0.2em;
}


main, article, aside, dialog, figure, footer, header, hgroup, nav, section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

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

a {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
  background: transparent;
  color: #079f7a;
  text-decoration: none;
  transition: background 0.3s ease;
}
a:hover { text-decoration: underline;}
a:visited { color: #079f7a;}

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

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

del {
  text-decoration: line-through;
}

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

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

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

input, select {
  vertical-align: middle;
}

.clearfix:before, .clearfix:after {
  content: "";
  display: table;
}

.clearfix:after {
  clear: both;
}

.clearfix {
  zoom: 1;
}

.inline-block { display: inline-block;}
/*div:before, div:after, ul:before, ul:after, dl:before, dl:after, dd:before, dd:after {
  content: "";
  display: table;
}

div:after, ul:after, dl:after, dd:after {
  clear: both;
}

div, ul, dl, dd {
  zoom: 1;
}
*/
h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
}

li {
  list-style: none;
}

img { vertical-align:top;}

body {
	font-family:"メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
	font-size: 18px;
	line-height: 1.5;
	color: #424242;
}
.sp { display: none;}
.inner_w { width:1120px; margin-left:auto; margin-right:auto; position: relative; max-width: 92%; }
.inner { width:1040px; margin-left:auto; margin-right:auto; position: relative; max-width: 92%;}
img { max-width: 100%;}
p { margin-top:1em;}

@keyframes flash {
	 0% { opacity: 1; }
    10% { opacity: 0.6; }
	100% { opacity: 1; }
}
.flash:hover{ animation: flash 1s 1 ease; text-decoration: none;}
#header-top a:hover{ animation: flash 1s 1 ease; text-decoration: none;}

@keyframes bright {
	 0% { filter: brightness(115%); }
	100% { filter: brightness(100%); }
}
.bright:hover{ animation: bright 1s 1 ease; text-decoration: none;}

@keyframes bright2 {
	 0% { filter: brightness(130%); }
	100% { filter: brightness(100%); }
}
.bright2:hover{ animation: bright2 1s 1 ease; text-decoration: none;}

.inline-block {
	display: inline-block;
}

@media only screen and (max-width: 782px) {
	body {font-size: 15px;}
	.pc { display: none;}
	.sp { display: block;}
	span.sp { display: inline;}
	
}
a[name] { margin-top: 3px; display: block;}
header {
    background: #fff;
}
header .flex {
    display: flex;
    justify-content: space-between;
    width: 92%;
    margin: 0 auto;
    height: 70px;
    align-items: center;
}
header .flex ul {
    display: flex;
    font-size: 16px;
}
header .flex ul li { margin-left: 1em;}
header .flex ul a {
    color: #424242;
    position: relative;
    display: block;
    padding-left: 1em;
}
header .flex ul a::before {
    content: "";
    width: 8px;
    height: 8px;
    box-sizing: border-box;
    border-left: #1e9cd8 1px solid;
    border-bottom: #1e9cd8 1px solid;
    transform: rotate( -45deg);
    position: absolute;
    left: 0;
    top: 50%;
    margin-top: -6px;
}

header .logo img {vertical-align: middle;}
header .logo span {font-weight: bold;}

@media only screen and (max-width: 782px) {
    header .flex {
        height: 40px;
    }
    header .logo img { width: 30px;}
    header .logo span { display: none;}
    header .flex ul {
        font-size: 10px;
    }
    header .flex ul li { margin: 0 0.8em;}
    header .flex ul a {
        padding: 0;
    }
    header .flex ul a::before {
        content: "";
        width: 1px;
        height: 8px;
        box-sizing: border-box;
        border-left: #1e9cd8 1px solid;
        transform: none;
        left: -0.8em;
        top: 50%;
        margin-top: -4px;
    }
    header .flex ul li:first-child a::before { display: none;}
    header .flex ul li:last-child { margin-right: 0;}
}

.ami {
    position: relative;
    z-index: 2;
    height: 700px;
}

.ami::before {
    content: "";
    width:100%;
    height: 100%;
    position: absolute;
    z-index: 3;
    background: url("../img/ami.png") repeat center 50%;
    box-sizing: border-box;
    left: 0;
    top:0;
}
.ami::after {
    content: "";
    width:100%;
    height: 100%;
    z-index: 1;
    left: 0;
    top:0;
    background: url("../img/bg_mainimg.png") repeat-x left bottom / 1px 100%;
    position: absolute;
}
.ami .inner { max-width: 80%;}
.ami img {
    position: relative;
    z-index: 4;
}
.mainimg {
    position: absolute;
    background: url("../img/mainimg.jpg") no-repeat center top / auto 100%;
    width:100%;
    height: 100%;
    z-index: 2;
    left: 0;
    top:0;
    transition: opacity 2s ease 0.3s, transform 0.5s ease 0.3s;
}
.preparing .mainimg { opacity: 0; transform: translateX(15px);}
.ami .inner {
    display: flex;
    justify-content: center;
    flex-direction: column;
    height: 100%;
}
.ami h1 {
    /*padding-top: 70px;*/
}
.ami h1 figure {
    position: relative;
}
.ami h1 figure::before {
    content: "";
    position: absolute;
    left: -63px;
    top: 83px;
    width: 570px;
    height: 176px;
    z-index: 3;
    background: url("../img/maru.png") no-repeat center 50% / contain;
    transition: all 0.5s ease;
}
.preparing .ami h1 figure::before {
    transform: scale(1.1);
    opacity: 0;
}
.ami p { margin-top: 80px;}
.ami h1 img { transition: all 0.5s ease; width: 795px; height: auto;}
.ami p img { transition: all 0.5s ease 0.2s;}
.preparing .ami h1 img { opacity: 0; transform: translateX(-15px);}
.preparing .ami p img { opacity: 0; transform: translateX(-15px);}


@media only screen and (max-height: 830px) and ( min-width: 783px) {
    .ami {
        height: calc( 100vh - 130px);
        min-height: 500px;
    }
    .ami h1 img { width: auto; height: 150px;}
    .ami h1 figure::before {
        left: -43px;
        top: 43px;
        width: 400px;
    }
    .ami p { margin: 70px 0 30px;}
    .ami p img { width: auto; height: 180px;}
}

@media only screen and (max-width: 782px) {
    .ami { height: 380px;}
    .ami::after { background-size: 0.5px 100%;}
    .mainimg { background: url( "../img/mainimg_sp.jpg") no-repeat center top / auto 205px;}
    .ami .inner { max-width: 92%; display: block;}
    .ami h1 { padding-top: 25px; text-align: center;}
    .ami h1 img { width: 312px;}
    .preparing .ami h1 img { opacity: 0; transform: none;}
    .ami h1 figure::before { width: 200px;}
    .ami p { margin-top: 50px; text-align: center;}
    .ami p img { width: 334px;}
    .ami h1 figure::before {
        content: "";
        position: absolute;
        left: 50%;
        top: 60px;
        width: 290px;
        height: 176px;
        margin-left: -145px;
    }
}

p.orangeBtn {
    text-align: center;
    margin-top: -50px;
    font-size: 36px;
    letter-spacing: 0.15em;
    position: relative;
    z-index: 5;
    height: 100px;
    line-height: 100px;
    transition: all 0.5s ease;
}
p.orangeBtn a {
    display: inline-block;
    color: #fff;
    font-weight: bold;
    text-align: center;
    height: 100%;
    width: 800px;
    max-width: 90%;
    background: #fb9629;
    border-radius: 10px;
}
p.orangeBtn a:hover { text-decoration: none; animation: bright 1s 1 ease;}

.preparing p.orangeBtn { opacity: 0; transform: translateY(15px);}

@media only screen and (max-width: 782px) {
    p.orangeBtn {
        margin-top: -25px;
        font-size: 18px;
        letter-spacing: 0.1em;
        height: 50px;
        line-height: 50px;
    }
    p.orangeBtn a {
        border-radius: 8px;
    }
}
.h201 {
    font-size: 48px;
    padding: 2em 0 0 0;
    text-align: center;
    letter-spacing: 0.1em;
    margin-bottom: 1.5em;
    font-weight: bold;
}
@media only screen and (max-width: 782px) {
    .h201 {
        font-size: 24px;
        margin-bottom: 1.2em;
    }
}
p.center { text-align: center; line-height: 1.8;}
.small { font-size: 80%;}

.flex1 {
    display: flex;
    justify-content: center;
    margin-top: 2em;
}
.flex1 li {
    border: #f6eed3 10px solid;
    border-radius: 200%;
    width: 180px;
    text-align: center;
    padding: 20px 0;
    font-weight: bold;
    letter-spacing: 0.1em;
    margin: 0 10px;
}
@media only screen and (max-width: 782px) {
    .flex1 { margin: 1em auto 0; flex-wrap: wrap; max-width: 500px;}
    .flex1 li { margin-top: 1em; width: 43%; margin: 5px 2% 0; box-sizing: border-box;}
}

.dl1 {
    margin-top: 2em;
}
.dl1 dt {
    font-size: 34px;
    color: #6b4822;
    font-weight: bold;
    text-align: center;
    position: relative;
    z-index: 2;
    height: 50px;
    line-height: 50px;
    transform: translateY( 25px);
    letter-spacing: 0.1em;
}
.dl1 dt::before, .dl1 dt::after {
    content: "";
    width: calc( 50% - 130px);
    height: 2px;
    top: 50%;
    margin-top: -1px;
    background: #6b4822;
    position: absolute;
    left: 0;
    display: block;
}
.dl1 dt::after { left: auto; right: 0;}
.dl1 dd {
    position: relative;
    z-index: 1;
    background: #fdfcf8;
    border: #6b4822 2px solid;
    border-top: none;
    padding: 65px;
    display: flex;
}
.dl1 dd .left { width: 45%;}
.dl1 dd .center { width: 34%;}
.dl1 dd .right { width: 21%;}

.dl1 h4 {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 1em;
}
.dl1 h4::before {
    content: "●";
    color: #fb9629;
    display: inline-block;
    width: 1.2em;
}
.dl1 ul + h4 { margin-top: 3em;}
.dl1 h4 + ul {  margin-left: 0.5em;}
.note {
    font-size: 80%;
    display: flex;
    flex-direction: row-reverse;
}
@media only screen and (max-width: 782px) {
    .dl1 {
        margin-top: 2em;
        text-align: center;
    }
    .dl1 dt {
        font-size: 17px;
        height: 30px;
        line-height: 30px;
        transform: translateY( 15px);
    }
    .dl1 dt::before, .dl1 dt::after {
        width: calc( 50% - 90px);
    }
    .dl1 dd {
        padding: 4%;
        display: block;
    }
    .dl1 dd .left,
    .dl1 dd .center,
    .dl1 dd .right { width: auto;}

    .dl1 h4 {
        font-size: 16px;
        margin-bottom: 0.8em;
    }
    
    .dl1 ul + h4,
    .dl1 h4:first-child { margin-top: 2em;}
    .dl1 .left h4:first-child { margin-top: 1em;}
    .dl1 h4 + ul {  margin-left: 0.5em;}
    .note { display: block; text-align: center;}
}
section.about { margin-top: 100px;}
.bg_lightblue {
    background: #eef7fb;
    padding-bottom: 3em;
}
.bg_lightblue h2 {
    color: #0e4e6b;
}

.black { color: #000; letter-spacing: 0.05em; margin-top: 0.5em;}
.red { color: #d90000;}
.large.center { font-size: 48px; font-weight: bold; letter-spacing: 0.1em; line-height: 1.3;}
.large .red { font-size: 115%;}

@media only screen and (max-width: 782px) {
    section.about { margin-top: 50px;}
    .bg_lightblue {
        padding-bottom: 3em;
    }
    .center.sp_left { text-align: left;}
    .large.center { font-size: 30px; line-height: 1.3;}

}

.graph {
    margin: 1em auto 50px;
    width: 80%;
    background: #fff;
    padding: 2em 2em 0.5em;
}

.graph-inner {
    display: flex;
    justify-content: space-between;
    padding-bottom: 15px;
}
.graph-inner canvas { max-width: calc(100% - 120px);}
.graph-pic {
    display: flex;
    align-items: center;
    margin-left: 10px;
    width: 100px;
}
@media only screen and (max-width: 782px) {
    .graph {
        width: auto;
        margin-bottom: 20px;
        padding: 2em 4% 0.5em;
    }
    .graph-inner canvas { max-width: calc(100% - 70px);}
    .graph-pic {
        margin-left: 5px;
        width: 60px;
    }
}

section.flow,
section.comp,
section.faq { padding-bottom: 150px;}
@media only screen and (max-width: 1200px) {
    section.flow .inner_w { width: 100%; max-width: 100%;}
}
.steps {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: -2em;
}
.step {
    width: 250px;
    background: #343434;
    position: relative;
    border-radius: 10px;
    padding: 25px 25px 50px;
    box-sizing: border-box;
    color: #fff;
    font-size: 16px;
    margin: 2em 15px 0;
}
.step::after {
    content: "";
    width: 30px;
    height: 30px;
    border: transparent 15px solid;
    border-left: #343434 15px solid;
    position: absolute;
    right: -30px;
    top: 50%;
    margin-top: -15px;
    box-sizing: border-box;
}
.step:last-child::after { display: none;}
.step dt { text-align: center;}
.step h3 {
    height: 130px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-size: 20px;
    font-weight: bold;
}
section.flow .note { margin-top: 3em;}

@media only screen and (max-width: 782px) {
    section.flow,
    section.comp,
    section.faq { padding-bottom: 80px;}
    section.flow .inner_w { width: 92%; max-width: 92%;}
    .steps {
        display: block;
        margin-top: 0;
    }
    .step {
        width: auto;
        border-radius: 10px;
        padding: 20px 4% 20px;
        box-sizing: border-box;
        color: #fff;
        font-size: 14px;
        margin: 2em 0 0;
    }
    .step::after {
        content: "";
        width: 30px;
        height: 30px;
        border: transparent 15px solid;
        border-top: #343434 15px solid;
        right: auto;
        top: auto;
        bottom: -30px;
        left: 50%;
        margin: 0 0 0 -15px;
    }
    .step dt { text-align: center;}
    .step dt img { width: 50px;}
    .step h3 {
        height: auto;
        display: block;
        font-size: 16px;
        padding: 0.5em 0;
        
    }
    .step dd figure { text-align: center;}
    .step dd figure img { width: 200px;}
    
    section.flow .note { margin-top: 2em;}
}


.comp {
    margin-top: -50px;
    padding-top: 50px;
}
.comp table {
    width: 100%;
    background: #fff;
    font-size: 90%;
    line-height: 1.4;
    table-layout: fixed;
}
.comp table thead th { width: calc(25% - 40px);}
/*.comp table thead th:first-child { width: 160px;}*/



.comp table thead th {
    /*background: #0e4e6b;*/
    background: #eef7fa;
    color: #fff;
    text-align: center;
    font-weight: bold;
    padding: 0.8em 0;
    vertical-align: middle;
    border-right: #fff 1px solid;
}
.comp table thead th.nex{background: #FF9800;}
.comp table thead th.zoom{background: #2c88f6;}
.comp table thead th.youtube{background: #cc0202;}
.comp table thead th.teams{background: #484eb5;}


.comp table tbody {
    text-align: center;
}
.comp table tbody th {
    color: #424242;
    font-weight: bold;
    padding: 1em 0;
    vertical-align: middle;
    
    border-right: #eee 1px solid;
}
.comp table tbody td {
    padding: 0.8em 0.5em;
    vertical-align: middle;
    border-right: #eee 1px solid; 
}
.comp table tbody tr:nth-child(2n) * { background-color:#FDF8EC;}
.comp table tbody tr:nth-child(2n + 1) * { border-right: #f0f0f0 1px solid;}
.comp table tr *:last-child { border-right: none !important;}


@media only screen and (max-width: 782px) {
    .comp {
        margin-top: -25px;
        padding-top: 25px;
    }
    .comp table { font-size: 10px;}
    .comp table thead th { width: calc(25% - 16px);}
    .comp table thead th:first-child { width: 64px;}

}
.faq dl {
    padding: 2em 0;
    border-bottom: #a6a6a6 1px dashed;
}
.faq dl:first-of-type { padding-top: 0;}
.faq dl dt {
    font-size: 143%;
    line-height: 1.5;
    padding: 0 1em 0.5em 45px;
    background: url("../img/Q@2x.png") no-repeat left 0.1em / 27px auto;
}
.faq dl dd {
    padding: 0 1em 0.5em 45px;
    background: url("../img/A@2x.png") no-repeat left top / 25px auto;
}
@media only screen and (max-width: 782px) {
    .faq dl {
        padding: 1.5em 0;
        border-bottom: #a6a6a6 1px dashed;
    }
    .faq dl:first-of-type { padding-top: 0;}
    .faq dl dt {
        font-size: 120%;
        line-height: 1.5;
        padding: 0 0 0.5em 25px;
        background-position: left 0.2em;
        background-size: 17px auto;
    }
    .faq dl dd {
        padding: 0 0 0.5em 25px;
        background-size: 17px auto;
    }
}

.contact .h201 {
    padding-top: 240px;
    margin-bottom: 0;
    background: url( "../img/icon_phone@2x.png") no-repeat center 100px / 107px auto;
}

.contact p.tel { margin-top: 0.2em;}
.contact .tel a {
    font-weight: bold;
    font-size: 72px;
    color: #0e4e6b;
    pointer-events: none;
}
.contact p.tel + p { font-weight: bold;}

@media only screen and (max-width: 782px) {
    .contact .h201 {
        padding-top: 120px;
        margin-bottom: 0;
        background: url( "../img/icon_phone@2x.png") no-repeat center 50px / 53px auto;
    }

    .contact p.tel { margin-top: 0.2em;}
    .contact .tel a {
        font-size: 36px;
        pointer-events: auto;
    }
}

#footer {
    background: #000;
    position: relative;
    margin-top: 100px;
}
#footer .inner_w {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 80px;
    width: 92%;
}
#pagetop {
    display: block;
    width: 80px;
    height: 80px;
    background: #1e9cd8;
    position: fixed;
    right: 0;
    bottom: -80px;
    z-index: 11;
    transition: bottom 0.5s ease;
}
#pagetop::after {
    content: "";
    border-left: #fff 2px solid;
    border-top: #fff 2px solid;
    width: 20px;
    height: 20px;
    transform: rotate(45deg);
    position: absolute;
    left: 30px;
    top:35px;
}

.show-pagetop #pagetop {
    bottom: 0;
}
.relative-pagetop.show-pagetop #pagetop {
    position: absolute;
    bottom: auto;
    top: -40px;
}

#footer .logo img {
    width: 60px;
}
#footer p { margin: 0 50px 0 0; padding: 0; color: #ccc; font-size: 86%;}
@media only screen and (max-width: 782px) {
    #footer { margin-top:50px; text-align: center;}
    #footer .inner_w {
        display: block;
        height: auto;
        padding: 1em 0;
    }
    #pagetop {
        width: 50px;
        height: 50px;
        bottom: -50px;
        z-index: 5;
    }
    #pagetop::after {
        content: "";
        border-left: #fff 1px solid;
        border-top: #fff 1px solid;
        width: 12px;
        height: 12px;
        transform: rotate(45deg);
        position: absolute;
        left: 19px;
        top:23px;
    }
    
    .show-pagetop #pagetop {
        bottom: 0;
    }
    .relative-pagetop.show-pagetop #pagetop {
        position: absolute;
        top: -25px;
        bottom: auto;
    }
    #footer .logo img {
        width: 40px;
    }
    #footer p { margin: 1em 0 0 0; font-size: 10px;}
}

