@charset 'utf-8';
@import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500;700&family=Noto+Sans+JP:wght@400;500;700;900&display=swap');


/*reset*/
/*******************************************************************/
a { color: #222; transition: all .2s ease-out; text-decoration: none;}
a:hover { filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60); opacity: 0.6;}
*:focus { outline: none;}


/*LAYOUT*/
/*******************************************************************/
html { font-size: 62.5%;}
body { -webkit-text-size-adjust: 100%; -webkit-overflow-scrolling: touch; height: 100%; font-family: 'Noto Sans JP', sans-serif; font-size: 1.6rem; line-height: 1.4; color: #222;}
#container { width: 100%; overflow: hidden;}
i, time { font-family: 'Jost', sans-serif; font-style: normal; line-height: 1;}
.form-control::placeholder {
    color: #CCCCCC;
}
.container { padding-right: 30px; padding-left: 30px;}
@media (min-width: 576px) { .container, .container-sm { max-width: initial;}}
@media (min-width: 768px) { .container, .container-sm, .container-md { max-width: initial;}}
@media (min-width: 992px) { .container, .container-sm, .container-md, .container-lg { max-width: initial;}}
@media (min-width: 1200px) { .container, .container-sm, .container-md, .container-lg, .container-xl { max-width: 1030px;}}


/*HEADER*/
/*******************************************************************/
#header { position: absolute; top: 0; left: 0; width: 100%; padding: 0 1em; z-index: 10001;}
.headercontent { display: flex; justify-content: space-between; align-items: center; width: 100%; max-width: 1600px; height: 80px; margin: 0 auto;}
#header.fixed { position: fixed; background: #FFF;}
.logo { padding: 0 0 0 40px; background: url("../img/logo.svg") left center no-repeat; font-family: 'Jost', sans-serif; font-size: 2.5rem; font-weight: 500;}
#nav .nav-link.contactbtn { display: block; padding: 16px 24px; background: #45B7FF; border-radius: 40px; font-weight: 700; color: #FFF;}
#nav .nav-link.contactbtn:hover { background: #3691CB;}
@media screen and (min-width: 992px) {
#nav ul { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none;}
#nav li a { display: block; padding: 16px 24px; border-radius: 40px; font-size: 1.5rem; font-weight: 500;}
#nav li a:hover { background: #EDF0F8; opacity: 1;}
#open { display: none;}
}


/*FOOTER*/
/*******************************************************************/
#footer { position: relative; padding: 100px 20%; background: #FFFFFF; z-index: 100;}
#footer ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 40px; padding: 0; font-size: 1.5rem; font-weight: 500; list-style: none;}
#footer ul.sub, #footer p { font-size: 1.4rem;}
#footer ul.sub a { color: #717A83;}
#floating { position: fixed; bottom: 0; right: 16px; z-index: 50;}


/*CONTENTS*/
/*******************************************************************/
article { position: relative; padding: 100px 0;}
article header { margin-bottom: 56px; text-align: center; margin-bottom: 40px;}
article header h2 { font-size: 3.6rem; font-weight: 900;}
article header i { display: block; margin-top: 10px; font-size: 2rem; font-weight: 500; font-style: normal; color: #3B7EF0;}
section + section { margin-top: 100px;}
section p { line-height: 1.8;}
img { max-width: 100%;}
.bg { background: #F3F9FD;}
.btnbox { position: relative; max-width: 400px; margin: 4em auto 0;}
.btn { position: relative; display: block; width: 100%; padding-top: calc(100 / 522 * 100%); margin: 0 auto; text-align: center; background: #F48C5E; border-radius: 5px; font-size: 2.2rem; font-weight: 700; color: #FFF; white-space: nowrap; overflow: hidden; transition: all .2s ease-out;}
.btn span { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); display: flex; align-items: center; gap: 8px;}
.btn::before { content: ''; position: absolute; top: 50%; right: 24px; transform: rotate(45deg) translateX(-50%); width: 16px; height: 16px; border-top: 4px solid #FFF; border-right: 4px solid #FFF;}
.btn:hover { color: #FFF;}
@keyframes shiny { 0% { left: -20%;} 10% { left: 120%;} 100% { left: 120%;}}
.btn::after { content: ''; position: absolute; top: -10%; left: -20%; width: 40px; height: 100%; transform: scale(2) rotate(20deg); background-image: linear-gradient(100deg, rgba(255, 255, 255, 0) 10%, rgba(255, 255, 255, .5) 100%, rgba(255, 255, 255, 0) 0%); animation-name: shiny; animation-duration: 3s; animation-timing-function: ease-in-out; animation-iteration-count: infinite;}
.fs18 { font-size: 1.8rem;}
.medium { font-weight: 500;}
.sp { display: none;}
.fadeInUp{ animation-name: fadeInUp;}
@keyframes fadeInUp { from { opacity: 0; transform: translate3d(0, 40px, 0);} to { opacity: 1; transform: translate3d(0, 0, 0);}}
.animated { opacity: 0; animation-duration: 0.7s; animation-delay: 0.2s; animation-fill-mode: both;}

#mv { max-width: 1600px; margin: 0 auto; padding: 0; display: flex; flex-direction: row-reverse; align-items: center;}
#mv figure { width: 59%; margin: 0; text-align: right;}
#mv section { flex: 1; display: flex; flex-direction: column; align-items: center; margin: 5% 2% 1% 5%;}
#mv h1 { font-size: clamp(2.7rem, 2.7vw, 5.4rem); font-weight: 900;}
#mv h1 span { font-size: clamp(3.8rem, 3.6vw, 7.2rem);}
#mv h1 strong { font-size: clamp(3.4rem, 3.4vw, 6rem); letter-spacing: -0.05em;}
#mv p { margin: 1em 0; font-size: clamp(1.4rem, 0.9vw, 1.6rem); font-weight: 500;}
.mvbtn { max-width: 400px; text-align: center;}
.mvbtn > span { display: block; margin-bottom: 4px; font-size: clamp(1.6rem, 1.3vw, 2.5rem); font-weight: 700; color: #E36D39; white-space: nowrap;}
.mvbtn .btnbox { margin: 0;}
.mvbtn .btn { font-size: clamp(1.6rem, 1.6vw, 2.5rem);}

#feature { background: #EDF0F8;}
#feature .container { position: relative;}
#feature .container::before { content: ''; position: absolute; top: 0; left: 0; width: 100vw; height: 100%; background: #FFF; z-index: 0;}
#feature .container::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 0; border-style: solid; border-width: 298px 0 0 298px; border-color: transparent transparent transparent #cae389; z-index: 1;}
#feature .container .row { position: relative; z-index: 2;}
#feature .container .row > * { padding-top: 16px; padding-bottom: 16px;}
#feature .container figure { margin-top: -64px;}
.balloon { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; font-size: 3rem; font-weight: 900;}
.balloon span { position: relative; display: flex; justify-content: center; align-items: center; min-width: 80px; height: 80px;  background: #FCCE66; border-radius: 50%; font-size: 1.8rem; font-weight: 900;}
.balloon span::after { content: ''; position: absolute; top: 50%; right: -14px; transform: translateY(-50%); width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 16px; border-color: transparent transparent transparent #fccf66;}
.ribbon { position: relative; display: inline-block; height: 40px; margin: 24px 0 16px; padding: 0 32px 0 24px; background-color: #0D497D; font-size: 1.8rem; font-weight: 700; line-height: 40px; color: #FFF;}
.ribbon::after { content: ''; position: absolute; top: 0; right: 0; width: 0; height: 0; border-style: solid; border-width: 20px 16px 20px 0; border-color: transparent #ffffff transparent transparent;}
.dot li { position: relative; padding-left: 24px; font-size: 1.6rem; font-weight: 700; color: #0D497D;}
.dot li:not(:first-of-type) { margin-top: 8px;}
.dot li::before { content: ''; position: absolute; top: calc(0.5em - 3px); left: 0; display: block; width: 13px; height: 13px; background: #3A6BEA; border-radius: 50%;}
#feature .container:nth-of-type(2)::before { left: auto; right: 0;}
#feature .container:nth-of-type(2)::after { left: auto; right: 0; border-width: 0 0 298px 298px; border-color: transparent transparent #cae389 transparent;}
#feature .container:nth-of-type(2) figure { margin-top: 0; margin-right: -116px;}
#feature .container:nth-of-type(3)::before { width: 100%;}
#feature .container:nth-of-type(3)::after { bottom: auto; top: 0; border-width: 298px 298px 0 0; border-color: #cae389 transparent transparent transparent;}
.option h3 { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin: 16px 0; font-size: 2rem; font-weight: 700; color: #3A6BEA;}
.option h3 span { display: inline-block; padding: 8px 16px; background: #D9DEEA; border-radius: 40px; font-size: 1.4rem; color: #3A6BEA;}

#function { background: #0D497D;}
.serif { display: flex; justify-content: center; gap: 8px; font-size: 4.2rem; font-weight: 900; color: #FFF;}
.serif::before, .serif::after { content: ''; width: 47px; height: 60px; margin-top: 4px; background: url("../img/serif.svg") center no-repeat;}
.serif::before { transform: scaleX(-1);}
.serif .underline { padding-bottom: 4px; border-bottom: 4px solid #C9E389;}
.function .row { gap: 24px;}
.function .row > * { min-width: 300px; max-width: 300px; height: 300px; background: #FFF; border-radius: 50%; overflow: hidden;}
.function h3 { padding: 24px 16px 16px; background: #B8DE5A; font-size: 2.8rem; font-weight: 900; color: #FFF;}
.function figure { width: 80px; margin: 0 auto;}
.function p { font-weight: 500; line-height: 1.6;}
.functionbox { margin-top: 60px; padding: 40px; background: #0C3F6A; color: #FFF;}
.functionbox h3 { font-size: 1.4rem; font-weight: 700;}
.functionbox .dot li { font-size: 1.4rem; font-weight: 400; color: #FFF;}

#implementing .swiper { overflow: visible;}
#implementing .swiper-wrapper { transition-timing-function: linear;}
#implementing .swiper-slide { display: flex; align-items: center; width: auto; height: auto;}

#case { background: #EDF0F8 url("../img/bg.svg") left bottom no-repeat; background-size: 100% 100%;}
#case .row { gap: 30px 0;}
#case .row > * { display: flex; flex-direction: column;}
#case figure { margin: 0; border-radius: 20px 20px 0 0; overflow: hidden; box-shadow: 0 3px 10px rgba(0,0,0,.04);}
#case .txt { flex: 1; display: flex; flex-direction: column; padding: 24px; background: #FFF; border-radius: 0 0 20px 20px; box-shadow: 0 3px 10px rgba(0,0,0,.04);}
#case .txt h3 { font-size: 1.8rem; font-weight: 700;}
#case .txt .name { margin: 12px 0; font-size: 1.4rem; color: #898989;}
#case .txt p strong { display: inline; background: #F7F746; font-weight: 400;}
.service { display: flex; align-items: center; gap: 8px; margin-top: auto;}
.service img[src*="mail2link"] { width: 20px;}
.service img[src*="lineworks"] { width: 26px;}
.service img[src*="mail2connect"], .service img[src*="mail2login"], .service img[src*="mail2file"] { width: 24px;}
.service img[src*="kintone"] { width: 35px;}
.service img[src*="googlechat"] { width: 23px;}
.service img[src*="git"] { width: 27px;}
.service img[src*="salesforce"] { width: 34px;}

.howto ol { position: relative; display: flex; gap: 50px;}
.howto li { position: relative; flex: 1;}
.howto li::before { content: ''; position: absolute; top: 42px; left: -25px; width: calc(100% + 50px); height: 4px; background: #0D497D; z-index: -2;}
.howto li:nth-child(1)::before, .howto li:nth-child(4)::before { width: calc(50% + 50px);}
.howto li:nth-child(1)::before { left: 50%;}
.howto li .num { display: flex; justify-content: center; align-items: center; width: 86px; height: 87px; margin: 0 auto 16px; background: url("../img/circle.svg"); font-size: 2.4rem; font-weight: 700; font-style: normal; letter-spacing: 0.1em; color: #FFF;}
.howto li figure { position: relative; max-width: 300px; margin: 0 auto;}
.howto li:not(:first-of-type) figure::before { content: ''; position: absolute; top: 50%; left: -34px; transform: translateY(-50%); width: 0; height: 0; border-style: solid; border-width: 20px 0 20px 20px; border-color: transparent transparent transparent #0d497d;}
.howto li img { border: 1px solid #DDDDDD;}
.howto li h3 { margin: 16px 0 8px; font-size: 2rem; font-weight: 700; color: #0D497D;}
.howtobox { margin-top: 60px; padding: 80px; background: #F4F6FB;}
.howtobox h3 { font-size: 3rem; font-weight: 700; color: #0D497D;}
.howtobox .in { padding: 24px; background: #FFF; border: 1px solid #D9DEEA;}
.howtobox .in ul { display: grid; grid-template-columns: repeat(2,1fr); gap: 24px; margin: 0; padding: 0; list-style: none;}
.howtobox .in h4 { font-size: 1.6rem; font-weight: 700;}
.howtobox .in p { margin: 8px 0 0; font-size: 1.4rem; line-height: 1.6;}

.faq > ul { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 5%;}
.faq > ul > li { padding: 40px 0; border-bottom: 1px solid #AEB5C9;}
.faq .que { position: relative; padding: 8px 0 8px 60px; font-size: 1.6rem; font-weight: 700;}
.faq .que::before { content: 'Q'; position: absolute; top: 0; left: 0; display: flex; justify-content: center; align-items: center; width: 46px; height: 46px; background: #0D497D; border-radius: 50%; font-family: 'Jost', sans-serif; font-size: 2rem; font-weight: 500; color: #FFF;}
.faq .ans { position: relative; margin-top: 16px; padding: 8px 0 8px 60px; font-size: 1.6rem; line-height: 1.6;}
.faq .ans p { line-height: 1.6;}
.faq .ans::before { content: 'A'; position: absolute; top: 0; left: 0; display: flex; justify-content: center; align-items: center; width: 46px; height: 46px; background: #3B7EF0; border-radius: 50%; font-family: 'Jost', sans-serif; font-size: 2rem; font-weight: 500; color: #FFF;}
.faq .ans .dot li { font-weight: 400; color: #222;}
.faq .ans .dot li:not(:first-of-type) { margin-top: 0;}

#plan { background: #F4F6FB;}
.plan { max-width: 900px;}
.plan table { width: 100%; border-collapse: collapse; margin-bottom: 16px; text-align: center; background: #FFF; font-size: 2rem; font-weight: 700;}
.plan tr { border-top: 1px solid #AEB5C9;}
.plan th, .plan td { padding: 16px;}
.plan thead th { border-left: 1px solid #AEB5C9;}
.plan thead th { background: #0D497D; font-size: 2.4rem; color: #FFF;}
.plan tbody th { text-align: left; background: #D9DEEA;}
.plan td { border-left: 1px solid #AEB5C9; line-height: 1.2;}
.plan td .marker { display: inline; background: #F7F746; font-size: 1.6rem;}
.plan td .marker span { font-size: 4.2rem;}
.plan td .min { font-size: 1.4rem; font-weight: 400;}
.notice { font-size: 1.4rem; line-height: 1.4;}

#contact { background: #0D497D url("../img/bg2.svg") left bottom no-repeat; background-size: 100% 100%; color: #FFF; z-index: 100;}
#contact header i { color: #FFF;}
#contact video { width: 100%;}
#contact label { font-size: 1.6rem;}
.form-control { height: auto; padding: 1rem; font-size: 16px;}
textarea.form-control { min-height: 220px;}
.must { padding: 2px 4px; background: #F72020; font-size: 1.2rem; font-weight: 700; color: #FFF;}
#contact .btn:hover { background: #F8B99E;}
#contact .btn span { padding-right: 24px;}
#contact .btn img { margin-top: 4px;}

#company { background: #F4F6FB; z-index: 100;}
#company table { width: 100%; border-collapse: collapse; border-top: 1px solid #AEB5C9; font-size: 1.4rem;}
#company tr { border-bottom: 1px solid #AEB5C9;}
#company th { padding: 16px 16px 16px 0; font-weight: 400; color: #898989;}
#company td { padding: 16px 0;}
#company td a { color: #3B7EF0;}
#company .map iframe { height: 100%; min-height: 350px;}





@media only screen and (max-width: 1480px){
#mv { margin-top: 60px;}
}





@media only screen and (max-width: 991px){
#header { padding: 0 25px 0 25px;}
.logo { padding: 0 0 0 40px;}
#nav .nav-link.contactbtn { margin-top: 8px;}
#nav { pointer-events: none; opacity: 0; position: fixed; top: 0; right: 0; transform: translateX(100%); display: flex; flex-direction: column; justify-content: center; align-items: center; min-width: 200px; padding: 60px; background: #FFF; border-bottom-left-radius: 30px; box-shadow: 0 0 48px rgba(0,0,0,.15); z-index: 1000; transition: .4s cubic-bezier(.645,.045,.355,1);}
#nav ul { display: flex; flex-direction: column; grid-gap: 4px; margin: 0; padding: 0; line-height: 1; list-style: none;}
#nav li { opacity: 0; transform: translateY(-10px); transition: .6s cubic-bezier(.19,1,.22,1);}
#nav li a { display: block; padding: 16px 24px; border-radius: 40px; font-size: 1.6rem; font-weight: 500;}
#nav li a:hover { background: #EDF0F8; opacity: 1;}
#nav li:nth-of-type(1) { transition-delay: .24s;}
#nav li:nth-of-type(2) { transition-delay: .32s;}
#nav li:nth-of-type(3) { transition-delay: .40s;}
#nav li:nth-of-type(4) { transition-delay: .48s;}
#nav li:nth-of-type(5) { transition-delay: .56s;}
#nav li:nth-of-type(6) { transition-delay: .64s;}
#open { pointer-events: auto; display: flex; align-items: center; cursor: pointer; z-index: 2000;}
#open div { position: relative; width: 40px; height: 40px;}
#open span { position: absolute; left: 8px; display: block; width: 24px; height: 2px; background: #0D497D; transition: .2s linear;}
#open span:nth-child(1) { top: 13px;}
#open span:nth-child(2) { top: 19px;}
#open span:nth-child(3) { top: 25px;}
.open #nav { pointer-events: auto; transform: translateY(0); opacity: 1; transition: opacity .4s cubic-bezier(.23,1,.32,1) .1s, transform 1s cubic-bezier(.23,1,.32,1) .0s;}
.open #nav li { opacity: 1; transform: translateY(0);}
.open #open span:nth-child(1) { top: 19px; transform: rotate(45deg);}
.open #open span:nth-child(2) { width: 0;}
.open #open span:nth-child(3) { top: 19px; transform: rotate(-45deg);}

#footer { padding: 64px 0;}
#footer ul { gap: 0 8px;}
#floating { width: 80px;}

article { position: relative; padding: 64px 0;}
article header { margin-bottom: 24px;}
article header h2 { font-size: 2.4rem;}
section + section { margin-top: 64px;}
.btn { font-size: clamp(1.6rem, 2.2vw, 2.2rem)!important; white-space: nowrap;}
.btn::before { right: 16px; width: 12px; height: 12px; border-width: 3px;}
.fs18 { font-size: 1.6rem;}

#mv { flex-direction: column;}
#mv figure { width: auto; max-width: 600px; margin: 0 -10% 0 -15%;}
#mv section { max-width: 552px; margin: 2em 0;}
.mvbtn span { font-size: 2rem;}
.mvbtn .btnbox { margin: 0;}

#feature .container { width: auto; margin: 0 15px 40px; background: #FFF; border-radius: 20px;}
#feature .container::before { display: none;}
#feature .container::after { border-width: 100px 0 0 100px;}
#feature .container figure { margin-top: -32px;}
.balloon { font-size: 2.4rem;}
.balloon span { min-width: 70px; height: 70px; font-size: 1.5rem;}
.ribbon { font-size: 1.6rem;}
.dot li { font-size: 1.6rem;}
#feature .container:nth-of-type(2)::after { border-width: 0 0 100px 100px;}
#feature .container:nth-of-type(2) figure { margin-right: -40px;}
#feature .container:nth-of-type(3)::after { border-width: 100px 100px 0 0;}
.option h3 { font-size: 1.8rem;}
.option h3 span { font-size: 1.2rem;}

.serif { gap: 4px; font-size: 2.8rem;}
.serif::before, .serif::after { width: 32px; background-size: 100% 100%;}
.serif .underline { padding-bottom: 0; border-bottom: none;}

.function .row > * { min-width: 320px; max-width: 320px; height: 320px;}
.function h3 { padding: 24px 16px; font-size: 2.8rem;}
.function figure { width: 80px; margin: 0 auto;}
.functionbox { width: auto; margin: 30px; padding: 24px; border-radius: 20px;}

#case .row { gap: 24px 0;}

.howto ol { flex-direction: column; gap: 50px; max-width: 300px; margin: 0 auto;}
.howto li::before { display: none;}
.howto li:not(:first-of-type) figure::before { display: none;}
.howto li:not(:first-of-type)::after { content: ''; position: absolute; top: -40px; left: 50%; transform: translateX(-50%); display: block; width: 0; height: 0; border-style: solid; border-width: 16px 20px 0 20px; border-color: #0d497d transparent transparent transparent;}
.howto li h3 { font-size: 2rem;}
.howtobox { padding: 40px 24px;}
.howtobox h3 { font-size: 2.4rem;}
.howtobox .in { padding: 40px;}
.howtobox .in ul { grid-template-columns: 1fr; gap: 40px;}

.faq > ul { grid-template-columns: 1fr;}
.faq > ul > li { padding: 24px 0;}
.faq .que { padding: 12px 0 12px 60px; font-size: 1.6rem;}
.faq .ans { padding: 12px 0 12px 60px; font-size: 1.6rem;}

#contact label { font-size: 1.6rem;}
}





@media only screen and (max-width: 575px){
.sp { display: block;}
.pc { display: none!important;}
#mv figure { margin: 0 0 0 -9%;}

.plan table { font-size: 1.6rem;}
.plan th, .plan td { padding: 8px 4px;}
.plan thead th { font-size: 1.6rem;}
.plan tbody th { font-size: 1.6rem;}
.plan td .marker { font-size: 2rem;}
.plan td .marker span { font-size: 2.8rem;}
.plan td .min { font-size: 1.4rem;}

#company th { display: block; padding: 16px 0 0;}
#company td { display: block; padding: 4px 0 16px;}
}





@media print {
#container { width: 1024px;}
}
