@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,600;1,500&family=Barlow:wght@500&family=Noto+Sans+JP:wght@300;500&family=Shippori+Antique&display=swap');


/*reset*/
/*******************************************************************/
html{box-sizing:border-box;overflow-y:scroll;-webkit-text-size-adjust:100%}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0}audio:not([controls]){display:none;height:0}hr{overflow:visible}article,aside,details,figcaption,figure,picture,footer,header,main,menu,nav,section,summary{display:block}summary{display:list-item}small{font-size:80%}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted;text-decoration:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[disabled]{cursor:default}[type=number]{width:auto}[type=search]{-webkit-appearance:textfield}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:0;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input,select,textarea{background-color:transparent;border-style:none;color:inherit}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}img{max-width:100%;height:auto;border-style:none;vertical-align:middle}i{vertical-align:middle}progress{vertical-align:baseline}svg:not(:root){overflow:hidden}audio,canvas,progress,video{display:inline-block}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}::-moz-selection{background-color:#b3d4fc;color:#000;text-shadow:none}::selection{background-color:#b3d4fc;color:#000;text-shadow:none}ul,ol{list-style:none}i{font-style:normal}
a { color: #2B2B2B; text-decoration: none;}
@media screen and (min-width: 768px){ a { transition: .2s ease-out;} 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%; touch-action: manipulation; width: 100%; height: 100%; font-family: 'Noto Sans JP', YuGothic, "游ゴシック", "Yu Gothic", Verdana, Meiryo, sans-serif; font-size: 1.6rem; font-weight: 300; line-height: 1.4; font-feature-settings: "palt"; -webkit-font-smoothing: antialiased; word-break: normal; color: #2B2B2B;}
#container { position: relative; width: 100%; overflow: hidden;}
i, time { font-family: 'Barlow Condensed', sans-serif; font-weight: 600; line-height: 1; letter-spacing: 0.05em;}
h1, h2, h3, h4, h5, strong { font-weight: 500;}


/*HEADER*/
/*******************************************************************/
#header { position: fixed; top: 0; left: 0; display: flex; justify-content: space-between; width: 100%; z-index: 200; transition: .2s ease-out;}
body.home #header:not(.is-fixed) #logo { background: url("../img/common/logo_white.svg") center no-repeat; background-size: contain;}
body.home #header:not(.is-fixed) #logo img { opacity: 0;}
@media screen and (min-width: 1281px), print {
#header { height: 130px;}
#header + * { margin-top: 130px;}
#logo { display: flex; align-items: center; height: 130px; margin-left: 100px; transition: .2s ease-out;}
#logo span { display: inline-block; margin-left: 10px; padding: 5px 10px; background: #090909; font-size: 1.2rem; color: #FFF;}
#nav { margin-left: auto; font-size: 1.4rem; font-weight: 500;}
#nav > ul { display: flex;}
#nav > ul > li:not(:last-child) { display: flex; border-bottom: 1px solid rgba(0,0,0,.5);}
#nav > ul > li:not(:first-child):not(:last-child) { padding-left: 30px;}
#nav > ul > li:nth-last-child(2) { margin-right: 30px;}
#nav > ul > li > a { position: relative; display: flex; align-items: center; height: 80px; color: rgba(0,0,0,.5); z-index: 10;}
#nav > ul > li.on > a { color: #2B2B2B;}
#nav > ul > li > a:hover { opacity: 1;}
#nav > ul > li > a::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: #377EB8; transform: scale(0, 1); transform-origin: right top; transition: transform .3s;}
#nav > ul > li:hover > a::before, #nav > ul > li.on > a::before { transform-origin: left top; transform: scale(1, 1);}
#nav > ul > li.contactbtn a { padding: 0 30px; background: rgba(0,0,0,.5); color: #FFF;}
#nav > ul > li.contactbtn a:hover { background: #377EB8; opacity: 1;}
#nav > ul > li.contactbtn a::before { display: none;}
#nav .plus { display: none;}
.navsecond { pointer-events: none; opacity: 0; position: absolute; top: 80px; right: 0; width: 100%; display: flex!important; justify-content: space-around; align-items: center; transition: 0.2s ease-out;}
.navsecond > ul { display: flex; margin: 0 30px 0 auto;}
.navsecond > ul > li { margin-left: 30px;}
.navsecond > ul > li > a { display: flex; align-items: center; height: 50px;}
.navsecond > .navtitle { display: none;}
.navthird { pointer-events: none; opacity: 0; position: absolute; top: 50px; left: 0; display: flex!important; width: 100%; padding: 15px 0; background: #F7F7F7; box-shadow: 0 1px 2px rgba(0,0,0,.16); z-index: 1; transition: 0.2s ease-out;}
.navthird > ul { margin: 0 30px 0 auto;}
.navthird > ul > li { display: inline-block; margin: 5px 0 5px 20px;}
.navtitle { margin: 5px 50px 5px 200px; white-space: nowrap;}
.navtitle a { display: block; color: #377EB8;}
.navtitle a::before { content: ''; transform: rotate(45deg); display: inline-block; width: 8px; height: 8px; margin-right: 10px; border-top: 1px solid #377EB8; border-right: 1px solid #377EB8;}
#nav > ul > li.on > .navsecond { pointer-events: auto; opacity: 1;}
.navsecond > ul > li:hover .navthird { pointer-events: auto; opacity: 1;}

#header.is-fixed { height: 110px; background: #FFF;}
#header.is-fixed #logo { align-self: flex-start; height: 50px;}
#header.is-fixed #nav > ul > li > a { height: 60px;}
#header.is-fixed #nav > ul > li.contactbtn a { background: #377EB8;}
#header.is-fixed .navsecond { top: 60px; background: #F7F7F7; box-shadow: 0 1px 2px rgba(0,0,0,.16);}
#header.is-fixed .navsecond:hover { background: #FFF;}
#header.is-fixed .navsecond > .navtitle { display: block;}

body.home #header:not(.is-fixed) #nav > ul > li > a { color: rgba(255,255,255,.5);}
body.home #header:not(.is-fixed) #nav > ul > li.on > a { color: #FFF;}
body.home #header:not(.is-fixed) #nav > ul > li > a::before { background: rgba(9,9,9,.5);}
body.home #header:not(.is-fixed) .navsecond > ul > li > a { color: #FFF;}
}


/*FOOTER*/
/*******************************************************************/
#pagetop { position: absolute; top: 0; right: 0; z-index: 10;}
#pagetop a { display: block; width: 80px; height: 80px; background: #090909; color: #FFF;}
#pagetop a::before { content: ''; position: absolute; top: 20px; left: 50%; transform-origin: left top; transform: rotate(45deg); display: block; width: 22px; height: 22px; border-top: 2px solid #FFF; border-left: 2px solid #FFF; transition: .2s ease-out;}
#pagetop a::after { content: ''; position: absolute; bottom: 0; left: calc(50% - 1px); transform-origin: center bottom; display: block; width: 2px; height: 0; background: #377EB8; transition: .2s ease-out;}
#pagetop a i { position: absolute; top: 48px; left: 0; display: block; width: 100%; text-align: center; font-family: 'Barlow', sans-serif; font-size: 1.4rem; font-weight: 500; transition: .2s ease-out;}
#pagetop a:hover { transform: translateY(-10px); background: #FFF; opacity: 1;}
#pagetop a:hover::before { border-color: #377EB8;}
#pagetop a:hover::after { height: 58px;}
#pagetop a:hover i { opacity: 0;}
#footer { position: relative; background: #377EB8; color: #FFF;}
#footer .heading span { color: #D4D4D4;}
#inquiries, #sns { position: relative; max-width: 1080px; margin: 0 auto; padding: 100px 40px;}
#inquiries::after { content: ''; position: absolute; bottom: 0; left: calc(50% - 50vw); width: 100vw; height: 1px; background: #D4D4D4;}
#inquiries .heading, #sns .heading, .heading.vertical { padding-left: 0; text-align: center; color: #FFF;}
#inquiries .heading i, #sns .heading i { color: #FFF;}
#inquiries .heading i::before, #sns .heading i::before { position: relative; top: auto; left: auto; margin: 0 auto 10px; width: 2px; height: 40px; background: #FFF;}
.heading.vertical i::before { position: relative; top: auto; left: auto; margin: 0 auto 10px; width: 2px; height: 40px;}
#inquiries .bannerbtn { justify-content: flex-start;}
.bannerbtn { display: flex; flex-wrap: wrap; justify-content: center; margin: -20px;}
.bannerbtn li { display: flex; width: calc(50% - 40px); margin: 20px;}
.bannerbtn li a { position: relative; display: flex; align-items: center; width: 100%; height: 140px; padding-right: 50px; background: #FFF; font-size: 1.4rem; font-weight: 500; color: #6B6B6B;}
.bannerbtn li a::before { content: ''; width: 140px; height: 140px; margin-right: 40px; background-position: center; background-repeat: no-repeat; border-right: 1px solid #D4D4D4;}
.bannerbtn li a:not([target="_blank"])::after { content: ''; position: absolute; top: calc(50% - 10px); right: 40px; transform-origin: left top; transform: rotate(45deg); display: block; width: 16px; height: 16px; border-top: 2px solid #377EB8; border-right: 2px solid #377EB8; transition: .2s ease-out;}
.bannerbtn li a[target="_blank"]::after { content: ''; position: absolute; top: calc(50% - 10px); right: 40px; width: 20px; height: 20px; background: url("../img/common/blank.svg") center no-repeat;}
.bannerbtn li a strong { display: block; font-size: 2.2rem;}
.bannerbtn li.civil a::before { background-image: url("../img/common/civil.svg");}
.bannerbtn li.archi a::before { background-image: url("../img/common/archi.svg");}
.bannerbtn li.sensing a::before { background-image: url("../img/common/sensing.svg");}
.bannerbtn li.cad a::before { background-image: url("../img/common/cad.svg");}
.bannerbtn li.trial a::before { background-image: url("../img/common/trial.svg");}
.bannerbtn li.request a::before { background-image: url("../img/common/request.svg");}
.bannerbtn li.inquiry a::before { background-image: url("../img/common/inquiry.svg");}
.bannerbtn li.download a::before { background-image: url("../img/common/download.svg");}
.bannerbtn li.demo a::before { background-image: url("../img/common/demo.svg");}
.bannerbtn li.youtube a::before { background-image: url("../img/common/youtube.svg");}
.bannerbtn li.facebook a::before { background-image: url("../img/common/facebook.svg");}
.bannerbtn li a:hover { background: #4D4D4D; color: #FFF; opacity: 1;}
.bannerbtn li a:not([target="_blank"]):hover::after { right: 30px; border-color: #FFF;}
.bannerbtn li a[target="_blank"]:hover::after { background-image: url("../img/common/blank_w.svg");}
.bannerbtn li.civil a:hover::before { background-image: url("../img/common/civil_w.svg");}
.bannerbtn li.archi a:hover::before { background-image: url("../img/common/archi_w.svg");}
.bannerbtn li.sensing a:hover::before { background-image: url("../img/common/sensing_w.svg");}
.bannerbtn li.cad a:hover::before { background-image: url("../img/common/cad_w.svg");}
.bannerbtn li.trial a:hover::before { background-image: url("../img/common/trial_w.svg");}
.bannerbtn li.request a:hover::before { background-image: url("../img/common/request_w.svg");}
.bannerbtn li.inquiry a:hover::before { background-image: url("../img/common/inquiry_w.svg");}
.bannerbtn li.download a:hover::before { background-image: url("../img/common/download_w.svg");}
.bannerbtn li.demo a:hover::before { background-image: url("../img/common/demo_w.svg");}
#sitemap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; max-width: 1080px; margin: 0 auto; padding: 100px 40px; line-height: 1.2;}
#sitemap a { color: #FFF;}
#sitemap .heading { order: -2;}
#sitemap .heading i { color: #FFF;}
#sitemap .heading i::before { background-color: #FFF;}
#sitemap dl { width: calc(50% - 20px); margin-bottom: 50px; border-left: 1px solid #5F97C6;}
#sitemap dt { position: relative; padding: 20px; border-bottom: 1px solid #5F97C6; font-size: 2.4rem; font-weight: 300;}
.plus { position: absolute; top: 50%; right: 0; transform: translateY(-50%); display: block; width: 30px; height: 30px; cursor: pointer;}
.plus::before, .plus::after { content: ''; position: absolute; top: 14px; left: 8px; display: block; width: 15px; height: 2px; background: #FFF; transition: .2s ease-out;}
.plus::before { transform: rotate(90deg);}
.plus::after { transform: rotate(180deg);}
#sitemap dd { display: none; padding-bottom: 20px; border-bottom: 1px solid #5F97C6;}
#sitemap dd li { position: relative; display: flex; align-items: flex-start; font-size: 1.2rem; font-weight: 500;}
#sitemap dd > ul > li > * { flex: 1; margin-top: 20px; margin-left: 20px;}
#sitemap dd > ul > li.sep:not(:first-child) { margin-top: 20px; padding-top: 0; border-top: 1px solid #5F97C6;}
#sitemap dd > ul > li.sep::before { padding-top: 40px; border-top: 1px solid #5F97C6;}
#sitemap dd > ul > li.sep + li.sep { margin-top: 0;}
#sitemap dd > ul > li.sep + li:not(.sep) { border-top: 1px solid #5F97C6;}
#sitemap dd > ul > li ul::after { top: auto; bottom: 0;}
#sitemap dl:not(.on) { order: -1;}
#sitemap dl.on dd { display: block;}
#sitemap dt.on .plus::before { transform: rotate(0deg);}
#sitemap dt.on .plus::after { transform: rotate(0deg);}
#sitemap dd > ul > li ul li { margin-bottom: 20px;}
#info { position: relative; display: flex; justify-content: space-between; align-items: center; max-width: 1080px; margin: 0 auto; padding: 50px 40px; line-height: 1.2;}
#info::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: #4D4D4D; z-index: 0;}
#info .logo { position: relative; z-index: 1;}
#info address { position: relative; margin: 5px 0; font-family: 'Barlow', sans-serif; font-weight: 500; font-size: 1.4rem; letter-spacing: 0.05em; font-style: normal;}
#info address a { color:inherit; text-decoration: none;}


/*CONTENTS*/
/*******************************************************************/
article { position: relative; max-width: 1080px; margin: 0 auto; padding: 100px 40px;}
article header { position: relative; margin-bottom: 50px; text-align: center;}
article header:not(.noborder)::after { content: ''; display: block; width: 40px; height: 2px; margin: 30px auto 0; background: #377EB8;}
article header h2, article header h3 { font-size: 3.2rem; letter-spacing: 0.05em; color: #333;}
article header p { margin-top: 20px; font-size: 2rem; font-weight: 500; color: #2B2B2B;}
article figure + header { margin-top: 40px;}
section { position: relative;}
section + header, section + section { margin-top: 100px;}
section h2 { position: relative; margin-bottom: 30px; font-size: 3.2rem; line-height: 1.6;}
section * + h2 { margin-top: 50px;}
section h3 { position: relative; margin-bottom: 20px; padding-left: 20px; font-size: 2rem; line-height: 1.6;}
section h3.noborder { padding-left: 0;}
section > * + h3 { margin-top: 50px;}
section h3:not(.noborder)::before { content: ''; position: absolute; top: 0.8em; left: 0; width: 12px; height: 2px; background: #377EB8;}
.center h3 { display: inline-block; margin-bottom: 0;}
section h4 { margin-bottom: 15px; font-size: 1.6rem; line-height: 1.6;}
section > * + h4 { margin-top: 30px;}
section table { width: 100%; border-collapse: collapse; border-top: 1px solid #D4D4D4;}
section tr { border-bottom: 1px solid #D4D4D4;}
section th { padding: 24px; text-align: left; vertical-align: middle; background: #F7F7F7; font-weight: 500;}
section th[scope="col"] { text-align: center;}
section th[scope="col"]:not(:first-of-type) { border-left: 1px solid #D4D4D4;}
section th[scope="row"] { width: 28%;}
section td { padding: 24px; background: #FFF; font-size: 1.4rem;}
section td p { margin: 0;}
section thead + tbody th[scope="row"] { background: none;}
section thead + tbody td { border-left: 1px solid #D4D4D4;}
section td table, section td tr { border: none;}
section td th, section td td { padding: 2px 0;}
.bg section th[scope="col"] { background: #FFF;}
.bg section td { background: #F7F7F7;}
section .scroll { width: 100%; text-align: center; white-space: nowrap; overflow-x: auto;}
section figure { position: relative;}
section figcaption { display: block; margin-top: 8px; font-size: 1.4rem;}
section p { margin-top: 15px; margin-bottom: 15px; line-height: 1.9;}
section table, section > ol, section > ul, section figure { margin-top: 20px; margin-bottom: 20px; line-height: 1.9;}
section *:first-child { margin-top: 0;}
section > * ~ *:last-child { margin-bottom: 0;}
section .ul { margin-left: 1.5em; list-style: disc;}
section .ol { margin-left: 1.5em; list-style: decimal;}
section.sep { padding-top: 100px; border-top: 1px solid #D4D4D4;}
.bg::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: #F7F7F7!important; z-index: -1;}
.halfbg::before { content: ''; position: absolute; bottom: 0; left: calc(50% - 50vw); width: 100vw; height: 64%; background: #F7F7F7!important; z-index: -1;}
article.halfbg::before { height: calc(100% - 440px);}
section.halfbg { padding-bottom: 100px;}
.flowbg::before { content: ''; position: absolute; bottom: 0; left: calc(50% - 50vw); width: 100vw; height: calc(100% - 110px); background: #F7F7F7!important; z-index: -1;}
.yellowbg::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: #FFFAD6!important; z-index: -2;}
.whitebg::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: #FFF!important; z-index: -2;}
.whitebg::after { content: ''; position: absolute; top: 100px; right: calc(50% - 50vw); width: 57vw; height: calc(100% - 100px); background: #F7F7F7; z-index: -1;}
.whitebghalf::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 50vw; height: 100%; background: rgba(255,255,255,.9); z-index: -1;}
.whitebgleft::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 56vw; height: 100%; background: #FFF; z-index: -1;}
.whitebgright::before { content: ''; position: absolute; top: 0; right: calc(50% - 50vw); width: 56vw; height: 100%; background: #FFF; z-index: -1;}
.whitebgleft.narrow::before, .whitebgright.narrow::before { width: 41vw;}
.whitebgleft, .whitebgright { padding: 100px 0;}
.greybgleft::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 56vw; height: 100%; background: #F7F7F7; z-index: -1;}
.greybgright::before { content: ''; position: absolute; top: 0; right: calc(50% - 50vw); width: 56vw; height: 100%; background: #F7F7F7; z-index: -1;}
.greybgleft, .greybgright { padding: 56px 0;}
.greybg::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: #F7F7F7!important; z-index: -2;}
.greybg::after { content: ''; position: absolute; top: 100px; right: calc(50% - 50vw); width: 57vw; height: calc(100% - 100px); background: #FFF; z-index: -1;}
.imgbg img { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 1170px; max-width: initial; height: calc(100% - 100px); object-fit: cover; z-index: -1;}
.imgbg.fit { position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
.imgbg.fit img { width: 100%; height: 100%;}
.imgbg.full img { width: 100vw; height: 100%;}
.imgbg.bottom img { object-position: center bottom;}
.imgbg ~ section:last-of-type { margin-bottom: 100px;}
.imgin { width: 50%; padding: 70px 50px;}
.box { margin-bottom: 100px;}
.box::before { content: ''; position: absolute; bottom: 0; left: -100px; width: calc(100% + 200px); height: 100%; background: #F7F7F7; z-index: -1;}
.box header h2 { color: #377EB8;}
article.box + article:not(.box):not(.bg):not(.pt) { padding-top: 0;}
section.box { margin-bottom: 0; padding: 40px 0;}
section.box::before { left: -80px; width: calc(100% + 160px);}
.bordertop::after { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 1px; background: #D4D4D4;}
.center { text-align: center;}
.right { text-align: right;}
.left { text-align: left!important;}
.half { width: 50%;}
.pt0 { padding-top: 0!important;}
.pb0 { padding-bottom: 0!important;}
.mb0 { margin-bottom: 0!important;}
.mtauto { margin-top: auto!important;}
.mt0 { margin-top: 0!important;}
.mt50 { margin-top: 50px!important;}
.mt100 { margin-top: 100px!important;}
.mrfix { flex: none!important; width: 50vw; margin-right: calc(50% - 50vw)!important;}
.mlfix { flex: none!important; width: 50vw; margin-left: calc(50% - 50vw)!important;}
.overhang { margin-top: -64px!important;}
.fs14 { font-size: 1.4rem;}
.fs16 { font-size: 1.6rem;}
.fs18 { font-size: 1.8rem;}
.fs20 { font-size: 2rem;}
.fs24 { font-size: 2.4rem;}
.fs28 { font-size: 2.8rem;}
.fs32 { font-size: 3.2rem;}
.fs40 { font-size: 4rem;}
.bold { font-weight: 500;}
.color-blue { color: #377EB8;}
.color-white { color: #FFF;}
.notice { font-size: 1.3rem;}
.row { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; margin-left: -20px; margin-right: -20px;}
.row + .row { margin-top: 50px;}
.row > * { position: relative; flex: 1; margin-left: 20px; margin-right: 20px; margin-top: 0;}
.row.three { justify-content: center;}
.row.three > * { align-self: stretch; flex: none; width: calc(100% / 3 - 40px);}
.reverse { flex-direction: row-reverse;}
.as-center { align-self: center;}
.as-stretch { display: flex; flex-direction: column; align-self: stretch;}
.w20 { flex: none; width: calc(20% - 40px);}
.w60 { flex: none; width: calc(60% - 40px);}
.columns { columns: 2;}
* + .btn { margin-top: 30px;}
.btn a, .swp { position: relative; display: flex; justify-content: center; align-items: center; width: 100%; max-width: 480px; min-height: 80px; padding: 10px 40px; text-align: center; background: #FFF url("../img/common/btn.svg") right 30px center no-repeat; font-weight: 500; color: #6B6B6B; box-shadow: 1px 1px 4px rgba(0,0,0,.16); transition: .2s ease-out;}
.btn a:hover, .swp:hover { background: #377EB8 url("../img/common/btn_w.svg") right 20px center no-repeat; color: #FFF; opacity: 1;}
.btn a.inversion { justify-content: flex-start; background-color: #377EB8; background-image: url("../img/common/btn_w.svg"); color: #FFF;}
.btn a.inversion:hover { background-color: #FFF; background-image: url("../img/common/btn.svg"); color: #377EB8;}
.btn a.alt { justify-content: flex-start;}
.btn a.alt::before { content: ''; position: absolute; top: 0; right: 0; width: 60px; height: 100%; background-position: right 30px center; background-repeat: no-repeat; z-index: 0; transition: .2s ease-out;}
.btn a.alt:hover { background-color: #FFF; color: #377EB8;}
.btn a.alt:hover::before { background-color: #377EB8; background-image: url("../img/common/btn_w.svg"); background-position: right 20px center;}
.btn a.wide { max-width: initial; font-size: 2.2rem;}
.btn a.narrow { min-height: 60px;}
.btn a.short { max-width: 320px;}
.btn.left a { justify-content: flex-start;}
.btn.center a { margin: 0 auto;}
.btn.rb { position: absolute; bottom: 0; right: 0; width: 60%;}
.btn.rb a { max-width: initial;}
ul.btn { justify-content: center; margin-top: 50px;}
ul.btn li p { margin-top: 0;}
ul.btn li a { justify-content: flex-start; margin: 0 auto;}
ul.btn li input { margin: 0 auto;}
.arrow { display: inline-block; padding-right: 16px; background: url("../img/common/btn.svg") right center no-repeat; background-size: 6px auto;}
a.pdf { display: inline-block; padding-left: 32px; background: url("../img/common/pdf.svg") left center no-repeat;}
a.download { display: inline-block; padding-left: 32px; background: url("../img/common/download_blue.svg") left center no-repeat;}
.underline { text-decoration: underline;}
.indent li { padding-left: 2.5em; text-indent: -2.5em; font-size: 1.4rem;}
.sp { display: none;}
.fadeInUp{ -webkit-animation-name: fadeInUp; animation-name: fadeInUp;}
@-webkit-keyframes fadeInUp { from { opacity: 0; transform: translate3d(0, 40px, 0);} to { opacity: 1; transform: translate3d(0, 0, 0);}}
@keyframes fadeInUp { from { opacity: 0; transform: translate3d(0, 40px, 0);} to { opacity: 1; transform: translate3d(0, 0, 0);}}
.animated { opacity: 0; animation-duration: 0.6s; animation-delay: 0.2s; animation-fill-mode: both;}


/*PAGE*/
#title { position: relative;}
#title.wide #titlecontents figure { height: 400px;}
#title.wide #subnav { top: 340px;}
#titlecontents { position: relative; z-index: 10;}
#titlecontents figure { height: 260px;}
#titlecontents figure.wide { height: 400px;}
#titlecontents figure img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1;}
#titlecontents h1 { position: absolute; top: 50%; left: 0; transform: translateY(-50%); width: 100%; text-align: center; font-size: 4rem; color: #FFF;}
#titlecontents h1 span { font-size: 2rem;}

#header.lp #logo img { max-height: 20px; vertical-align: baseline;}
#header.lp #logo span { display: none;}
#header.lp #nav > ul > li:not(:last-child) { border-bottom: none;}
@media screen and (min-width: 1281px){
#header.lp { height: 80px;}
#header.lp + * { margin-top: 80px;}
#header.lp #logo { height: 80px;}
#header.lp #logo img { max-height: 30px;}
#header.lp.is-fixed { height: 60px;}
#header.lp.is-fixed #logo { height: 60px;}
}
#title2 { position: relative; background: rgb(255,255,255); background: linear-gradient(0deg, rgba(255,255,255,1) 0%, rgba(232,232,232,1) 100%);}
#title2.alt { background: rgb(95,151,198); background: linear-gradient(0deg, rgba(95,151,198,1) 0%, rgba(55,126,184,1) 100%); color: #FFF;}
#title2 #subnav { top: auto; bottom: 0;}
#titlecontents2 { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 438px; padding: 80px 0 130px;}
#titlecontents2 .img { position: relative; display: flex; justify-content: center; align-items: center; padding: 0 6%;}
#titlecontents2 .img.fit { align-self: stretch;}
#titlecontents2 .img.fit img { position: absolute; top: -80px; left: 0; width: 100%; height: calc(100% + 210px); object-fit: cover;}
#titlecontents2 .contents { position: relative; padding: 0 12% 0 14%; z-index: 1;}
#titlecontents2 b { font-weight: 700;}
#titlecontents2 h1 { font-size: clamp(2.4rem,4vw,4rem); font-weight: 500;}
#titlecontents2 * + h1 { margin-top: 16px;}
#titlecontents2 .sub { font-size: clamp(1.6rem,2vw,2rem); font-weight: 500;}
#titlecontents2 * + .sub { margin-top: 16px;}
#titlecontents2 p { margin-top: 24px; font-size: clamp(1.2rem,1.4vw,1.4rem); font-weight: 500;}
#titlecontents2 .logo { margin-top: 24px;}
#titlecontents2 .bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
#titlecontents2 .bg::before { display: none;}
#titlecontents2 .bg img, #titlecontents2 .bg video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;}
#titlecontents2 .bg.mask::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-backdrop-filter: blur(1px) brightness(0.4); backdrop-filter: blur(1px) brightness(0.4);}
#titlecontents2 .bg.mask2::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-backdrop-filter: blur(1px) brightness(0.4); backdrop-filter: blur(1px) brightness(0.5);}

#title3 { position: relative; background: rgb(255,255,255); background: linear-gradient(0deg, rgba(255,255,255,1) 0%, rgba(232,232,232,1) 100%);}
#title3.alt { background: rgb(95,151,198); background: linear-gradient(0deg, rgba(95,151,198,1) 0%, rgba(55,126,184,1) 100%); color: #FFF;}
#title3 #subnav { top: auto; bottom: 0;}
#titlecontents3 { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 438px; padding: 35px 0 35px;}
#titlecontents3 .img { position: relative; display: flex; justify-content: center; align-items: center; padding: 0 6%;}
#titlecontents3 .img.fit { align-self: stretch;}
#titlecontents3 .img.fit img { position: absolute; top: -80px; left: 0; width: 100%; height: calc(100% + 210px); object-fit: cover;}
#titlecontents3 .contents { position: relative; padding: 0 12% 0 14%; z-index: 1;}
#titlecontents3 b { font-weight: 700;}
#titlecontents3 h1 { font-size: clamp(2.4rem,4vw,4rem); font-weight: 500;}
#titlecontents3 * + h1 { margin-top: 16px;}
#titlecontents3 .sub { font-size: clamp(1.6rem,2vw,2rem); font-weight: 500;}
#titlecontents3 * + .sub { margin-top: 16px;}
#titlecontents3 p { margin-top: 24px; font-size: clamp(1.2rem,1.4vw,1.4rem); font-weight: 500;}
#titlecontents3 .logo { margin-top: 24px;}
#titlecontents3 .bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
#titlecontents3 .bg::before { display: none;}
#titlecontents3 .bg img, #titlecontents3 .bg video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;}
#titlecontents3 .bg.mask::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-backdrop-filter: blur(1px) brightness(0.4); backdrop-filter: blur(1px) brightness(0.4);}
#titlecontents3 .bg.mask2::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-backdrop-filter: blur(1px) brightness(0.4); backdrop-filter: blur(1px) brightness(0.5);}

#title4 { position: relative; background: rgb(255,255,255); background: linear-gradient(0deg, rgba(255,255,255,1) 0%, rgba(232,232,232,1) 100%);}
#title4.alt { background: rgb(95,151,198); background: linear-gradient(0deg, rgba(95,151,198,1) 0%, rgba(55,126,184,1) 100%); color: #FFF;}
#title4 #subnav { top: auto; bottom: 0;}
#titlecontents4 { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 438px; padding: 45px 0 90px;}
#titlecontents4 .img { position: relative; display: flex; justify-content: center; align-items: center; padding: 0 6%;}
#titlecontents4 .img.fit { align-self: stretch;}
#titlecontents4 .img.fit img { position: absolute; top: -80px; left: 0; width: 100%; height: calc(100% + 210px); object-fit: cover;}
#titlecontents4 .contents { position: relative; padding: 0 12% 0 14%; z-index: 1;}
#titlecontents4 b { font-weight: 700;}
#titlecontents4 h1 { font-size: clamp(2.4rem,4vw,4rem); font-weight: 500;}
#titlecontents4 * + h1 { margin-top: 16px;}
#titlecontents4 .sub { font-size: clamp(1.6rem,2vw,2rem); font-weight: 500;}
#titlecontents4 * + .sub { margin-top: 16px;}
#titlecontents4 p { margin-top: 24px; font-size: clamp(1.2rem,1.4vw,1.4rem); font-weight: 500;}
#titlecontents4 .logo { margin-top: 24px;}
#titlecontents4 .bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
#titlecontents4 .bg::before { display: none;}
#titlecontents4 .bg img, #titlecontents4 .bg video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;}
#titlecontents4 .bg.mask::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-backdrop-filter: blur(1px) brightness(0.4); backdrop-filter: blur(1px) brightness(0.4);}
#titlecontents4 .bg.mask2::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-backdrop-filter: blur(1px) brightness(0.4); backdrop-filter: blur(1px) brightness(0.5);}
#titlecontents4 .bg.mask3::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-backdrop-filter: blur(1px) brightness(0.4); backdrop-filter: blur(1px) brightness(0.35);}

.titlebtn { position: relative; display: inline-block; margin-top: 32px; background: #377EB8;}
.titlebtn::after { content: ''; position: absolute; top: 0; right: 0; width: 64px; height: 100%; background: #F0AF00; z-index: 0;}
.titlebtn::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: #2B2B2B; z-index: 1; transform-origin: left top; transform: scaleX(0); transition: .3s ease-out;}
.titlebtn a { position: relative; display: grid; grid-template-columns: 64px 1fr; min-width: 328px; min-height: 64px; padding-right: 64px; text-align: left; font-size: clamp(1.2rem,1.4vw,1.4rem); font-weight: 500; color: #FFF; z-index: 1;}
.titlebtn a::after { content: ''; position: absolute; top: 50%; right: 20px; width: 12px; height: 12px; border-top: 2px solid #090909; border-right: 2px solid #090909; transform: translate(-50%,-50%) rotate(45deg); transition: .3s ease-out;}
.titlebtn a figure { position: relative; display: flex; justify-content: center; align-items: center; border-right: 1px solid #F0AF00;}
.titlebtn a span { align-self: center; display: block; padding: 12px 20px;}
.titlebtn:hover::before { transform: scaleX(1);}
.titlebtn a:hover { opacity: 1;}
.titlebtn a:hover::after { right: 12px; border-color: #FFF;}
.titlebtn.alt { background: #2B2B2B;}
.titlebtn.alt::before { background: #FFF;}
.titlebtn.alt a:hover { color: #2B2B2B;}
.titlebtn.alt a:hover::after { border-color: #2B2B2B;}
.titlebtn.alt a:hover figure::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: #FFF; mix-blend-mode: difference;}

#subnav { position: absolute; top: 200px; left: 0; display: flex; align-items: flex-end; width: 100%; border-bottom: 4px solid #377EB8; font-weight: 500; z-index: 10;}
#subnav.wide { justify-content: center;}
#subnav.wide > ul { width: 100%; max-width: 1000px;}
#subnav.wide > ul > li { flex: 1;}
#subnav.wide > ul > li a { flex: 1;}
#subnav dl { position: relative; display: block; min-width: 260px; background: #2A2A2A;}
#subnav dt { position: relative; display: flex; align-items: center; height: 60px; padding: 10px 30px; font-weight: 500; color: #FFF; cursor: pointer;}
#subnav dt::before, #subnav dt::after { content: ''; position: absolute; top: 50%; right: 30px; display: block; width: 15px; height: 2px; background: #FFF; transition: .2s ease-out;}
#subnav dt::before { transform: rotate(90deg);}
#subnav dt::after { transform: rotate(180deg);}
#subnav dd { display: none; position: absolute; left: 0; min-width: 100%; padding: 30px; background: #2A2A2A; border-top: 1px solid #4D4D4D; white-space: nowrap;}
#subnav dd li { position: relative;}
#subnav dd li:not(:first-child) { margin-top: 20px;}
#subnav dd li a { font-size: 1.4rem; font-weight: 500; color: #FFF; opacity: 0.5;}
#subnav dd li a:hover { opacity: 0.7;}
#subnav dd li.on a { opacity: 1;}
#subnav dd li.on::before { content: ''; position: absolute; top: calc(50% - 5px); left: -30px; width: 20px; height: 10px; background: #377EB8;}
#subnav dt.on::before { transform: rotate(0deg);}
#subnav dt.on::after { transform: rotate(0deg);}
#subnav > ul { display: flex; flex-wrap: wrap;}
#subnav > ul > li { display: flex; align-items: flex-end; margin-left: 1px;}
#subnav > ul > li a { display: flex; justify-content: center; align-items: center; min-width: 120px; height: 50px; padding: 10px 20px; text-align: center; background: #8E8E8E; color: #FFF;}
#subnav > ul > li a:hover { background: #377EB8; opacity: 1;}
#subnav > ul > li.on a { height: 60px; background: #377EB8;}
#siblings { padding: 10px 160px; background: #377EB8;}
#siblings li { display: inline-block; margin: 10px;}
#siblings li a { display: inline-block; border-bottom: 1px solid #FFF; font-size: 1.4rem; font-weight: 500; color: #FFF;}
#siblings li.on a { border-bottom-color: transparent; opacity: .5;}
#breadcrumb { position: relative; background: #FFF; border-bottom: 1px solid #D4D4D4;}
#breadcrumb ul { max-width: 1080px; margin: 0 auto; padding: 30px 40px; font-size: 1.2rem; color: #4D4D4D;}
#breadcrumb li { display: inline;}
#breadcrumb li:not(:first-child)::before { content: ' ｜ ';}
#breadcrumb li a { color: #4D4D4D;}
#anchor { margin: 50px calc(50% - 50vw) 0;}
#anchor ul { display: flex; flex-wrap: wrap; justify-content: center;}
#anchor li { display: flex; min-width: 250px; margin: 8px;}
#anchor li a { display: flex; justify-content: center; align-items: center; width: 100%; padding: 20px; background: #F7F7F7; font-weight: 500; color: #377EB8;}
#anchor li.on a { background: #8E8E8E; color: #FFF;}
.anchor { display: flex; border-right: 1px solid #D4D4D4;}
.anchor li { flex: 1; border-left: 1px solid #D4D4D4;}
.anchor li a { position: relative; display: flex; flex-direction: column; align-items: center; padding: 24px; text-align: center; color: #6B6B6B;}
.anchor li a h3 { display: flex; justify-content: center; align-items: center; min-height: 64px;}
.anchor li a::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%) rotate(45deg); display: block; width: 16px; height: 16px; border-bottom: 2px solid #377EB8; border-right: 2px solid #377EB8; z-index: 1; transition: .2s ease-out;}
.heading { margin-bottom: 50px; padding-left: 60px; text-align: left; line-height: 1.2;}
.heading span { font-size: 1.6rem;}
.heading i { position: relative; display: block; margin-bottom: 10px; font-size: 4.8rem; color: #377EB8;}
.heading i::before { content: ''; position: absolute; top: 0.5em; left: -60px; display: block; width: 40px; height: 2px; background: #377EB8;}
.heading h2 { font-size: 1.6rem; color: #4D4D4D;}
.heading::after { display: none!important;}
.heading p { position: absolute; bottom: 0; right: 0; width: 50%; line-height: 1.9;}
.heading.inversion i, .heading.inversion h2 { color: #FFF;}
.heading.inversion i::before { background-color: #FFF;}
.heading2 { position: relative; padding-top: 64px; text-align: center;}
.heading2 i { position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); font-size: 12rem; font-weight: 500; font-style: italic; color: #F7F7F7; white-space: nowrap; z-index: -1;}
.heading2 h2, .heading2 h3 { display: inline-block; padding: 0; border-bottom: 2px solid #377EB8; font-size: 3.2rem; color: #377EB8;}
.heading2 h2::before, .heading2 h3::before { display: none;}
.heading2.alt i { color: #FFF;}
.heading2.alt h3 { border-color: #F0AF00; color: #F0AF00;}
.heading2.left i { left: 0; transform: translateX(0);}
.heading2 h2.wide { display: block; padding-bottom: 8px; border-bottom-width: 5px;}
.heading3 { display: inline-block; text-align: left;}
.heading3 i { font-size: 4.8rem; font-weight: 500; color: #377EB8;}
.heading3 h2 { font-size: 1.8rem;}
.heading3:not(.noborder)::after { width: 100%; margin-top: 16px;}
.balloon { padding-bottom: 40px; text-align: center; background: url("../img/common/balloon.svg") center bottom no-repeat;}
.balloonbox { position: relative; display: flex; justify-content: center; align-items: center; min-height: 80px; margin-bottom: 56px; padding: 8px 16px; text-align: center; background: #377EB8; line-height: 1.4; color: #FFF;}
.balloonbox > * { color: #FFF;}
.balloonbox::before { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #377eb8 transparent transparent transparent;}
.balloonbox.inversion { background: #FFF; border: 1px solid #377EB8; color: #377EB8;}
.balloonbox.inversion::before { border-width: 20px 10px 0 10px;}
.balloonbox.inversion::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translate(-50%, -1px); width: 0; height: 0; border-style: solid; border-width: 20px 10px 0 10px; border-color: #FFF transparent transparent transparent;}
.balloonbox.inversion.alt { border-color: #4D4D4D; color: #4D4D4D;}
.balloonbox.inversion.alt::before { border-top-color: #4D4D4D;}
.balloonbox.alt { background: #FFF; border: 1px solid #4D4D4D; color: #4D4D4D;}
.balloonbox.narrow { max-width: 280px; margin-left: auto; margin-right: auto; margin-bottom: 0;}
.bluebox { padding: 40px; background: #377EB8; font-weight: 500; color: #FFF;}
.whitebox { padding: 40px; background: #FFF;}
section.whitebox { margin-left: -50px; margin-right: -50px; padding: 50px;}
.phone li { display: inline-block; margin-top: -30px; padding: 10px 40px; background-position: left center; background-repeat: no-repeat; font-weight: 500;}
.phone li.tel { background-image: url("../img/common/tel.svg");}
.phone li.fax { background-image: url("../img/common/fax.svg");}
.cross { position: relative; margin-left: -40px; margin-right: -40px; padding: 70px 0;}
.cross::before { content: ''; position: absolute; top: 0; right: calc(50% - 50vw); width: 56vw; height: 100%; background: #F7F7F7; z-index: -2;}
.bg .cross::before { background: #FFF;}
.cross.reverse::before { right: 0; left: calc(50% - 50vw);}
.cross > * { margin-left: 40px; margin-right: 40px;}
.catlist { font-weight: 500; color: #377EB8;}
.catlist li::before { content: '・';}
.stairs { padding-top: 50px;}
.stairs::before { content: ''; position: absolute; top: 0; right: calc(50% - 50vw); width: calc(50vw + 50% - 200px); height: 80%; background: #FFF; z-index: 0;}
.stairs.reverse::before { right: 0; left: calc(50% - 50vw);}
.stairs.reverse i, .stairs.reverse h3, .stairs.reverse p { margin-right: 300px;}
.stairs:not(.reverse) i, .stairs:not(.reverse) h3, .stairs:not(.reverse) p { margin-left: 300px;}

/*index*/
#mv { margin-top: -130px; padding: 0;}
#mv ~ * { z-index: 1;}
#mv ~ *::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: #FFF; z-index: -2;}
#mvcontents { position: relative; height: 100vh;}
#mvheader { position: fixed; top: 0; left: 0; width: 100%; height: calc(100vh - 220px); background: rgba(9,9,9,.5);}
#mvheader figure img, #mvheader figure video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;}
#mvheader h1 { position: absolute; bottom: -30px; right: 120px; width: 50%; text-align: right;}
#mvheader .btn { position: absolute; top: 100%; left: 0; width: 320px; margin-top: 0; box-shadow: 1px 1px 4px rgba(0,0,0,.16); z-index: 3;}
#mv.fit #mvcontents { height: calc(100vh - 220px);}
#floatingbanner { position: fixed; right: 20px; bottom: 20px; padding: 15px; text-align: center; background: #377EB8; border-radius: 10px; font-size: 1.2rem; font-weight: 500; color: #FFF; box-shadow: 1px 1px 4px rgba(0,0,0,.16); z-index: 20;}
#floatingbanner span { font-size: 2rem; letter-spacing: 0.05em;}
#floatingbanner a { display: block; margin-top: 15px; padding: 15px; background: #305471; border-radius: 10px; font-size: 1.4rem; color: #FFF;}
#floatingbanner a:hover { background: #FFF; color: #377EB8; opacity: 1;}
body.home #mvheader h1 { bottom: 50%; right: 50%; transform: translate(50%,50%); text-align: center;}
body.home #mvheader .logo { position: absolute; bottom: 20%; right: 50%; transform: translate(50%,50%);}
body.home #floatingbanner { padding: 0; right: 0;}
body.home #floatingbanner a { position: relative; margin: 0; padding: 24px 16px; background: none;}
body.home #floatingbanner a::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(55,126,184,1); background: linear-gradient(0deg, rgba(55,126,184,1) 0%, rgba(55,174,184,1) 100%); border-radius: 10px 0 0 10px; z-index: -2;}
body.home #floatingbanner a::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgb(55,174,184); background: linear-gradient(0deg, rgba(55,174,184,1) 0%, rgba(55,126,184,1) 100%); border-radius: 10px 0 0 10px; z-index: -1; opacity: 0; transition: .2s ease-out;}
body.home #floatingbanner a:hover { color: #FFF;}
body.home #floatingbanner a:hover::after { opacity: 1;}
body.home #floatingbanner a i { display: block; margin-top: 8px;}
#scroll { position: fixed; bottom: 100px; left: 50%; transform: translateX(-50%); z-index: -2;}
#scroll i { font-family: 'Barlow', sans-serif; font-size: 1.4rem; font-weight: 500;}
#scroll::after { content: ''; position: absolute; top: 100%; left: calc(50% - 4px); transform: rotate(45deg); display: block; width: 8px; height: 8px; border-right: 2px solid #377EB8; border-bottom: 2px solid #377EB8; animation: scroll 2s cubic-bezier(1, 0, 0, 1) infinite;}
@keyframes scroll { 0% { top: 100%; opacity: 0;}  20% { top: 100%; opacity: 1;} 90% { top: 150%; opacity: 0;} 100% { top: 100%; opacity: 0;}}
.productbox { padding: 80px 140px;}
.productbox > figure { position: absolute; top: 0; left: 0; width: 100%; height: 100%; margin: 0;}
.productbox > figure img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;}
.productbox .row > * { margin: 0 40px;}
.productbox .row a { position: relative; display: block; border: 1px solid #FFF; color: #FFF;}
.productbox .row a::before { content: ''; position: absolute; bottom: 0; left: 0; display: block; width: 0; height: 60px; background: #FFF; z-index: -2; transition: .2s ease-out;}
.productbox .row a figure { display: flex; justify-content: center; align-items: center; height: 170px; margin-bottom: 0; border-bottom: 1px solid #FFF;}
.productbox .row a p { position: relative; display: flex; align-items: center; height: 60px; margin: 0; padding: 0 30px; font-weight: 500;}
.productbox .row a p::before { content: ''; position: absolute; top: 0; right: 0; display: block; width: 70px; height: 60px; background: #FFF; z-index: -2;}
.productbox .row a p::after { content: ''; position: absolute; top: calc(50% - 10px); right: 24px; transform-origin: left top; transform: rotate(45deg); display: block; width: 16px; height: 16px; border-top: 2px solid #377EB8; border-right: 2px solid #377EB8; transition: .2s ease-out;}
.productbox .row a:hover { color: #377EB8; opacity: 1;}
.productbox .row a:hover::before { width: 100%;}
.productbox .row a:hover p::after { right: 14px;}
.casebox a { position: relative; display: flex; margin-bottom: 30px; background: #FFF; box-shadow: 1px 1px 4px rgba(0,0,0,.16);}
.casebox a figure { width: 44%;}
.casebox a figure figcaption { margin: 0; padding: 40px; font-weight: 500;}
.casebox a > div { position: relative; flex: 1; display: flex; flex-direction: column; padding: 40px 40px 20px; border-left: 1px solid #D4D4D4;}
.casebox h3 { padding-left: 0;}
.casebox h3::before { display: none;}
.casebox p { font-size: 1.4rem;}
.casebox .cat { position: absolute; bottom: 40px;}
.casebox .cat span { display: inline-block; margin: 0 1px 1px 0; padding: 5px 10px; background: #377EB8; font-size: 1.4rem; font-weight: 500; color: #FFF;}
.casebox .viewmore { margin-top: auto;}
.casebox a:hover { opacity: 1;}
.swiper-nav { display: flex; align-items: center; margin-top: 40px;}
.swiper-prev, .swiper-next { position: relative; width: 50px; height: 50px; margin-left: 10px; background: #FFF; box-shadow: 1px 1px 4px rgba(0,0,0,.16); transition: .2s ease-out; cursor: pointer;}
.swiper-prev::after, .swiper-next::after { content: ''; position: absolute; top: calc(50% - 10px); right: 15px; transform-origin: left top; transform: rotate(45deg); display: block; width: 16px; height: 16px; border-top: 2px solid #377EB8; border-right: 2px solid #377EB8; transition: .2s ease-out;}
.swiper-prev { transform: scaleX(-1);}
.swiper-prev:hover, .swiper-next:hover { background: #377EB8;}
.swiper-prev:hover::after, .swiper-next:hover::after { border-color: #FFF;}
.swiper-button-disabled { opacity: .5; pointer-events: none;}
.count { display: flex; margin-left: 30px;}
.count i { display: flex; justify-content: center; align-items: center; width: 40px; height: 30px; font-family: 'Barlow', sans-serif; font-size: 2.4rem; font-weight: 500; color: #377EB8;}
.count .denominator { border-left: 1px solid #D4D4D4;}
#pickup .swiper-container { margin-right: calc(50% - 50vw); height: 342px; overflow: visible;}
#pickup .swiper-slide { display: flex; align-items: flex-end; width: 451px; transition: width .8s ease, height .8s ease;}
#pickup .swiper-slide a { display: block; box-shadow: 1px 1px 4px rgba(0,0,0,.16);}
#pickup .swiper-slide-active { width: 640px;}

/*news*/
.newslist li { border-top: 1px solid #D4D4D4;}
.newslist li { padding: 20px 40px;}
.newslist li .meta { display: flex; align-items: center; text-decoration: none; margin-bottom: 10px; font-size: 1.4rem;}
.newslist li .cat { min-width: 90px; padding: 4px 8px; text-align: center; margin-right: 10px; background: #377EB8; font-weight: 500; color: #FFF; white-space: nowrap;}
.newslist li time { font-weight: 600; color: #7F7F7F;}
.newslist li p { margin: 0; font-weight: 500; color: #6B6B6B;}
.newslist li p a { text-decoration: none; color: #6B6B6B;}
.newslist li .address { margin-top: 20px; font-size: 1.4rem;}
.newsbox li:not(:first-child) { margin-top: 20px;}
.newsbox li a { position: relative; display: block; padding: 0 80px 20px 40px; background: #FFF; box-shadow: 1px 1px 4px rgba(0,0,0,.16);}
.newsbox li a::before { content: ''; position: absolute; top: 0; right: 0; width: 60px; height: 100%; background: #FFF; z-index: 0; transition: .2s ease-out;}
.newsbox li a::after { content: ''; position: absolute; top: calc(50% - 10px); right: 30px; transform-origin: left top; transform: rotate(45deg); display: block; width: 16px; height: 16px; border-top: 2px solid #377EB8; border-right: 2px solid #377EB8; z-index: 1; transition: .2s ease-out;}
.newsbox li a:hover { opacity: 1;}
.newsbox li a:hover::before { background: #377EB8;}
.newsbox li a:hover::after { right: 20px; border-color: #FFF;}
.newsbox li .cat span { display: inline-block; margin: 0 1px 1px 0; padding: 5px 10px; background: #377EB8; font-size: 1.4rem; font-weight: 500; color: #FFF;}
.newsbox li h3 { margin: 20px 0; padding: 0; font-size: 1.6rem; line-height: 1.6; color: #6B6B6B;}
.newsbox li h3::before { display: none;}
.newsbox li p { font-size: 1.4rem;}
.newsbox li time { font-size: 1.4rem; letter-spacing: 0.05em; color: #7F7F7F;}
.newsbox.current li a { padding: 0 40px 20px;}
.newsbox.current li a::before, .newsbox.current li a::after { display: none;}
.newsbox.current li time { display: flex; align-items: center; margin-top: 20px; text-align: right; font-size: 1.8rem; letter-spacing: 0.05em; color: #377EB8;}
.newsbox.current li time .new { display: block; font-size: 1.6rem; letter-spacing: 0.1em; color: #F0AF00;}
.newsbox.current li time .day { display: inline-block; margin-left: 20px; font-size: 4.8rem;}
.viewmore { position: relative; display: flex; justify-content: flex-end; align-items: center; height: 60px; margin-top: 20px; margin-right: -40px; padding-right: 70px; letter-spacing: 0.1em; color: #6B6B6B;}
.viewmore::before { content: ''; position: absolute; top: 0; right: 0; width: 60px; height: 60px; background: #FFF; z-index: 0; transition: .2s ease-out;}
.viewmore::after { content: ''; position: absolute; top: calc(50% - 10px); right: 30px; transform-origin: left top; transform: rotate(45deg); display: block; width: 16px; height: 16px; border-top: 2px solid #377EB8; border-right: 2px solid #377EB8; z-index: 1; transition: .2s ease-out;}
a:hover .viewmore::before { background: #377EB8;}
a:hover .viewmore::after { right: 20px; border-color: #FFF;}
.related { display: flex; flex-wrap: wrap; justify-content: center; margin: -20px!important; list-style: none!important;}
.related li { width: calc(50% - 40px); margin: 20px;}
.related li a { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; min-height: 140px; padding: 20px 50px; text-align: center; background: #FFF; font-size: 2.2rem; font-weight: 500; color: #6B6B6B; box-shadow: 1px 1px 4px rgba(0,0,0,.16);}
.related li a::after { content: ''; position: absolute; top: calc(50% - 10px); right: 30px; transform-origin: left top; transform: rotate(45deg); display: block; width: 16px; height: 16px; border-top: 2px solid #377EB8; border-right: 2px solid #377EB8; transition: .2s ease-out;}
.related li a:hover { background: #377EB8; color: #FFF; opacity: 1;}
.related li a:hover::after { right: 20px; border-color: #FFF;}
.related li > span { display: block; margin-top: 10px; font-weight: 500; color: #6B6B6B;}
.related li.back { width: 100%;}
.related li.back a { min-height: 100px;}
footer.meta { margin-top: 40px; padding-top: 40px; border-top: 1px solid #D4D4D4; color: #6B6B6B;}

/*support*/
.supportlist { justify-content: flex-start; margin: 0 -10px -60px;}
.supportlist li { flex: none; display: flex; flex-direction: column; width: calc(25% - 20px); margin: 0 10px 60px;}
.supportlist li figure { display: flex; justify-content: center; align-items: center; padding: 10px; height: 140px; background: #FFF;}
.supportlist li h3 { margin: 20px 0; padding: 0; text-align: center; font-size: 2rem;}
.supportlist li h3::before { display: none;}
.supportlist li .btn { margin-top: auto;}
.supportlist li .btn a { min-height: 60px; margin: 0 auto;}
.supportlist li .btn a::after { right: 20px;}
.supportlist li .btn a:hover::after { right: 10px;}

/*products*/
.productlist { flex-wrap: wrap; align-items: stretch;}
.productlist li { flex: none; display: flex; flex-direction: column; width: calc(50% - 40px); height: auto; margin-bottom: 50px;}
.productlist li figure { margin-bottom: 0;}
.productlist li figcaption { position: absolute; top: 0; left: 0; display: inline-block; margin: 0; padding: 4px 16px; background: #377EB8; font-size: 1.4rem; font-weight: 500; color: #FFF;}
.productlist li h3 { margin: 20px 0 0; padding-left: 0; font-size: 2rem;}
.productlist li h3::before { display: none;}
.productlist li h3 span { font-size: 1.6rem;}
.productlist li p { margin-bottom: 20px;}
.productlist li .btn { margin-top: auto;}
.productlist li .btn a { max-width: initial;}
.productlist li .btn a + a { border-top: 1px solid #E8E8E8;}
.logoimg li figure { padding-top: 220px; border-bottom: 1px solid #D4D4D4; box-shadow: 1px 1px 4px rgb(0,0,0,.16);}
.logoimg li figure img { position: absolute; top: 40px; left: 10%; width: 72%; height: calc(100% - 40px); object-fit: scale-down;}
.logoimg li figcaption { width: 100%; text-align: center;}
.functionimg li { padding: 10px; text-align: center; box-shadow: 1px 1px 4px rgb(0,0,0,.16);}
.functionimg li figcaption { position: relative; display: block; margin-bottom: 16px; padding: 4px 8px; background: #377EB8; font-size: 1.4rem; font-weight: 500; color: #FFF;}
.flow { display: flex; flex-wrap: wrap; margin: 0 -10px;}
.flow li { position: relative; flex: 1; margin: 0 10px; padding: 10px; text-align: center; background: #FFF; border-bottom: 2px solid #377EB0; font-weight: 500; color: #377EB8;}
.flow li:last-child { border-right: 2px solid #377EB0;}
.flow li:not(:last-child)::before { content: ''; position: absolute; bottom: -2px; right: 0; transform-origin: right bottom; transform: rotate(40deg); width: 12px; height: 2px; background: #377EB0;}
.flow.alot li { position: relative; flex: none; width: calc(100% / 8 - 20px);}
.flow.alot li:nth-child(9n)::after { content: ''; position: absolute; bottom: 100%; left: 0; width: 1000px; height: 64px; background: url("../img/common/alot.svg") center no-repeat;}
.flow.alot li:nth-child(n + 9) { margin-top: 64px;}
.pointflow { margin-bottom: 40px;}
.pointflow ol { display: flex;}
.pointflow ol li { position: relative; flex: 1; padding-bottom: 96px; text-align: center; font-weight: 500;}
.pointflow ol li::before { content: ''; position: absolute; top: 80px; left: calc(50% - 5px); width: 10px; height: 10px; border-radius: 50%; background: #377EB8;}
.pointflow ol li::after { content: ''; position: absolute; top: 80px; left: 50%; width: 1px; height: 76px; background: #377EB8;}
.pointflow ol li:first-child::after, .pointflow ol li:last-child::after { height: 150px;}
.pointflow ol li i { display: block; margin-bottom: 8px; font-weight: 600; color: #377EB8;}
.pointflow ul { display: flex;}
.pointflow ul.step4 { margin: 0 calc(100% / 8);}
.pointflow ul.step5 { margin: 0 calc(100% / 10);}
.pointflow ul.step6 { margin: 0 calc(100% / 12);}
.pointflow ul li { position: relative; display: flex; justify-content: center; align-items: center; width: 20%; height: 32px; background: #377EB8; font-weight: 500; color: #FFF;}
.pointflow ul li.w25 { width: 25%;}
.pointflow ul li.w40 { width: 40%;}
.pointflow ul li.null { background: #6B6B6B;}
.pointflow ul li:not(:first-child)::before { content: ''; position: absolute; top: 50%; left: 0; transform: translate(-75%,-50%) rotate(45deg); width: 45px; height: 45px; border-top: 16px solid #F7F7F7; border-right: 16px solid #F7F7F7;}
.movie { position: relative; padding-top: 56.25%;}
.movie iframe, .movie video { position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
.movie + p { text-align: center; font-weight: 500;}
.movie + * { margin-top: 20px;}
.point { position: relative; align-self: flex-start; display: inline-block; padding-left: 40px; font-size: 2.2rem; letter-spacing: 0.05em; color: #377EB8;}
.point.min{ font-size: 1.4rem;}
.point:not(.noborder)::before { content: ''; position: absolute; top: 0.6em; left: 0; width: 26px; height: 1px; background: #377EB8;}
.point + * { margin-top: 40px;}
.point.reverse { padding-left: 0; padding-right: 40px;}
.point.reverse:not(.noborder)::before { left: auto; right: 0;}
div.point { padding-left: 24px; font-size: 1.6rem; font-weight: 500;}
div.point:not(.noborder)::before { width: 12px; height: 2px;}
.beforeafter { position: relative; text-align: center; margin-left: -38px; margin-right: -38px;}
.beforeafter::after { content: ''; position: absolute; top: 50%; left: 50%; transform: rotate(45deg) translateX(-100%); display: block; width: 32px; height: 32px; border-top: 2px solid #377EB8; border-right: 2px solid #377EB8; z-index: 1; transition: .2s ease-out;}
.beforeafter > * { margin-left: 38px; margin-right: 38px;}
* + .beforeafter { margin-top: 40px;}
.case { color: #FFF;}
.case::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: url("../img/common/case.jpg") center no-repeat; background-size: cover; z-index: -1;}
.case header h2, .case header p { color: #FFF;}
.indexlist { justify-content: flex-start; align-items: stretch; margin: 0 -12px -50px;}
.indexlist li { flex: none; display: flex; flex-direction: column; width: calc(100% / 3 - 24px); height: auto; margin: 0 12px 50px;}
.indexlist li h3 { margin-bottom: 0; text-align: center;}
.indexlist li p { font-size: 1.4rem;}
.indexlist li .btn { margin-top: auto;}
.step { margin-left: -24px; margin-right: -24px;}
.step li:not(:first-child) figure::before, .stepbox li:not(:first-child)::before { content: ''; position: absolute; top: 50%; right: calc(100% + 16px); transform: rotate(45deg); display: block; width: 20px; height: 20px; border-top: 2px solid #377EB8; border-right: 2px solid #377EB8; z-index: 1; transition: .2s ease-out;}
.step li { margin-left: 24px; margin-right: 24px;}
.step li p { font-weight: 500;}
.stepbox { align-items: stretch;}
.stepbox li { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 32px 16px; background: #F4F4F4;}
.stepbox li i { font-size: 2rem; color: #377EB8}
.stepbox li h3 { margin: 16px 0; text-align: center;}
.stepbox li figure { margin: 0;}
.stepbox li.inversion { background: #377EB8!important; color: #FFF;}
.bg .stepbox li { background: #FFF;}
.iconlist { display: flex; flex-wrap: wrap; justify-content: center; margin: -10px;}
.iconlist li { width: 102px; margin: 10px; text-align: center; font-weight: 500;}
.spec th { background: #FFF;}
.spec td { border-left: 1px solid #D4D4D4;}
.comic { max-width: 768px; margin: 0 auto;}
.comic li { margin: 20px 0;}
.flowlist { align-items: stretch; margin: 0 -10px; padding: 60px 0 100px;}
.flowlist li { flex: none; width: calc(100% / 3 - 20px); margin: 40px 10px 0; padding: 32px; background: #F7F7F7;}
.flowlist li:nth-child(n + 4) { margin-top: 96px;}
.flowlist li.wide { width: calc(100% / 3 * 2 - 20px);}
.flowlist li .balloonbox { margin: -72px -16px 32px; font-size: 1.8rem; font-weight: 500;}
.flowlist li i { display: block; text-align: center; font-size: 2.2rem; color: #377EB8;}
.flowlist li p { font-size: 1.4rem;}
.flowbg .flowlist li, .bg .flowlist li, .greybgleft .flowlist li, .greybgright .flowlist li { background: #FFF;}
.flowlistvertical li { display: flex; align-items: center;}
.flowlistvertical li:not(:first-child) { margin-top: 30px; padding-top: 30px; border-top: 1px solid #D4D4D4;}
.flowlistvertical li figure { width: 26%; margin: 0;}
.flowlistvertical li > div { flex: 1; margin-left: 30px;}
.flowlistvertical li h3 { margin: 15px 0;}
.is-hide { display: none!important;}
.searchcontents > section { margin-bottom: 100px;}
.searchcontents > section + section { margin-top: 0;}
.searchlist label { width: 100%;}
.searchlist input[type="checkbox"] { display: none;}
.searchlist input[type="checkbox"] ~ span { display: flex; justify-content: center; align-items: center; width: 100%; padding: 20px; background: #F7F7F7; font-weight: 500; color: #377EB8; cursor: pointer; transition: .2s ease-out;}
.searchlist input[type="checkbox"]:checked ~ span { background: #8E8E8E; color: #FFF;}
.autoscroll .swiper-wrapper, #application .swiper-wrapper { transition-timing-function: linear;}
.autoscroll .swiper-slide { width: 400px;}
.row.arrow { display: flex; padding-right: 0; background: none;}
.row.arrow > *:first-child { position: relative;}
.row.arrow > *:first-child::after { content: ''; position: absolute; top: 40px; left: calc(100% - 20px); width: 81px; height: 26px; background: url("../img/common/arrow.svg") center no-repeat;}
.bordertable { display: flex; text-align: center; border: 1px solid #8E8E8E;}
.bordertable > * { flex: 1;}
.bordertable > *:not(:first-child) { border-left: 1px solid #8E8E8E;}
.bordertable figure { margin: 24px 24px -16px;}
.bordertable h4 { margin: auto 0 0; padding: 32px 8px; background: #FFF;}
.lineup li { flex: none; width: calc(50% - 40px);}
.lineup li figure { margin: 0;}
.lineup li figcaption { position: absolute; top: 0; left: 0; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; margin: 0; text-align: center; background: rgba(0,0,0,.5); font-size: 4.8rem; font-weight: 600; letter-spacing: 0.05em; color: #FFF;}
.lineup li h3 { display: flex; align-items: center;}
.lineup li h3 span { display: inline-block; margin-left: 24px;}
.license { align-items: stretch;}
.license li { flex: none; width: calc(50% - 40px); margin-top: 40px;}
.license li > div { padding: 30px; text-align: center; background: #FFF;}
.license li h3 { width: 80%; margin: -60px auto 0; padding: 10px; background: #377EB8; color: #FFF;}
.license li figure { display: flex; justify-content: center; align-items: center; text-align: left;}
.license li figure figcaption { display: inline-block; margin-right: 24px; font-size: 4.8rem; font-weight: 600; line-height: 1; color: #377EB8;}
.license li p { font-size: 2rem; font-weight: 700;}
.license li dl { margin-top: 16px;}
.license li dt { clear: left; float: left; width: 120px; text-align: right; font-weight: 500;}
.license li dd { padding-left: 140px;}
.abs { position: relative;}
.abs .tr { position: absolute; top: 0; right: 0; z-index: 1;}
.onlineshop { align-items: stretch;}
.onlineshop li { flex: none; width: calc(50% - 40px);}
.onlineshop li a { display: flex; flex-direction: column; width: 100%; height: 100%; background: #FFF; border: 1px solid transparent; box-shadow: 1px 1px 4px rgba(0,0,0,.16);}
.onlineshop li h3 { display: flex; justify-content: center; align-items: center; margin: 40px 40px 0; padding: 10px; text-align: center; border: 1px solid #377EB8; font-size: 3.2rem;}
.onlineshop li h3 i { margin-left: 16px;}
.onlineshop li p { padding: 16px 32px;}
.onlineshop li div { margin-top: auto; padding: 24px; background: url("../img/common/blank.svg") right 24px center no-repeat; border-top: 1px solid #D4D4D4; font-weight: 500; transition: .2s ease-out;}
.onlineshop li a:hover { border-color: #377EB8; opacity: 1;}
.onlineshop li a:hover div { background-color: #377EB8; background-image: url("../img/common/blank_w.svg"); color: #FFF;}
.faq dt { position: relative; margin-top: 24px; padding: 24px 96px; background: #F7F7F7; font-weight: 500; color: #6B6B6B; cursor: pointer;}
.faq dt::before { content: 'Q'; position: absolute; top: 0.2em; left: 40px; font-family: 'Barlow Condensed', sans-serif; font-size: 3.7rem; font-weight: 600; color: #377EB8;}
.faq dt .plus { right: 40px;}
.faq .plus::before, .faq .plus::after { background-color: #377EB8;}
.faq dt.on .plus::before { transform: rotate(0deg);}
.faq dt.on .plus::after { transform: rotate(0deg);}
.faq dd { position: relative; display: none; padding: 24px 96px; background: #F7F7F7; border-top: 1px solid rgba(212,212,212,.5);  line-height: 1.9;}
.faq dd::before { content: 'A'; position: absolute; top: 0.2em; left: 40px; font-family: 'Barlow Condensed', sans-serif; font-size: 3.7rem; font-weight: 600; color: #377EB8;}
.bg .faq dt, .bg .faq dd { background-color: #FFF;}
.tab ul { display: flex; align-items: flex-end;}
.tab li { flex: 1; display: flex; justify-content: center; align-items: center; max-width: 50%; height: 50px; text-align: center; background: #8E8E8E; font-weight: 500; color: #FFF; cursor: pointer; transition: .2s ease-out;}
.tab li.on { height: 60px; background: #377EB8;}
.tab li:not(:first-child) { margin-left: 1px;}
.tabcontents { border-bottom: 4px solid #377EB8;}
.tabcontents > *:not(:first-child) { display: none;}
.tabcontent { padding: 24px; background: #F7F7F7;}
.tabcontent ul { display: flex; flex-wrap: wrap;}
.tabcontent li { width: calc(100% / 3);}
.tabcontent li h3 { margin-bottom: 8px; padding-left: 0;}
.tabcontent li h3::before { display: none;}
.tabcontent li p { margin: 0; font-size: 1.4rem; font-weight: 300;;}
.tabcontent input[type="checkbox"] ~ span { justify-content: flex-start; color: #2B2B2B;}
.tabcontent input[type="checkbox"] ~ span figure  { display: flex; justify-content: center; align-items: center; width: 70px; min-width: 70px; height: 70px; margin-right: 16px; background: #FFF; border-radius: 50%;}
.arealist { display: flex; flex-wrap: wrap; font-size: 1.4rem; font-weight: 500;}
.arealist dt { width: 120px; padding: 24px 0; text-align: center; background: #F7F7F7; border-bottom: 1px solid #FFF; color: #377EB8;}
.arealist dd { width: calc(100% - 120px); padding: 24px 0; border-bottom: 1px solid #D4D4D4;}
.arealist dd ul { display: flex; flex-wrap: wrap; width: 100%;}
.arealist dd li { width: 10%; text-align: center;}
.graphlist li { padding: 48px 16px; background: #F7F7F7;}
.valuelist { justify-content: center; align-items: stretch;}
.valuelist li { position: relative; flex: none; width: calc(100% / 3 - 40px); padding: 24px 20px; background: #F7F7F7; border-bottom: 2px solid #377EB8;}
.valuelist li:nth-child(n + 4) { margin-top: 64px;}
.valuelist li .num { position: absolute; top: -0.5em; left: 0.5em; font-size: 4.2rem; color: #377EB8;}
.valuelist li p { margin-top: 0;}
.icontitle { display: flex; align-items: center; text-align: left;}
.icontitle figure { margin: 0;}
.icontitle h3 { flex: 1; margin: 0; padding-left: 8px!important;}
.icontitle h3 i { display: block; color: #377EB8;}
.eventbox .code { display: block; margin-bottom: 8px;}
.eventbox .code i { display: inline-block; margin-right: 8px; vertical-align: baseline; color: #E2CB00;}
.eventbox h4 { margin-bottom: 8px;}
.nextarrow::after { content: ''; position: absolute; bottom: -50px; left: 50%; transform: translateX(-50%) rotate(45deg); width: 30px; height: 30px; border-right: 2px solid #377EB8; border-bottom: 2px solid #377EB8;}
.listarrow { padding-left: 40px; border-left: 1px solid #377EB8;}
.listarrow li { position: relative; margin-bottom: 10px; padding-left: 24px; font-weight: 500; letter-spacing: 0.05em;}
.listarrow li:last-child { margin-bottom: 0;}
.listarrow li::before { content: ''; position: absolute; top: 0.5em; left: 0; width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 16px; border-color: transparent transparent transparent #377eb8;}
.listarrow.alt { margin-top: 20px; padding: 20px; border-top: 1px solid #377EB8; border-bottom: 1px solid #377EB8; border-left: none;}
.listarrow.alt li { padding-left: 16px; font-size: 1.4rem; color: #4D4D4D; letter-spacing: 0;}
.listarrow.alt li::before { top: 0.3em; border-width: 5px 0 5px 10px;}
.prefectures { padding: 200px 0 100px; text-align: center;}
.prefectures::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: url("../img/common/lattice.png") center repeat; z-index: -2;}
.prefectures .mask { position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: rgba(55,126,184,.5); z-index: -1; transition: .2s ease-out .2s;}
.prefectures h3 { position: absolute; top: 0; left: 0; transform: translateY(-100%); width: 100%; margin: 0; padding: 16px 0; text-align: center; font-size: 2.4rem; color: #377EB8;}
.prefectures h3::after { content: ''; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 20px; border-color: #ffffff transparent transparent transparent; z-index: 1;}
.prefectures h4 { position: absolute; top: 96px; left: 50%; transform: translateX(-50%); width: 500px; padding: 8px; text-align: center; background: rgba(55,126,184,.6); border: 1px solid #FFF; font-size: 2rem; font-weight: 500; color: #FFF; box-shadow: 0 0 5px rgba(55,126,184,.3);}
.prefectures.off .mask { background: rgba(255,255,255,.5); transition-delay: 0s;}
.prefectures dl { position: absolute; z-index: 10;}
.prefectures dl.on dt { color: #377EB8;}
.prefectures dt { width: 100%; padding-bottom: 16px; text-align: center; font-size: 2rem; font-weight: 500; color: #FFF; transition: .2s ease-out;}
.prefectures dd ul { display: flex; flex-wrap: wrap; width: 180px;}
.prefectures dd li { width: calc(50% - 2px); margin: 1px;}
.prefectures dd li a { display: block; padding: 8px; text-align: left; background: #FFF url("../img/civil/products/atlusrealevo/local/arr.svg") right 16px center no-repeat; font-weight: 500; color: #6B6B6B; box-shadow: 1px 1px 4px rgba(0,0,0,.16);}
.prefectures dd li a.on { background-color: #377EB8; background-image: url("../img/civil/products/atlusrealevo/local/arr_w.svg"); background-position:  right 10px center; color: #FFF; opacity: 1;}
.hokkaido { top: 200px; right: 0;}
.kanto { bottom: 200px; right: 0;}
.tokai { top: 200px; left: 400px;}
.kansai { top: 200px; left: 200px;}
.chugoku { top: 200px; left: 0;}
.kyusyu { bottom: 200px; left: 0;}
.maparea { max-width: 556px; margin: 0 auto;}
.mapareaitem g { opacity: 0; pointer-events: none; transition: .2s ease-out;}
.mapareaitem g path { fill: #6b9dc5;}
.mapareaitem text { font-size: 1.8rem; font-weight: 500; fill: #377EB8;}
.mapareaitem path { fill: #377EB8; transition: .2s ease-out .2s;}
.mapareaitem.on { opacity: 1;}
.mapareaitem.on g { opacity: 1;}
.mapareaitem.on path { transition-delay: 0s;}
.mapareaitem.off path { fill: rgba(0,0,0,.1); transition-delay: 0s;}

/*form*/
.wrapForm table + table { margin-top: 40px;}
.wrapForm th { width: 35%; padding: 40px; vertical-align: top; background: none;}
.wrapForm td { padding: 32px 0 32px 24px;}
.wrapForm td th, .wrapForm td td { padding: 0 0 8px;}
.wrapForm input[type="text"], .wrapForm input[type="tel"], .wrapForm input[type="email"], .wrapForm input[type="date"], .wrapForm input[type="number"], .wrapForm input[type="url"], .wrapForm select, .wrapForm textarea { position: relative; display: inline-block; width: 100%; margin: 8px 0; padding: 4px 16px; background: #FFF; border: 1px solid #CCC; border-radius: 5px; vertical-align: middle; font-size: 1.6rem;}
.wrapForm input[type="checkbox"], .wrapForm input[type="radio"] { margin-right: 4px;}
.wrapForm select { background-image: url("../img/common/select.svg"); background-position: right 16px center; background-repeat: no-repeat;}
.wrapForm textarea { min-height: 174px;}
.wrapForm input.width30 { width: 30%; margin-right: 24px;}
.wrapForm input#zipbtn { padding-left: 16px; background: url("../img/common/triangle.svg") left center no-repeat; font-size: 1.4rem; font-weight: 500; text-decoration: underline; color: #377EB8;}
.wrapForm input[type="checkbox"] ~ input[type="text"] { width: 70%; margin-left: 24px;}
.must { display: inline-block; margin-left: 16px; padding: 8px; vertical-align: middle; background: #377EB8; font-size: 1.4rem; line-height: 1; color: #FFF;}
.chkcheckbox li { margin-bottom: 8px;}
.privacyInfo { padding: 56px 56px 20px; background: #F7F7F7; font-size: 1.4rem;}
.privacyInfo h4 { text-align: center;}
.agree { padding: 20px 56px 56px; text-align: center; background: #F7F7F7; font-size: 1.4rem; font-weight: 500; color: #377EB8;}
.bg .privacyInfo, .bg .agree { background: #FFF;}
.wrapForm ::-webkit-input-placeholder { font-weight: 500; color: #B4B4B4;}
.wrapForm ::-moz-placeholder { font-weight: 500; color: #B4B4B4;}
.wrapForm :-ms-input-placeholder { font-weight: 500; color: #B4B4B4;}

/*corporate*/
.companyindex { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); background: url("../img/corporate/top/company.jpg") center top no-repeat; background-size: cover;}
.companytitle { display: flex; justify-content: space-between; max-width: 1080px; margin: 0 auto; padding: 140px 40px;}
.companytitle > div { width: 50%; padding: 40px;}
.companytitle h3 img { margin: 16px 0 32px;}
.companytitle p { line-height: 1.9;}
.companygrid { position: relative; display: grid; grid-template-columns: 1fr 1fr; grid-gap: 40px; top: -70px; z-index: 1;}
.companygrid > * { margin: 0; box-shadow: 0 3px 6px rgba(0,0,0,.16);}
.companygrid > *:nth-child(1) { grid-row: 1 / 3; grid-column: 1 / 2;}
.companygrid > *:nth-child(2) { grid-row: 1 / 2; grid-column: 2 / 3;}
.companygrid > *:nth-child(3) { grid-row: 2 / 3; grid-column: 2 / 3;}
.companygrid > div { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 40px; text-align: center; background: #377EB8; color: #FFF; overflow: hidden;}
.companygrid div h3 { position: relative; display: inline-block;}
.companygrid div h3 span { position: relative; display: block; margin-top: 8px; border-top: 2px solid #FFF; font-size: 4.4rem;}
.companygrid div h3 i { position: absolute; top: -0.2em; left: 50%; transform: translateX(-50%); font-size: 19.7rem; font-weight: 500; font-style: italic; color: rgba(9,9,9,.1);}
.companygrid div p { text-align: left;}
.business { position: relative; padding: 100px;}
.business + .business { margin-top: 100px;}
.business > figure { float: right; width: 72%; margin: -100px -100px 48px 0;}
.business header { float: left; text-align: left;}
.business header::after { position: absolute; top: 1.6em; left: -100px; width: 60px!important; margin: 0!important;}
.business section { clear: both;}
.borderright { display: flex; padding: 0; font-size: 2.4rem; color: #377EB8;}
.borderright::before { order: 1; position: relative!important; flex: 1; top: 0; width: auto; margin-left: 16px;}
.borderbottom { padding-bottom: 16px; border-bottom: 2px solid #377EB8;}
.numbers { margin: 0 -10px;}
.numbers li { margin: 0 10px; text-align: center; border: 1px solid #377EB8;}
.numbers dl { padding: 24px 40px;}
.numbers dt { padding-bottom: 16px; border-bottom: 1px solid #D4D4D4; font-size: 3.2rem; font-weight: 500;}
.numbers dd { font-size: 2.8rem; font-weight: 500;}
.numbers dd i { display: inline-block; vertical-align: bottom; font-size: 14rem; color: #377EB8;}
.numbers p { margin: 0; padding: 16px; background: #377EB8; font-size: 1.8rem; font-weight: 500; line-height: 1.4; color: #FFF;}
.forte i { position: absolute; bottom: -1em;; left: 0; font-size: 4.8rem; font-weight: 500; font-style: italic; color: #377EB8;}
.forte i span { font-size: 12rem;}
.reverse .forte i { left: auto; right: 0;}
.thought h2, .thought p { font-family: 'Shippori Antique', sans-serif; font-weight: 400;}
.thought p { color: #6B6B6B;}
.thought p.fs18 { margin-bottom: 40px; line-height: 2.2; letter-spacing: 0.02em;}
.thoughttitle { text-align: left; white-space: nowrap; z-index: 1;}
.thoughttitle h2 { display: inline-block; color: #377EB8;}
.thoughttitle h2 span.adjust { display: inline-block; margin-left: 30%;}
.thoughttitle i { position: absolute; top: 50%; left: 40%; display: inline-block; text-align: right; font-size: 12rem; font-weight: 500; font-style: italic; color: #F7F7F7; z-index: -1;}
.thought1 .thoughttitle { margin: 144px 0 80px -50%;}
.thought1 section { position: relative; z-index: 1; overflow: visible;}
.thought2 .thoughttitle { padding: 80px 0 40px;}
.thought2 .thoughttitle h2 span.adjust { margin-left: 10%;}
.thought2::after { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 800px; height: 800px; background: url("../img/corporate/thought/circle.svg") center no-repeat; z-index: 0;}
.thought2 section { position: relative; z-index: 1;}
.thought2 ul { position: relative; margin-top: -140px;}
.thought2 li { position: relative; margin-top: 70px; padding: 32px; background: #FFF; border-radius: 16px; box-shadow: 0 3px 6px rgba(0,0,0,.16);}
.thought2 li figure { position: absolute; top: 0; left: 0; transform: translate(-50%,-50%);}
.thought2 .mrfix { width: calc(50% + 50vw); margin-top: -44%; z-index: -1;}
.thought2 section > i { display: block; width: 100%; text-align: center; font-size: 12rem; font-weight: 500; font-style: italic; letter-spacing: 0.07em; color: #FFF; z-index: 1;}
#application .swiper-prev { position: absolute; top: calc(50% - 25px); left: calc(50% - 50vw); z-index: 10;}
#application .swiper-next { position: absolute; top: calc(50% - 25px); right: calc(50% - 50vw); z-index: 10;}
#application .swiper-slide { display: flex; height: auto;}
#application .swiper-slide a { display: flex; justify-content: center; align-items: center; width: 100%; height: auto; padding: 40px 24px; box-shadow: 1px 1px 4px rgba(0,0,0,.16);}
.thought3 { padding: 48px 0 0;}
.thought3 > figure { width: 100vw; margin: 0 calc(50% - 50vw);}
.thought3 header { position: absolute; top: 0; left: 40px; margin-top: 0; z-index: 1;}
.thought3 header h2 { margin-top: 10vw; font-size: 2.8rem; letter-spacing: 0.05em; color: #FFF; text-shadow: 1px 1px 4px rgba(0,0,0,.16);}
.thought3 section { position: absolute; bottom: 2.4vw; right: 40px; z-index: 1;}
.thought4::after { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: url("../img/corporate/thought/bg.svg") center bottom no-repeat; background-size: cover; z-index: -1;}
.thought4 .row div { align-self: flex-start; margin: 8% -8% 0 0; padding: 80px; background: #FFF; border-radius: 16px;}
.thought4 .mrfix { z-index: 1;}
.thought4 .mrfix img { border-radius: 16px 0 0 16px;}
.thoughtend { display: flex; flex-direction: column; align-items: flex-end;}
.thoughtend p { display: inline-block; font-size: 3.2rem; letter-spacing: 0.05em; color: #377EB8;}
.thoughtend p span::after { content: ''; display: inline-block; width: 200px; height: 1px; margin-left: 16px; vertical-align: middle; background: #377EB8;}
.map iframe { width: 100%; height: 350px;}
.contactlist { display: flex; flex-wrap: wrap; justify-content: flex-start!important; margin-top: 0!important;}
.contactlist > * { display: flex; width: calc(25% - 1px); margin-left: 1px; margin-bottom: 1px;}
.contactlist > * a { text-align: left; line-height: 1.4;}




@media screen and (max-width: 1280px) {
#header { height: 50px;}
#header + * { margin-top: 50px;}
#mv { margin-top: -50px;}
#header.is-fixed { background: #FFF;}
#logo { display: flex; justify-content: center; align-items: flex-start; align-items: center; height: 50px; margin: 0 10px;}
#logo span { display: inline-block; margin-left: 5px; padding: 2px 5px; background: #090909; font-size: 1rem; color: #FFF; white-space: nowrap;}
#nav { pointer-events: none; position: fixed; top: 50px; left: 50px; display: block; width: 100%; height: calc(100vh - 50px); margin: 0; background: #377EB8; opacity: 0; overflow: auto; z-index: 50;}
#nav > ul { margin-bottom: 32px; border-bottom: 1px solid #FFF;}
#nav > ul > li { position: relative; border-top: 1px solid #D5D5D5;}
#nav > ul > li > a { display: block; padding: 20px; font-size: 1.6rem; color: #FFF;}
.navtitle { display: none;}
.navsecond { display: none;}
.navsecond > ul { background: #F7F7F7;}
.navsecond > ul > li { position: relative; border-top: 1px solid #D5D5D5;}
.navsecond > ul > li > a { display: block; padding: 16px 40px;}
.navthird { display: none;}
.navthird > ul { padding: 8px 0; background: #FFF;}
.navthird > ul > li { position: relative;}
.navthird > ul > li a { display: block; padding: 8px 40px; font-size: 1.2rem;}
#nav .plus { top: 30px; right: 10px;}
#nav .navsecond .plus { top: 24px;}
#nav .navsecond .plus::before, #nav .navsecond .plus::after { background: #D5D5D5;}
#nav .plus.on::before { transform: rotate(0deg);}
#nav .plus.on::after { transform: rotate(0deg);}
#open { cursor: pointer; transition: .2s ease-in-out; pointer-events: auto;}
#open div { position: relative; display: block; width: 50px; height: 50px;}
#open span { position: absolute; left: 14px; display: block; width: 23px; height: 2px; background: #377EB8; transition: transform .2s ease-in-out;}
#open span:nth-child(1) { top: 18px;}
#open span:nth-child(2) { top: 24px;}
#open span:nth-child(3) { top: 30px;}
.nav-open { background: #FFF;}
.nav-open #open span:nth-child(1) { top: 24px; transform: rotate(-45deg);}
.nav-open #open span:nth-child(2) { transform: scaleX(0);}
.nav-open #open span:nth-child(3) { top: 24px; transform: rotate(45deg);}
.nav-open #nav { pointer-events: auto; left: 0; opacity: 1; transition: .2s ease-in-out;}
.nav-open #nav > ul > li { opacity: 1;}
}





@media screen and (max-width: 1024px) {
body { font-size: 1.4rem;}


/*FOOTER*/
/*******************************************************************/
#inquiries, #sns { padding: 50px 20px;}
#inquiries .heading i::before, #sns .heading i::before { position: relative; top: auto; left: auto; margin: 0 auto 10px; width: 2px; height: 40px;}
.bannerbtn { display: block; margin: 0 0 -20px;}
.bannerbtn li { width: auto; margin: 0 0 20px;}
.bannerbtn li a { height: 80px; padding-right: 30px;}
.bannerbtn li a::before { width: 80px; height: 80px; margin-right: 20px; background-size: 40% auto;}
.bannerbtn li a:not([target="_blank"])::after { right: 10px;}
.bannerbtn li a[target="_blank"]::after { right: 10px;}
.bannerbtn li a strong { font-size: 1.8rem;}
.bannerbtn li a:not([target="_blank"]):hover::after { right: 20px;}
#sitemap { display: block; padding: 50px 20px;}
#sitemap dl { width: auto;}
#sitemap dt { font-size: 2rem;}
#info { display: block; padding: 50px 20px; text-align: center;}
#info .logo { position: relative; z-index: 1;}
#info address { margin: 20px 0 0; font-size: 1rem; letter-spacing: 0em;}


/*CONTENTS*/
article { padding: 50px 20px;}
article header { margin-bottom: 30px;}
article header h2, article header h3 { font-size: 2.4rem;}
article header p { font-size: 1.8rem;}
section + header, section + section { margin-top: 50px;}
section table:not(.nowrap) th { display: block;}
section table:not(.nowrap) th[scope="col"] { display: none;}
section table:not(.nowrap) th[scope="row"] { width: auto;}
section table:not(.nowrap) td { display: block;}
section table:not(.nowrap) td + td { padding-top: 0;}
section table:not(.nowrap) td:empty { display: none;}
section table:not(.nowrap) td::before { content: attr(data-heading); display: block; font-weight: 500;}
section table:not(.nowrap) thead + tbody th[scope="row"] { background: #F7F7F7; border-top: 1px solid #D4D4D4;}
section table:not(.nowrap) thead + tbody td { border-left: none;}
section .scroll th, .scroll td { padding: 8px; font-size: 1rem;}
section.sep { padding-top: 50px;}
.halfbg::before { height: calc(100% - 100px);}
article.halfbg::before { height: calc(100% - 100px);}
section.halfbg { padding-bottom: 50px;}
.whitebghalf::before { display: none;}
.blackbghalf { position: relative; margin-top: -30px; padding: 30px 0;}
.blackbghalf::before { content: ''; position: absolute; top: 0; left: calc(50% - 50vw); width: 100vw; height: 100%; background: rgba(0,0,0,.9); z-index: -1;}
.whitebgleft, .whitebgright { padding: 50px 0;}
.flowbg::before { height: calc(100% - 85px);}
.imgbg img { width: 100%; height: calc(100% - 50px); min-width: initial;}
.imgbg.full { margin: -50px 0 30px;}
.imgbg.full img { position: relative; height: auto;}
.imgbg ~ section:last-of-type { margin-bottom: 50px;}
.imgin { width: auto; padding: 30px 20px;}
.box { margin-bottom: 30px;}
.half { width: auto;}
.mt100 { margin-top: 50px!important;}
.overhang { margin-top: 0!important;}
.fs14 { font-size: 1.2rem!important;}
.fs16 { font-size: 1.4rem!important;}
.fs18 { font-size: 1.5rem!important;}
.fs20 { font-size: 1.6rem!important;}
.fs24 { font-size: 2rem!important;}
.fs28 { font-size: 2.2rem!important;}
.fs32 { font-size: 2.4rem!important;}
.fs40 { font-size: 2.8rem!important;}
.row { display: block; margin-bottom: -20px;}
.row > * { width: auto!important; margin-bottom: 20px;}
.row figure img[src*="jpg"], .row figure img[src*="png"] { width: 100%;}
.btn a, .swp { padding: 20px; background-position: right 20px center;}
.btn a:hover, .swp:hover { background-position: right 20px center;}
.btn.rb { width: 70%;}
.indent { font-size: 1.2rem;}
.sp { display: block;}
.pc { display: none;}


/*PAGE*/
#titlecontents figure { height: 160px!important;}
#titlecontents h1 { font-size: 2.8rem;}

#titlecontents2 { grid-template-columns: 1fr; gap: 24px; min-height: initial; padding: 32px 0 0; text-align: center;}
#titlecontents2 .img { padding: 0 16%;}
#titlecontents2 .img.fit { margin-bottom: -24px; padding: 0;}
#titlecontents2 .img.fit img { position: relative; top: 0; left: 0; height: auto;}
#titlecontents2 .contents { position: relative; padding: 0 12% 0 14%; z-index: 1;}
	
#titlecontents3 { grid-template-columns: 1fr; gap: 24px; min-height: initial; padding: 32px 0 0; text-align: center;}
#titlecontents3 .img { padding: 0 16%;}
#titlecontents3 .img.fit { margin-bottom: -24px; padding: 0;}
#titlecontents3 .img.fit img { position: relative; top: 0; left: 0; height: auto;}
#titlecontents3 .contents { position: relative; padding: 0 12% 0 14%; z-index: 1;}

#titlecontents4 { grid-template-columns: 1fr; gap: 24px; min-height: initial; padding: 32px 0 0; text-align: center;}
#titlecontents4 .img { padding: 0 16%;}
#titlecontents4 .img.fit { margin-bottom: -24px; padding: 0;}
#titlecontents4 .img.fit img { position: relative; top: 0; left: 0; height: auto;}
#titlecontents4 .contents { position: relative; padding: 0 12% 0 14%; z-index: 1;}

.titlebtn { margin-top: 24px;}
.titlebtn::after { width: 32px;}
.titlebtn a { grid-template-columns: 48px 1fr; min-width: 256px; max-width: 256px; min-height: 48px; padding-right: 32px;}
.titlebtn a::after { right: 8px; width: 10px; height: 10px;}
.titlebtn a span { align-self: center; display: block; padding: 12px;}
.titlebtn a:hover::after { right: 4px;}

#subnav { position: relative; top: 0!important; display: block;}
#subnav dl { min-width: 160px;}
#subnav dt { height: auto; padding: 10px;}
#subnav dt::before, #subnav dt::after { right: 10px;}
#subnav dd { width: 100%; white-space: normal;}
#subnav > ul { background: #8E8E8E;}
#subnav > ul > li { margin: 0;}
#subnav > ul > li a { min-width: initial; height: auto; padding: 10px; font-size: 1.2rem;}
#subnav > ul > li.on a { height: auto;}
#subnav.wide > ul > li a { height: 40px;}
#siblings { padding: 0 10px 4px;}
#siblings li { margin: 5px;}
#siblings li a { font-size: 1.1rem;}
#breadcrumb ul { padding: 20px;}
.anchor { flex-wrap: wrap;}
.anchor li { flex: none; width: 50%; margin-bottom: 16px;}
.anchor li a h3 { min-height: initial; font-size: 1.6rem;}
.heading { padding-left: 0; text-align: center;}
.heading i::before { position: relative; top: auto; left: auto; margin: 0 auto 10px; width: 2px; height: 40px;}
.heading p { position: relative; width: auto; margin-top: 50px; text-align: left;}
.heading2 { padding-top: 48px;}
.heading2 i { font-size: 8rem;}
.heading2 h3 { font-size: 2.4rem;}
.bluebox { padding: 20px;}
.whitebox { padding: 20px;}
.stairs::before { width: calc(100vw - 20px);}
.stairs.reverse i, .stairs.reverse h3, .stairs.reverse p { margin-right: 10px;}
.stairs:not(.reverse) i, .stairs:not(.reverse) h3, .stairs:not(.reverse) p { margin-left: 10px;}

/*index*/
#mvcontents { position: relative; height: auto!important;}
#mvheader { position: relative; height: auto;}
#mvheader figure { position: relative; padding-top: 56.25%;}
#mvheader h1 { position: relative; bottom: 0; right: 0; width: 80%; margin: -10vw 20px 20px auto;}
#mvheader .btn { position: relative; top: 0; width: 200px;}
#mvheader .btn a { min-height: initial;}
#floatingbanner { right: 10px; bottom: 10px; padding: 10px; font-size: 1rem;}
#floatingbanner span { font-size: 1.4rem;}
#floatingbanner a { margin-top: 10px; padding: 10px; font-size: 1.2rem;}
body.home #mvheader figure { padding-top: 80%;}
body.home #mvheader h1 { position: absolute; margin: 0;}
body.home #floatingbanner a { padding: 16px 10px;}
body.home #floatingbanner a img { width: 64px;}
#scroll { display: none;}
.productbox { padding: 40px 20px 20px;}
.productbox .row > * { margin-bottom: 20px;}
.casebox a { display: block;}
.casebox a figure { width: auto;}
.casebox a > div { border-top: 1px solid #D4D4D4; border-left: none;}
.casebox .cat { position: relative; bottom: 0;}
.casebox .viewmore { margin-top: 20px;}
#pickup .swiper-container { margin-right: 0; height: auto;}

/*news*/
.newslist li { padding: 20px 0;}
.phone li { margin-top: 0;}
.related { display: block; margin: 0 0 -20px!important;}
.related li { width: auto; margin: 0 0 20px;}
.related li a { justify-content: flex-start; min-height: 80px; padding: 20px; font-size: 1.6rem;}
.related li a::after { right: 10px;}
.related li a:hover::after { right: 10px;}
.related li.back { width: auto;}
.related li.back a { min-height: 80px;}

/*products*/
.flow li { flex: none; width: calc(100% / 3 - 20px)!important;}
.flow.alot li:nth-child(9n)::after { display: none;}
.flow li:nth-child(3n + 1):not(:nth-child(1))::after { content: ''; position: absolute; bottom: 100%; left: 0; width: calc(300% + 40px); height: 40px; background: url("../img/common/alot.svg") center no-repeat; background-size: 70% 40px;}
.flow li:nth-child(n + 4), .flow.alot li:nth-child(n + 9) { margin-top: 40px;}
.pointflow { margin-bottom: 0;}
.pointflow ol li { min-height: 110px; padding-bottom: 64px; font-size: 1rem;}
.pointflow ol li::before { top: 56px;}
.pointflow ol li::after { top: 56px;}
.pointflow ul li { height: 64px; text-align: center; font-size: 1rem;}
.pointflow ul li:not(:first-child)::before { transform: translate(-60%,-50%) scale(0.4, 1.5) rotate(45deg);}
.point + * { margin-top: 20px;}
.beforeafter::after { transform: rotate(135deg) translate(-50%, 100%);}
.beforeafter > *:not(:first-child) { margin-top: 56px;}
.indexlist li { max-width: 560px; margin-left: auto; margin-right: auto; padding-left: 12px; padding-right: 12px;}
.indexlist li figure { text-align: center;}
.indexlist li .btn a { margin: 0 auto;}
.step li:not(:first-child) figure::before, .stepbox li:not(:first-child)::before { top: -40px; right: calc(50% - 10px); transform: rotate(135deg);}
.step li, .stepbox li { margin-bottom: 50px;}
.spec td { border-left: none; background: transparent;}
.flowlist { padding: 30px 0 60px;}
.flowlist li { margin-top: 64px!important;}
.flowlistvertical li { display: block;}
.flowlistvertical li figure { width: auto; max-width: 560px; margin: 0 auto 30px;}
.flowlistvertical li > div { margin-left: 0;}
.autoscroll .swiper-slide { width: 300px;}
.row.arrow { display: block;}
.row.arrow > *:first-child { margin-bottom: 120px;}
.row.arrow > *:first-child::after { top: 100%; left: 50%; transform: translate(-50%, 50px) rotate(90deg);}
.bordertable { display: block;}
.bordertable > *:not(:first-child) { border-left: none; border-top: 1px solid #8E8E8E;}
.license li { margin-top: 64px;}
.license li figure figcaption { font-size: 3.2rem;}
.abs .tr { position: relative; margin-top: 24px;}
.faq dt { padding: 24px 48px;}
.faq dt::before { top: 0.3em; left: 16px; font-size: 3.2rem;}
.faq dt .plus { right: 16px;}
.faq dd { padding: 24px 24px 24px 48px;}
.faq dd::before { top: 0.3em; left: 16px; font-size: 3.2rem;}
.tabcontent { padding: 16px;}
.tabcontent li { width: calc(100% / 2);}
.tabcontent li h3 { margin-bottom: 8px; text-align: center; font-size: 1.4rem;}
.tabcontent li p { font-size: 1.2rem;}
.tabcontent input[type="checkbox"] ~ span { flex-direction: column; padding: 16px;}
.tabcontent input[type="checkbox"] ~ span figure  { margin: 0 auto 8px;}
.arealist dt { width: 100px;}
.arealist dd { width: calc(100% - 100px); padding-bottom: 8px;}
.arealist dd li { width: calc(100% / 3); padding-bottom: 16px;}
.graph { display: flex;}
.graph > figure { width: 50px;}
.graph > figure img { position: absolute; top: 0; left: 0; transform-origin: left bottom; transform: rotate(90deg); max-width: 800px;}
.graphlist { flex: 1;}
.graphlist li { padding: 24px 16px;}
.valuelist li { margin-top: 40px!important;}
.nextarrow { margin-bottom: 100px;}
.prefectures { padding: 100px 0 50px;}
.prefectures h3 { left: -20px; width: 100vw; padding: 16px 20px; transform: translateY(0); background: #FFF; font-size: 2rem;}
.prefectures h4 { position: relative; top: 24px; left: 0; transform: translateX(0); width: auto; padding: 8px; font-size: 1.6rem;}
.prefectures dl { position: relative; top: auto; left: auto; bottom: auto;}
.prefectures dd ul { width: auto; margin-bottom: 24px;}
.prefectures dd li { width: calc(100% / 3 - 2px);}

/*form*/
.wrapForm th { width: auto; padding: 24px 0 16px;}
.wrapForm td { padding: 0 0 24px;}
.wrapForm input.width30 { width: 100%; margin-right: 0;}
.wrapForm input[type="checkbox"] ~ input[type="text"] { width: 100%; margin-left: 0;}
.must { font-size: 1.2rem;}
.chkcheckbox li { margin-bottom: 8px;}
.privacyInfo { padding: 32px 24px 20px;}
.agree { padding: 20px 24px 32px;}

/*corporate*/
.companytitle { display: block; padding: 50px 20px 70px;}
.companytitle > div { width: auto;}
.companygrid { display: block;}
.companygrid > * { margin-bottom: 20px;}
.companygrid div h3 { font-size: 1.8rem;}
.business { padding: 32px;}
.business + .business { margin-top: 50px;}
.business > figure { float: none; width: auto; margin: 0 0 24px;}
.business header { float: none;}
.business header::after { top: 1.2em; left: -32px; width: 20px!important;}
.borderright { font-size: 1.8rem;}
.borderbottom { font-size: 2.4rem;}
.numbers li:not(:first-child) { margin-top: 20px;}
.forte i { position: relative; bottom: 0; font-size: 3.2rem;}
.forte i span { font-size: 6.4rem;}
.thoughttitle h2 span.adjust { margin-left: 10%;}
.thoughttitle i { left: 0; font-size: 8rem;}
.thought1 .thoughttitle { margin: 50px 0;}
.thought2 .thoughttitle { padding: 80px 0 0;}
.thought2 ul { margin-top: 0;}
.thought2 li { margin-top: 50px;}
.thought2 li figure { left: 30px; width: 80px;}
.thought2 section > i { font-size: 8rem;}
.thought3 { padding: 24px 0 0;}
.thought3 > figure img { position: relative; width: 150%; max-width: initial; left: -25%;}
.thought3 header { left: 20px;}
.thought3 header div { width: 40%;}
.thought3 header h2 { font-size: 1.6rem;}
.thought3 section { position: relative; bottom: 0; right: 0; padding: 0 20px; background: #F7F7F7;}
.thought3 p, .thought4 p { margin: 0!important;}
.thought4 .row div { margin: 20px 0 40px 20px; padding: 20px;}
.thoughtend { align-items: flex-start;}
.thoughtend p { display: inline-block; font-size: 2rem;}
.thoughtend p span::after { width: 40px;}
.listarrow { padding-left: 20px;}
.contactlist > * { width: calc(50% - 1px);}
}


div.g-recaptcha{
    width: 304px;
    height: 78px;
    margin: 20px auto 0px auto;
}
@media print{
body { width: 980px; height: auto;}
.animated { opacity: 1;}
}


/*floatingbanner2(archi)*/
#floatingbanner2 { position: fixed; right: 20px; bottom: 20px; padding: 15px; text-align: center; background: #E08A43; border-radius: 10px; font-size: 1.2rem; font-weight: 500; color: #FFF; box-shadow: 1px 1px 4px rgba(0,0,0,.16); z-index: 20;}
#floatingbanner2 span { font-size: 2rem; letter-spacing: 0.05em;}
#floatingbanner2 a { display: block; margin-top: 15px; padding: 15px; background: #D4660A; border-radius: 10px; font-size: 1.4rem; color: #FFF;}
#floatingbanner2 a:hover { background: #FFF; color: #6B6B6B; opacity: 1;}
body.home #floatingbanner2 { padding: 0; right: 0;}
body.home #floatingbanner2 a { position: relative; margin: 0; padding: 24px 16px; background: none;}
body.home #floatingbanner2 a::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(55,126,184,1); background: linear-gradient(0deg, rgba(55,126,184,1) 0%, rgba(55,174,184,1) 100%); border-radius: 10px 0 0 10px; z-index: -2;}
body.home #floatingbanner2 a::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgb(55,174,184); background: linear-gradient(0deg, rgba(55,174,184,1) 0%, rgba(55,126,184,1) 100%); border-radius: 10px 0 0 10px; z-index: -1; opacity: 0; transition: .2s ease-out;}
body.home #floatingbanner2 a:hover { color: #FFF;}
body.home #floatingbanner2 a:hover::after { opacity: 1;}
body.home #floatingbanner2 a i { display: block; margin-top: 8px;}

@media screen and (max-width: 1024px) {
#floatingbanner2 { right: 10px; bottom: 10px; padding: 10px; font-size: 1rem;}
#floatingbanner2 span { font-size: 1.4rem;}
#floatingbanner2 a { margin-top: 10px; padding: 10px; font-size: 1.2rem;}
body.home #floatingbanner2 a { padding: 16px 10px;}
body.home #floatingbanner2 a img { width: 64px;}
}

/*floatingbanner_red(archi)*/
#floatingbanner_red { position: fixed; right: 20px; bottom: 20px; padding: 15px; text-align: center; background: #e6002d; border-radius: 10px; font-size: 1.2rem; font-weight: 500; color: #FFF; box-shadow: 1px 1px 4px rgba(0,0,0,.16); z-index: 20;}
#floatingbanner_red span { font-size: 2rem; letter-spacing: 0.05em;}
#floatingbanner_red a { display: block; margin-top: 15px; padding: 15px; background: #FFF; border-radius: 10px; font-size: 1.4rem; color: #2B2B2B;}
#floatingbanner_red a:hover { background: #2B2B2B; color: #FFF; opacity: 1;}
body.home #floatingbanner_red { padding: 0; right: 0;}
body.home #floatingbanner_red a { position: relative; margin: 0; padding: 24px 16px; background: none;}
body.home #floatingbanner_red a::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(55,126,184,1); background: linear-gradient(0deg, rgba(55,126,184,1) 0%, rgba(55,174,184,1) 100%); border-radius: 10px 0 0 10px; z-index: -2;}
body.home #floatingbanner_red a::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgb(55,174,184); background: linear-gradient(0deg, rgba(55,174,184,1) 0%, rgba(55,126,184,1) 100%); border-radius: 10px 0 0 10px; z-index: -1; opacity: 0; transition: .2s ease-out;}
body.home #floatingbanner_red a:hover { color: #FFF;}
body.home #floatingbanner_red a:hover::after { opacity: 1;}
body.home #floatingbanner_red a i { display: block; margin-top: 8px;}

@media screen and (max-width: 1024px) {
#floatingbanner_red { right: 10px; bottom: 10px; padding: 10px; font-size: 1rem;}
#floatingbanner_red span { font-size: 1.4rem;}
#floatingbanner2 a { margin-top: 10px; padding: 10px; font-size: 1.2rem;}
body.home #floatingbanner_red a { padding: 16px 10px;}
body.home #floatingbanner_red a img { width: 64px;}
}

/*doboku_base(result only)*/
.db-bg-blue {
    background-color: #377EB8;
}

.db-bg-white {
    background-color: #FFFFFF;
    border-right: 1px solid #D4D4D4;
}

.db-color-white {
    color: #FFFFFF;
}

.db-contents-box {
    margin-bottom: 65px;
}

@media screen and (max-width: 1024px) {
    .db-bg-white {
        background-color: #FFFFFF;
        border-right: none;
    }
}

/*bannerbtn2*/
#inquiries .bannerbtn2 { justify-content: flex-start;}
.bannerbtn2 { display: flex; flex-wrap: wrap; justify-content: center; margin: -20px;}
.bannerbtn2 li { display: flex; width: calc(50% - 40px); margin: 20px;}
.bannerbtn2 li a { position: relative; display: flex; align-items: center; width: 100%; height: 80px; padding-right: 50px; background: #377EB8; font-size: 1.4rem; font-weight: 500; color: #FFF;box-shadow: 1px 1px 4px rgba(0,0,0,.16);}
.bannerbtn2 li a::before { content: ''; width: 140px; height: 80px; margin-right: 40px; background-position: center; background-repeat: no-repeat; border-right: 1px solid #FFF;}
.bannerbtn2 li a:not([target="_blank"])::after { content: ''; position: absolute; top: calc(50% - 10px); right: 40px; transform-origin: left top; transform: rotate(45deg); display: block; width: 16px; height: 16px; border-top: 2px solid #FFF; border-right: 2px solid #FFF; transition: .2s ease-out;}
.bannerbtn2 li a[target="_blank"]::after { content: ''; position: absolute; top: calc(50% - 10px); right: 40px; width: 20px; height: 20px; background: url("../img/common/blank.svg") center no-repeat;}
.bannerbtn2 li a strong { display: block; font-size: 2.2rem;}
.bannerbtn2 li.civil a::before { background-image: url("../img/common/civil_w.svg");}
.bannerbtn2 li.archi a::before { background-image: url("../img/common/archi_w.svg");}
.bannerbtn2 li.sensing a::before { background-image: url("../img/common/sensing_w.svg");}
.bannerbtn2 li.cad a::before { background-image: url("../img/common/cad_w.svg");}
.bannerbtn2 li.trial a::before { background-image: url("../img/common/trial_w.svg");}
.bannerbtn2 li.request a::before { background-image: url("../img/common/request_w.svg");}
.bannerbtn2 li.inquiry a::before { background-image: url("../img/common/inquiry_w.svg");}
.bannerbtn2 li.download a::before { background-image: url("../img/common/download_w.svg");}
.bannerbtn2 li.demo a::before { background-image: url("../img/common/demo_w.svg");}
.bannerbtn2 li.youtube a::before { background-image: url("../img/common/youtube_w.svg");}
.bannerbtn2 li.facebook a::before { background-image: url("../img/common/facebook_w.svg");}
.bannerbtn2 li a:hover { background: #FFF; color: #6B6B6B; opacity: 1;}
.bannerbtn2 li a:not([target="_blank"]):hover::after { right: 30px; border-color: #6B6B6B;}
.bannerbtn2 li a[target="_blank"]:hover::after { background-image: url("../img/common/blank.svg");}
.bannerbtn2 li.civil a:hover::before { background-image: url("../img/common/civil.svg");}
.bannerbtn2 li.archi a:hover::before { background-image: url("../img/common/archi.svg");}
.bannerbtn2 li.sensing a:hover::before { background-image: url("../img/common/sensing.svg");}
.bannerbtn2 li.cad a:hover::before { background-image: url("../img/common/cad.svg");}
.bannerbtn2 li.trial a:hover::before { background-image: url("../img/common/trial.svg");}
.bannerbtn2 li.request a:hover::before { background-image: url("../img/common/request.svg");}
.bannerbtn2 li.inquiry a:hover::before { background-image: url("../img/common/inquiry.svg");}
.bannerbtn2 li.download a:hover::before { background-image: url("../img/common/download.svg");}
.bannerbtn2 li.demo a:hover::before { background-image: url("../img/common/demo.svg");}

@media screen and (max-width: 1024px) {
body { font-size: 1.4rem;}

#inquiries, #sns { padding: 50px 20px;}
#inquiries .heading i::before, #sns .heading i::before { position: relative; top: auto; left: auto; margin: 0 auto 10px; width: 2px; height: 40px;}
.bannerbtn2 { display: block; margin: 0 0 -20px;}
.bannerbtn2 li { width: auto; margin: 0 0 20px;}
.bannerbtn2 li a { height: 80px; padding-right: 30px;}
.bannerbtn2 li a::before { width: 80px; height: 80px; margin-right: 20px; background-size: 40% auto;}
.bannerbtn2 li a:not([target="_blank"])::after { right: 10px;}
.bannerbtn2 li a[target="_blank"]::after { right: 10px;}
.bannerbtn2 li a strong { font-size: 1.8rem;}
.bannerbtn2 li a:not([target="_blank"]):hover::after { right: 20px;}
}

/*casestudy*/
.col_3{
    width: 100%;
    display: flex;
    flex-wrap: wrap;
  }
  .col_3 > *{
    width: calc( 33.33333% - 8px ) ;
    margin-right: 12px;
    margin-bottom: 12px;
  }
  .col_3 > *:nth-child(3n){
    margin-right: auto;
  }
  .col_3 div{
    margin-bottom: 50px;
    height: 500px;
    padding: 10px 10px 30px;
  }
  
  .col_3 ul{
    margin-top: 20px;
  }
  @media screen and (max-width: 960px) {
    .col_3 > *{
        width: calc( 50% - 6px ) ;
    }
    .col_3 > *:nth-child(3n){
        margin-right: 12px;
    }
    .col_3 > *:nth-child(2n){
        margin-right: auto;
    }
  }
  @media screen and (max-width: 580px) {
    .col_3 > *{
        width: 100%;
        margin-right: auto;
    }
    .col_3 > *:nth-child(3n){
        margin-right: auto;
    }
  }

   /* pagination */
.pagination {
  display: inline-block;
}

.pagination a {
  color: black;
  float: left;
  font-weight: 500;
  padding: 12px 20px;
  text-decoration: none;
  transition: background-color .3s;
  border: 1px solid #ddd;
}

.pagination a.active {
  background-color: #377EB8;
  color: white;
  border: 1px solid #377EB8;
}

.pagination a:hover:not(.active) {background-color: #ddd;}

@media screen and (max-width: 580px) {
  .pagination a {
    color: black;
    float: left;
    padding: 8px 16px;
    text-decoration: none;
    transition: background-color .3s;
    border: 3px solid #ddd;
  }
}

/*スマホ非表示*/
@media screen and (max-width: 460px){
.pcview {display:none}
}
  