@charset "utf-8";
/* CSS Document */

/* =============================================================================
 Reset
============================================================================= */

/* 
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com 
Twitter: @rich_clark
*/

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

body {
	line-height:1;
}

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

nav ul,
ul {
	list-style:none;
}

blockquote, q {
	quotes:none;
}

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

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

/* change colours to suit your needs */
ins {
	background-color:#ff9;
	color:#000;
	text-decoration:none;
}

/* change colours to suit your needs */
mark {
	background-color:#ff9;
	color:#000; 
	font-style:italic;
	font-weight:bold;
}

del {
	text-decoration: line-through;
}

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

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

/* change border colour to suit your needs */
hr {
	display:block;
	height:1px;
	border:0;   
	border-top:1px solid #cccccc;
	margin:1em 0;
	padding:0;
}

input, select {
	vertical-align:middle;
}



/* =============================================================================
 Fonts
============================================================================= */
html {
	font-size: 62.5%;
}
body {
	font-family:"游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo",Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
	font-size: 1.4rem;
  letter-spacing: .05em;
}
.en {
  font-family: 'Raleway', sans-serif;
}

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


/* =============================================================================
 Base
============================================================================= */

body {
}
#container {
  width: 100%;
  overflow: hidden;
}
#mainArea {
  padding-top: 80px;
}

@media screen and (max-width: 767px) {
  #mainArea {
    padding-top: 55px;
  }
}


/* =============================================================================
 Elements
============================================================================= */

/* color setting */

html {
}
body {
  color: #595959;
}
h1,h2,h3,h4,h5,h6 {
  color: #171717;
  font-weight: bold;
  letter-spacing: .1em;
}


/* link setting */

a {
	text-decoration: none;
}
a:hover {
	text-decoration: underline;
}


/* image setting */

img {
	max-width: 100%;
	vertical-align: bottom;
}

@media screen and (max-width: 767px) {
  img {
    width: 100%;
  }
}

/* =============================================================================
 Common Class
============================================================================= */

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


@media screen and (min-width: 768px) {
  .only-sp {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .only-pc {
    display: none;
  }
}

/* =============================================================================
 common header
============================================================================= */

#commonHeader {
  padding: 0 50px 0 60px;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  height: 80px;
  background-color: #000;
  box-sizing: border-box;
}
#commonHeader .siteLogo {
  padding: 25px 0 0;
  float: left;
  font-size: 0;
}
#commonHeader .siteLogo a {
  display: flex;
  transition: opacity ease .3s;
}
@media screen and (min-width: 768px) {
  #commonHeader .siteLogo a:hover {
    opacity: .5;
  }
}
#commonHeader .siteLogo .logo {
  display: block;
  width: 114px;
}
@media screen and (min-width: 768px) {
  #commonHeader .siteLogo .logo img {
    width: 114px;
    height: 31px;
  }
}
#commonHeader .siteLogo .txt {
  padding: 11px 0 0 30px;
  display: block;
  width: 147px;
}

@media screen and (min-width: 768px) and (max-width: 860px) {
  #commonHeader {
    padding: 0 30px;
  }
  #commonHeader .siteLogo .txt {
    padding-left: 10px;
  }
}

@media screen and (max-width: 767px) {
  #commonHeader {
    padding: 0 0 0 5.33%;
    height: 55px;
  }
  #commonHeader .siteLogo {
    padding: 16px 0 0;
    float: none;
  }
  #commonHeader .siteLogo {
    display: inline-block;
  }
  #commonHeader .siteLogo .logo {
    width: 83px;
  }
  #commonHeader .siteLogo .txt {
    padding: 8px 0 0 22px;
    width: 107px;
  }
}





/* =============================================================================
 global navi
============================================================================= */

@media screen and (min-width: 768px) {
  #globalNavi {
    padding-top: 32px;
    float: right;
  }
  #globalNavi .btnMenu {
    display: none;
  }
  #globalNavi .navBody>ul {
    padding-top: 2px;
    float: left;
  }
  #globalNavi .navBody>ul>li {
    margin-left: 32px;
    float: left;
    height: 46px;
  }
  #globalNavi .navBody>ul>li>a {
    display: block;
    position: relative;
    height: 46px;
    color: #fff;
    font-family: 'Raleway', sans-serif;
    font-size: 1.3rem;
    text-decoration: none;
    letter-spacing: .2em;
    transition: color ease .3s;
  }
  #globalNavi .navBody>ul>li:hover>a {
    color: #df1e3c;
  }
  #globalNavi .navBody>ul>li>a:before {
    content: "";
    display: block;
    position: absolute;
    bottom: 18px;
    left: 50%;
    width: 0;
    height: 2px;
    background-color: #df1e3c;
    transform: translateX(-50%);
    transition: width ease .3s;
  }
  #globalNavi .navBody>ul>li:hover>a:before {
    width: 100%;
  }
  #globalNavi .navBody>ul>li .megaMenu {
    padding: 60px;
    position: absolute;
    z-index: 2;
    top: 80px;
    left: 0;
    display: flex !important;
    width: 100%;
    background-color: #1a1a1a;
    box-sizing: border-box;
    visibility: hidden;
    opacity: 0;
    transition: opacity ease .3s,visibility ease .3s;
  }
  #globalNavi .navBody>ul>li.hovered .megaMenu {
    visibility: visible;
    opacity: 1;
  }
  #globalNavi .navBody>ul>li .megaMenu .inner {
    margin: 0 auto;
    max-width: 1600px;
  }
  #globalNavi .navBody>ul>li .megaMenu .menuTitle {
    margin: 0 0 10px;
    color: #fff;
    font-size: 2.4rem;
    font-weight: bold;
    letter-spacing: .2em;
  }
  #globalNavi .navBody>ul>li .megaMenu .menuTitle a {
    padding-right: 32px;
    display: inline-block;
    position: relative;
    color: #fff;
    text-decoration: none;
  }
  #globalNavi .navBody>ul>li .megaMenu .menuTitle a:after {
    content: "";
    display: block;
    border-top: 3px #df1e3c solid;
    border-right: 3px #df1e3c solid;
    position: absolute;
    top: 4px;
    right: 0;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
  }
  #globalNavi .navBody>ul>li .megaMenu .menuSubTitle {
    margin: 0 0 30px;
    color: #fff;
    font-size: 1.3rem;
    letter-spacing: .2em;
  }
  #globalNavi .navBody>ul>li .megaMenu ul {
    overflow: hidden;
  }
  #globalNavi .navBody>ul>li .megaMenu ul li {
    margin-right: 20px;
    float: left;
    width: calc(265/1430*100vw);
    max-width: 265px;
  }
  #globalNavi .navBody>ul>li .megaMenu ul li:last-child {
    margin-right: 0;
  }
  #globalNavi .navBody>ul>li .megaMenu ul li a {
    display: block;
    color: #fff;
    text-align: center;
    text-decoration: none;
    transition: opacity ease .3s;
  }
  #globalNavi .navBody>ul>li .megaMenu ul li a .image {
    margin: 0 0 15px;
  }
  #globalNavi .navBody>ul>li .megaMenu ul li a .image img {
    width: 100%;
  }
  #globalNavi .navBody>ul>li .megaMenu ul li a:hover {
    opacity: .7;
  }
  #globalNavi .searchArea {
    margin-left: 60px;
    float: left;
  }
  #globalNavi .searchArea .searchIcon {
    width: 16px;
    height: 16px;
    cursor: pointer;
  }
  #globalNavi .searchArea .searchIcon svg {
    fill: #fff;
    transition: fill ease .3s;
  }
  #globalNavi .searchArea .searchIcon:hover svg {
    fill: #df1e3c;
  }
  #globalNavi .searchArea .searchField {
    padding: 20px 60px;
    position: absolute;
    top: 80px;
    left: 0;
    display: flex;
    justify-content: center;
    width: 100%;
    background-color: #1a1a1a;
    box-sizing: border-box;
    visibility: hidden;
    opacity: 0;
    transition: opacity ease .3s,visibility ease .3s;
  }
  #globalNavi .searchArea .searchField.open {
    visibility: visible;
    opacity: 1;
  }
  #globalNavi .searchArea .field {
  }
  #globalNavi .searchArea .textbox {
    display: flex;
    flex-direction: row-reverse;
  }
  #globalNavi .searchArea .textbox button {
    border: none;
    padding: 0;
    border-radius: 0;
    width: 108px;
    line-height: 40px;
    color: #fff;
    background-color: #df1e3c;
    font-size: 1.2rem;
    text-align: center;
    font-family: 'Raleway', sans-serif;
    letter-spacing: .1em;
    cursor: pointer;
    transition: opacity ease .3s;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
  }
  #globalNavi .searchArea .textbox button:hover {
    opacity: .6;
  }
  #globalNavi .searchArea .textbox button .icon {
    display: none;
  }
  #globalNavi .searchArea .textbox .inputWrap {
    padding-left: 40px;
    width: 356px;
    height: 40px;
    background: #fff url(../images/common/icon_search_gray.png) 14px center no-repeat;
    box-sizing: border-box;
  }
  #globalNavi .searchArea .textbox input[type="text"] {
    padding: 0;
    border-radius: 0;
    border: none;
    line-height: 40px;
    color: #a7a7a7;
    background-color: transparent;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
  }
  #globalNavi .searchArea .searchClose {
    padding-left: 30px;
    position: absolute;
    top: 32px;
    right: 50px;
    line-height: 17px;
    color: #fff;
    background: url(../images/common/icon_cross.png) 0 center no-repeat;
    font-size: 1.2rem;
    letter-spacing: .1em;
    cursor: pointer;
    transition: opacity ease .3s;
  }
  #globalNavi .searchArea .searchClose:hover {
    opacity: .6;
  }
  #globalNavi .linkContact {
    margin-left: 24px;
    float: left;
  }
  #globalNavi .linkContact .icon {
    display: block;
    width: 21px;
    height: 15px;
  }
  #globalNavi .linkContact a .icon svg {
    fill: #fff;
    transition: fill ease .3s;
  }
  #globalNavi .linkContact a:hover .icon svg {
    fill: #df1e3c;
  }
  #globalNavi .linkContact .en {
    display: none;
  }
}

@media screen and (min-width: 941px) and (max-width: 1060px) {
  #globalNavi .navBody>ul>li {
    margin-left: 16px;
  }
  #globalNavi .searchArea {
    margin-left: 30px;
  }
  #globalNavi .linkContact {
    margin-left: 12px;
  }
}

@media screen and (min-width: 768px) and (max-width: 940px) {
  #globalNavi .navBody>ul>li {
    margin-left: 10px;
  }
  #globalNavi .navBody>ul>li>a {
    font-size: 1.2rem;
  }
  #globalNavi .searchArea {
    margin-left: 15px;
  }
  #globalNavi .linkContact {
    margin-left: 8px;
  }
}

@media screen and (min-width: 768px) and (max-width: 860px) {
  #globalNavi .navBody>ul>li>a {
    font-size: 1.1rem;
  }
}

@media screen and (max-width: 767px) {
  #globalNavi {
  }
  #globalNavi .btnMenu {
    position: absolute;
    top: 21px;
    right: 15px;
    width: 25px;
    height: 12px;
  }
  #globalNavi .btnMenu span {
    display: block;
    position: absolute;
    top: 5px;
    width: 25px;
    height: 1px;
    background-color: #fff;
  }
  #globalNavi .btnMenu span:before,
  #globalNavi .btnMenu span:after {
    content: "";
    display: block;
    position: absolute;
    width: 25px;
    height: 1px;
    background-color: #fff;
    transition: transform ease .3s;
  }
  #globalNavi .btnMenu span:before {
    top: -5px;
  }
  #globalNavi .btnMenu span:after {
    top: 5px;
  }
  .menuOpen #globalNavi .btnMenu span {
    background-color: transparent;
  }
  .menuOpen #globalNavi .btnMenu span:before {
    top: 50%;
    transform: rotate(45deg);
  }
  .menuOpen #globalNavi .btnMenu span:after {
    top: 50%;
    transform: rotate(-45deg);
  }
  #globalNavi .navBody {
    padding: 35px calc(70/670*100vw);
    position: fixed;
    top: 55px;
    right: 0;
    width: calc(670/750*100vw);
    height: calc(100% - 55px);
    overflow: auto;
    background-color: #010101;
    box-sizing: border-box;
    text-align: center;
    transition: transform ease .3s;
    transform: translateX(100%);
  }
  .menuOpen #globalNavi .navBody {
    transform: translateX(0);
  }
  #globalNavi .navBody>ul {
  }
  #globalNavi .navBody>ul>li {
    margin: 0 0 40px;
  }
  #globalNavi .navBody>ul>li>a {
    display: inline-block;
    position: relative;
    color: #fff;
    font-family: 'Raleway', sans-serif;
    font-size: 1.8rem;
    letter-spacing: .2em;
    text-decoration: none;
  }
  #globalNavi .navBody>ul>li.hover>a {
    padding-right: 27px;
  }
  #globalNavi .navBody>ul>li.hover>a:before {
    content: "";
    display: block;
    position: absolute;
    border-top: 3px #df1e3c solid;
    border-right: 3px #df1e3c solid;
    top: 0;
    right: 0;
    width: 8px;
    height: 8px;
    transform: rotate(135deg);
    transition: transform ease .3s;
  }
  #globalNavi .navBody>ul>li.hover>a.accOpen:before {
    top: 6px;
    transform: rotate(-45deg);
  }
  #globalNavi .navBody>ul>li .megaMenu {
    display: none;
  }
  #globalNavi .navBody>ul>li .megaMenu .menuTitle,
  #globalNavi .navBody>ul>li .megaMenu .menuSubTitle {
    display: none;
  }
  #globalNavi .navBody>ul>li .megaMenu ul {
    padding-top: 20px;
  }
  #globalNavi .navBody>ul>li .megaMenu ul li {
    margin: 20px 0 0;
  }
  #globalNavi .navBody>ul>li .megaMenu ul li:last-child {
  }
  #globalNavi .navBody>ul>li .megaMenu ul li a {
    color: #fff;
    font-size: 1.3rem;
  }
  #globalNavi .navBody>ul>li .megaMenu ul li a .image {
    display: none;
  }
  #globalNavi .searchArea {
    margin-top: 90px;
  }
  #globalNavi .searchArea .searchIcon {
    display: none;
  }
  #globalNavi .searchArea .searchField {
  }
  #globalNavi .searchArea .field {
  }
  #globalNavi .searchArea .textbox {
    margin: 0 0 45px;
    padding: 0 0 15px;
    border-bottom: 1px #fff solid;
    display: flex;
  }
  #globalNavi .searchArea .textbox button {
    border: none;
    padding: 0;
    border-radius: 0;
    width: 40px;
    cursor: pointer;
    background-color: transparent;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
  }
  #globalNavi .searchArea .textbox button .txt {
    display: none;
  }
  #globalNavi .searchArea .textbox button .icon {
    padding-left: 4px;
  }
  #globalNavi .searchArea .textbox button .icon svg {
    width: 16px;
    fill: #fff;
  }
  #globalNavi .searchArea .textbox .inputWrap {
    width: calc(100% - 40px);
  }
  #globalNavi .searchArea .textbox input[type="text"] {
    padding: 0;
    border-radius: 0;
    border: none;
    line-height: 20px;
    color: #a7a7a7;
    width: 100%;
    background-color: transparent;
    font-size: 16px;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    box-sizing: border-box;
  }
  #globalNavi .searchArea .searchClose {
    display: none;
  }
  #globalNavi .searchArea .searchClose:hover {
    opacity: .6;
  }
  #globalNavi .linkContact {
  }
  #globalNavi .linkContact a {
    border: 1px #fff solid;
    border-radius: 25px;
    display: block;
    line-height: 50px;
    color: #fff;
    text-align: center;
  }
  #globalNavi .linkContact .icon {
    margin-right: 10px;
    display: inline-block;
    width: 21px;
    transform: translateY(2px);
  }
  #globalNavi .linkContact a .icon svg {
    width: 21px;
    fill: #fff;
  }
  #globalNavi .linkContact .en {
    font-size: 1.5rem;
    letter-spacing: .2em;
  }
}





/* =============================================================================
 common footer
============================================================================= */

#commonFooter {
  padding: 50px calc(150/1430*100%);
  position: relative;
  z-index: 2;
  background-color: #fff;
}
#commonFooter .footerInner {
  margin: 0 auto;
  max-width: 1600px;
}
#commonFooter .pagetop {
  margin: 0 0 100px;
  border-top: 1px #e4e4e4 solid;
  border-bottom: 1px #e4e4e4 solid;
  text-align: center;
}
#commonFooter .pagetop a {
  display: inline-block;
  position: relative;
  width: 100%;
  line-height: 80px;
  color: #171717;
  text-decoration: none;
  font-size: 1.3rem;
  letter-spacing: .1em;
  transition: color ease .3s;
}
#commonFooter .pagetop a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: 67px;
  left: 50%;
  width: 1px;
  height: 44px;
  background-color: #171717;
  transition: height ease .3s,background-color ease .3s;
}
@media screen and (min-width: 768px) {
  #commonFooter .pagetop a:hover {
    color: #df1e3c;
  }
  #commonFooter .pagetop a:hover:before {
    height: 64px;
    background-color: #df1e3c;
  }
}

#commonFooter .footerNav {
  margin: 0 0 80px;
}
#commonFooter .footerNav ul {
  display: flex;
  justify-content: center;
}
#commonFooter .footerNav ul li {
  margin: 0 25px;
  font-size: 1.3rem;
}
#commonFooter .footerNav ul li a {
  display: inline-block;
  position: relative;
  color: #171717;
  text-decoration: none;
}
#commonFooter .footerNav ul li a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #df1e3c;
  transition: opacity ease .3s;
  opacity: 0;
}
@media screen and (min-width: 768px) {
  #commonFooter .footerNav ul li a:hover {
    color: #df1e3c;
  }
  #commonFooter .footerNav ul li a:hover:before {
    opacity: 1;
  }
}
#commonFooter .footerSubNav {
  margin: 0 0 40px;
}
#commonFooter .footerSubNav ul {
  text-align: center;
}
#commonFooter .footerSubNav ul li {
  display: inline-block;
  color: #878787;
  font-size: 1.1rem;
}
#commonFooter .footerSubNav ul li:after {
  margin: 0 .3em;
  content: "｜";
  display: inline-block;
}
#commonFooter .footerSubNav ul li:last-child:after {
  display: none;
}
#commonFooter .footerSubNav ul li a {
  display: inline-block;
  position: relative;
  color: #878787;
  text-decoration: none;
}
#commonFooter .footerSubNav ul li a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #878787;
  transition: opacity ease .3s;
  opacity: 0;
}
@media screen and (min-width: 768px) {
  #commonFooter .footerSubNav ul li a:hover:before {
    opacity: 1;
  }
}
#commonFooter .copyright {
  color: #878787;
  font-size: 1.1rem;
  text-align: center;
  letter-spacing: .1em;
}

@media screen and (max-width: 767px) {
  #commonFooter {
    padding: 30px calc(40/750*100%);
  }
  #commonFooter .footerInner {
  }
  #commonFooter .pagetop {
    margin: 0 0 70px;
  }
  #commonFooter .pagetop a {
    line-height: 67px;
  }
  #commonFooter .pagetop a:before {
    bottom: 55px;
  }
  #commonFooter .footerNav {
    margin: 0 0 75px;
  }
  #commonFooter .footerNav ul {
    display: block;
    text-align: center;
  }
  #commonFooter .footerNav ul li {
    margin: 0 0 25px;
  }
  #commonFooter .footerNav ul li a {
  }
  #commonFooter .footerSubNav {
    margin: 0 0 25px;
  }
  #commonFooter .footerSubNav ul {
  }
  #commonFooter .footerSubNav ul li {
    margin-bottom: 5px;
    font-size: 1rem;
  }
  #commonFooter .footerSubNav ul li:after {
    margin: 0;
  }
  #commonFooter .footerSubNav ul li a {
  }
  #commonFooter .copyright {
    line-height: 1.5;
    font-size: 1rem;
  }
}





/* =============================================================================
 Common Block Styles
============================================================================= */

/* section */
.section {
  padding: 130px calc(150/1430*100%);
  position: relative;
  z-index: 2;
  background-color: #fff;
}
.sectionInner {
  margin: 0 auto;
  max-width: 1600px;
}
.sectionInner + .sectionInner {
  padding-top: 150px;
}

@media screen and (max-width: 767px) {
  .section {
    padding: 100px calc(40/750*100vw);
  }
  .sectionInner {
  }
  .sectionInner + .sectionInner {
    padding-top: 100px;
  }
}





/* title */
.titleWrap {
  margin-bottom: 80px;
  padding: 0 0 0 40px;
}
.enTitle {
  padding-bottom: 20px;
  font-size: 4.4rem;
  font-weight: bold;
  letter-spacing: .2em;
}
.jpnTitle {
  color: #171717;
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: .1em;
}
#topPage .enTitle {
  font-size: 4rem;
}
#topPage .jpnTitle {
  font-size: 1.8rem;
}
.jpnTitleL {
  color: #fff;
  font-size: 4rem;
  font-weight: bold;
  letter-spacing: .1em;
}
.lineTitle {
  margin: 0 40px 40px;
  position: relative;
  line-height: 1.38;
  font-size: 2.6rem;
}
.lineTitle:before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #171717;
}
.lineTitle>span {
  padding-right: 35px;
  display: inline-block;
  position: relative;
  background-color: #fff;
}
.lineTitle .small {
  font-size: 1.8rem;
  vertical-align: middle;
}

@media screen and (max-width: 767px) {
  .titleWrap {
    margin-bottom: 30px;
    padding: 0 calc(40/750*100vw);
  }
  .enTitle {
    padding-bottom: 15px;
    font-size: 3rem;
  }
  .jpnTitle {
    font-size: 1.5rem;
  }
  .jpnTitleL {
    font-size: 2.5rem;
  }
  #topPage .enTitle {
    font-size: 3.3rem;
  }
  #topPage .jpnTitle {
    font-size: 1.5rem;
  }
  .lineTitle {
    margin: 0 calc(40/750*100vw) 20px;
    font-size: 2rem;
  }
  .lineTitle>span {
    padding-right: 15px;
  }
  .lineTitle .small {
    font-size: 1.2rem;
  }
}





/* button */
.viewMore {
}
.viewMore a,
.viewMore .btn {
  padding: 0 0 15px;
  display: inline-block;
  position: relative;
  width: 140px;
  overflow: hidden;
  line-height: 1;
  color: #171717;
  font-size: 1.2rem;
  text-decoration: none;
  letter-spacing: .1em;
} 
.viewMore a:before,
.viewMore a:after,
.viewMore .btn:before,
.viewMore .btn:after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
} 
.viewMore a span,
.viewMore .btn span {
  display: inline-block;
  position: relative;
  left: 0;
  transition: all ease .3s .3s;
}
.viewMore a:before,
.viewMore .btn:before {
  background-color: #171717;
  transition: transform ease .3s .3s;
}
.viewMore a:after,
.viewMore .btn:after {
  background-color: #df1e3c;
  transform: translateX(-100%);
  transition: transform ease .3s;
}
@media screen and (min-width: 768px) {
  .viewMore a:hover {
    color: #df1e3c;
  }
  a:hover .viewMore .btn {
    color: #df1e3c;
  }
  .viewMore a:hover span,
  a:hover .viewMore .btn span {
    left: 50%;
    transform: translateX(-50%);
    transition: all ease .3s;
  }
  .viewMore a:hover:before,
  a:hover .viewMore .btn:before {
    transform: translateX(100%);
    transition: transform ease .3s;
  }
  .viewMore a:hover:after,
  a:hover .viewMore .btn:after {
    transform: translateX(0);
    transition: transform ease .3s .3s;
  }
}

.viewMoreL {
  margin-top: 50px;
  text-align: center;
}
.viewMoreL a {
  display: inline-block;
  border-radius: 25px;
  position: relative;
  width: 320px;
  line-height: 50px;
  overflow: hidden;
  color: #171717;
  font-size: 1.2rem;
  text-decoration: none;
  letter-spacing: .1em;
  box-sizing: border-box;
  transition: color ease .3s;
}
.viewMoreL.white a {
  color: #fff;
}
.viewMoreL a span {
  position: relative;
  z-index: 2;
}
.viewMoreL a:before {
  content: "";
  border: 1px #171717 solid;
  border-radius: 25px;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
}
.viewMoreL.white a:before {
  border-color: #fff;
}
.viewMoreL a:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 120%;
  height: 100%;
  background-color: #df1e3c;
  transform: skewX(-20deg) translateX(-110%);
  transition: transform ease .3s;
}
.btnPink {
  text-align: center;
}
.btnPink a,
.btnPink input,
.btnPink button {
  margin: 0;
  padding: 0;
  border: none;
  outline: none;
  border-radius: 30px;
  display: inline-block;
  width: 370px;
  line-height: 60px;
  color: #fff;
  background-color: #df1e3c;
  font-size: 1.6rem;
  text-align: center;
  transition: opacity ease .3s;
  text-decoration: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
}

@media screen and (min-width: 768px) {
  .viewMoreL a:hover {
    color: #fff;
  }
  .viewMoreL a:hover:after {
    transform: skewX(-20deg) translateX(-10%);
  }
  .btnPink a:hover,
  .btnPink input:hover,
  .btnPink button:hover {
    opacity: .7;
  }
}
@media screen and (max-width: 767px) {
  .viewMore {
  }
  .viewMore a {
    font-size: 1.1rem;
  }
  .viewMoreL {
    margin-top: 40px;
  }
  .viewMoreL a {
    width: 200px;
  }
  .btnPink a,
  .btnPink input,
  .btnPink button {
    border-radius: 25px;
    width: 200px;
    line-height: 50px;
    font-size: 1.5rem;
  }
}





/* topic path */
.topicPath {
  margin-bottom: -30px;
  padding: 15px 60px 0;
  position: relative;
  z-index: 3;
  box-sizing: border-box;
}
.topicPath ul {
  font-size: 0;
}
.topicPath ul li {
  display: inline;
  line-height: 11px;
  color: #949494;
  font-size: 1.1rem;
  vertical-align: middle;
}
.topicPath ul li:first-child a {
  display: inline-block;
  width: 9px;
  transition: opacity ease .3s;
}
.topicPath ul li:after {
  margin: 0 12px;
  content: ">";
  display: inline-block;
}
.topicPath ul li:last-child:after {
  display: none;
}
.topicPath ul li a {
  color: #171717;
}
@media screen and (min-width: 768px) {
  .topicPath ul li:first-child a:hover {
    opacity: .7;
  }
}
@media screen and (min-width: 768px) and (max-width: 860px) {
  .topicPath {
    padding: 15px 30px 0;
  }
}
@media screen and (max-width: 767px) {
  .topicPath {
    margin-bottom: -40px;
    padding: 10px calc(40/750*100vw) 0;
  }
  .topicPath ul li {
    line-height: 11px;
    font-size: .9rem;
  }
  .topicPath ul li:after {
    margin: 0 6px;
  }
}





/* page header */
.pageHeader {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 37.76vw;
  background-attachment: fixed;
}
.pageHeader.full {
  height: calc(100vh - 80px);
}

.pageHeader .topicPath {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
}
.pageHeader .topicPath ul li {
  color: #fff;
}
.pageHeader .topicPath ul li a {
  color: #fff;
}
.pageHeader .topicPath ul li:last-child {
  opacity: .5;
}
.pageHeader .pageMV {
  position: fixed;
  top: 80px;
  left: 0;
  width: 100%;
  height: 37.76vw;
  background-position: center center;
  background-repeat: no-repeat;
  -webkit-background-size: cover;
  background-size: cover;
}
.pageHeader .pageMV.mvRight {
  background-position: right center;
}
.pageHeader.full .pageMV {
  height: calc(100vh - 80px);
}
.pageHeader .pageMV img {
  width: 100%;
}
.pageHeader .titleWrap {
  padding: 0;
  position: absolute;
  z-index: 2;
  top: 50%;
  left: calc(115/1430*100%);
  transform: translateY(-50%);
}
.pageHeader .titleWrap * {
  color: #fff;
}
.pageHeader .titleWrap .label {
  margin: 0 0 30px;
  padding: 0 30px;
  display: inline-block;
  line-height: 38px;
  color: #171717;
  background-color: #df1e3c;
	font-family: 'Raleway',sans-serif;
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: .2em;
}
.pageHeader.product .jpnTitleL {
  font-family: 'Raleway',"游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo",Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
}
@media screen and (max-width: 767px) {
  .pageHeader {
    height: 100vw !important;
  }
  .pageHeader .pageMV {
    top: 55px;
    width: 100%;
    height: 100vw !important;
    overflow: hidden;
  }
  .pageHeader .pageMV img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: auto;
    max-width: inherit;
    height: 100%;
    transform: translate(-50%, -50%);
  }
  .pageHeader .titleWrap {
    left: calc(40/750*100vw);
  }
  .pageHeader .titleWrap .label {
    margin: 0 0 20px;
    padding: 0 20px;
    line-height: 29px;
    font-size: 1.5rem;
  }
  .pageHeader.product .titleWrap {
    margin-top: 100vw;
    position: static;
  }
}





/* =============================================================================
 Pager Styles
============================================================================= */

.pager {
  margin: 80px auto 0;
  padding: 0 160px;
  display: table;
  position: relative;
  font-size: 1.3rem;
}
.pager .previous,
.pager .prev,
.pager .next {
  cursor: pointer;
}
.pager .previous,
.pager .prev {
  position: absolute;
  top: calc(50% - 6px);
  left: 0;
}
/*
.pager .previous a span,
.pager .prev a span {
  padding-left: 15px;
}
*/
.pager .next {
  position: absolute;
  top: calc(50% - 6px);
  right: 0;
}
.pager .previous a,
.pager .prev a,
.pager .next a {
  display: flex;
  align-items: center;
  color: #171717;
  text-decoration: none;
}
.pager .previous a:before,
.pager .prev a:before,
.pager .next a:after {
  content: "";
  display: block;
  width: 44px;
  height: 1px;
  background-color: #171717;
  transition: width ease .3s,background-color ease .3s;
}
.pager .previous a:before,
.pager .prev a:before {
  margin-right: 15px;
}
/*
.pager .next a span {
  padding-right: 15px;
}
*/
.pager .next a:after {
  margin-left: 15px;
}
.pager ul {
  display: flex;
  font-size: 1.6rem;
}
.pager ul li {
  margin: 0 5px;
  width: 28px;
  line-height: 35px;
  text-align: center;
}
.pager ul li.hidden {
  display: none;
}
.pager ul li a,
.pager ul li span {
  display: block;
  color: #171717;
  text-decoration: none;
  transition: all ease .3s;
}
.pager ul li.current a,
.pager ul li.current span {
  color: #fff;
  background-color: #000;
}

@media screen and (min-width: 768px) {
  .pager .previous a:hover,
  .pager .prev a:hover,
  .pager .next a:hover {
    color: #df1e3c;
  }
  .pager .previous a:hover:before,
  .pager .prev a:hover:before,
  .pager .next a:hover:after {
    width: 64px;
    background-color: #df1e3c;
  }
  .pager ul li a:hover {
    color: #fff;
    background-color: #000;
  }
}

@media screen and (max-width: 767px) {
  .pager {
    margin: 40px auto 0;
    padding: 0;
    display: block;
    font-size: 1.2rem;
  }
  .pager .previous,
  .pager .prev {
    left: calc(-40/750*100vw);
  }
  .pager .previous a span,
  .pager .prev a span {
    padding-left: 8px;
  }
  .pager .next {
    right: calc(-40/750*100vw);
  }
  .pager .previous a:before,
  .pager .prev a:before,
  .pager .next a:after {
    width: 24px;
  }
  .pager .next a span {
    padding-right: 8px;
  }
  .pager ul {
    justify-content: center;
    font-size: 1.5rem;
  }
  .pager ul li {
    margin: 0 2px;
  }
}





/* =============================================================================
 Project Carousel Styles
============================================================================= */

.projectCarouselBody {
  padding-left: calc(150/1430*100%);
  padding-right: calc(150/1430*100%);
  position: relative;
}
.projectCarousel {
  padding-left: 0;
  padding-right: 0;
}
.projectCarousel .sectionInner {
  padding-left: calc(150/1430*100%);
  padding-right: calc(150/1430*100%);
}
.projectCarouselBody .slick-list {
  margin: 0 auto;
  border-top: 1px #d9d9d9 solid;
  border-bottom: 1px #d9d9d9 solid;
  max-width: 1600px;
}


.projectCarouselBody .dotWrap {
  padding: 0 calc(150/1430*100%);
  position: absolute;
  top: -70px;
  left: 50%;
  width: 100%;
  box-sizing: border-box;
  transform: translateX(-50%);
  font-size: 0;
}
.projectCarouselBody .slick-dots {
  margin: 0 auto;
  padding: 0 40px;
  width: 100%;
  max-width: 1600px;
  box-sizing: border-box;
  text-align: right;
}
.projectCarouselBody .slick-dots li {
  margin-left: 5px;
  display: inline-block;
}
.projectCarouselBody .slick-dots li button {
  margin: 0;
  padding: 0;
  border: none;
  width: 50px;
  height: 4px;
  background-color: #e7e7e7;
  outline: none;
  font-size: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
}
.projectCarouselBody .slick-dots li.slick-active button,
.projectCarouselBody .slick-dots li button:hover {
  background-color: #df1e3c;
}
.projectCarouselBody .slick-arrow {
  margin: -7px 0 0;
  padding: 0;
  border: none;
  position: absolute;
  top: 50%;
  display: flex;
  align-items: center;
  background-color: transparent;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-size: 1.3rem;
  letter-spacing: .1em;
  cursor: pointer;
  transition: color ease .3s;
}
.projectCarouselBody .slick-prev {
  left: 0;
}
.projectCarouselBody .slick-prev:before {
  content: "";
  display: block;
  width: 54px;
  height: 1px;
  background-color: #171717;
  transition: width ease .3s,background-color ease .3s;
}
.projectCarouselBody .slick-prev span {
  padding-left: 15px;
}
.projectCarouselBody .slick-next {
  right: 0;
}
.projectCarouselBody .slick-next:after {
  content: "";
  display: block;
  width: 54px;
  height: 1px;
  background-color: #171717;
  transition: width ease .3s,background-color ease .3s;
}
.projectCarouselBody .slick-next span {
  padding-right: 15px;
}

.projectPanel {
}
.projectPanel .inner {
}
.projectPanel .inner  a{
  padding: 50px 0;
  display: flex !important;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  text-decoration: none;
}
.projectPanel .image {
  width: calc(300/1130*100%);
}
.projectPanel .image a,
.projectPanel .image span {
  border-radius: 50%;
  padding-top: 100%;
  display: block;
  position: relative;
  width: 100%;
  overflow: hidden;
  transition: opacity ease .3s;
}
.projectPanel .image a img,
.projectPanel .image span img {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100%;
  transform: translateX(-50%);
}
.projectPanel .text {
  margin-left: calc(50/1130*100%);
  width: calc(530/1130*100%);
}
.projectPanel .data {
  margin: 0 0 25px;
}
.projectPanel .data ul {
  display: inline-block;
}
.projectPanel .data ul li {
  margin-right: 10px;
  padding-right: 10px;
  border-right: 1px #d9d9d9 solid;
  display: inline-block;
  line-height: 1.31;
  color: #df1e3c;
  font-size: 1.3rem;
  font-weight: bold;
}
.projectPanel .data ul li:last-child {
  border-right: none;
}
.projectPanel .data ul li span:after {
  content: "、";
}
.projectPanel .data ul li span:last-child:after {
  display: none;
}
.projectPanel .postdate {
  display: inline-block;
  color: #949494;
  font-size: 1.3rem;
  letter-spacing: .1em;
}
.projectPanel .title {
  margin: 0 0 30px;
  line-height: 1.8;
  color: #171717;
  font-size: 2rem;
  font-weight: bold;
}
.projectPanel .viewMore {
}
@media screen and (min-width: 768px) {
  .projectPanel a:hover .image {
    transition: opacity ease .3s;
  }
  .projectPanel a:hover .image {
    opacity: .7;
  }
  .projectCarouselBody .slick-arrow:hover {
    color: #df1e3c;
  }
  .projectCarouselBody .slick-prev:hover:before {
    width: 74px;
    background-color: #df1e3c;
  }
  .projectCarouselBody .slick-next:hover:after {
    width: 74px;
    background-color: #df1e3c;
  }
}
@media screen and (max-width: 767px) {
  .projectCarouselBody {
    padding-left: calc(40/750*100vw);
    padding-right: calc(40/750*100vw);
  }
  .projectCarousel .sectionInner {
    padding-left: calc(40/750*100vw);
    padding-right: calc(40/750*100vw);
  }
  .projectCarousel {
  }
  .projectCarousel .sectionInner {
  }
  .projectCarouselBody .slick-list {
    width: calc(670/750*100vw);
  }
  .projectCarouselBody .dotWrap {
    padding: 0;
    position: static;
    transform: translateX(0);
  }
  .projectCarouselBody .slick-dots {
    margin-top: 30px;
    padding: 0;
    width: 100%;
    text-align: center;
  }
  .projectCarouselBody .slick-dots li {
    margin: 0 3px;
    display: inline-block;
  }
  .projectCarouselBody .slick-dots li button {
    width: 38px;
    height: 3px;
  }
  .projectCarouselBody .slick-arrow {
    margin: -6px 0 0;
    top: calc(27vw + 50px);
    font-size: 1.2rem;
  }
  .projectCarouselBody .slick-prev {
  }
  .projectCarouselBody .slick-prev:before {
    width: 24px;
  }
  .projectCarouselBody .slick-prev span {
    padding-left: 10px;
  }
  .projectCarouselBody .slick-next:after {
    width: 24px;
  }
  .projectCarouselBody .slick-next span {
    padding-right: 10px;
  }
  .projectPanel {
  }
  .projectPanel .inner a {
    padding: 50px calc(40/750*100vw);
    display: block !important;
  }
  .projectPanel .image {
    margin: 0 auto 30px;
    width: calc(390/750*100vw);
  }
  .projectPanel .image a {
  }
  .projectPanel .image a img {
  }
  .projectPanel .text {
    margin-left: 0;
    width: auto;
  }
  .projectPanel .data {
    margin: 0 0 15px;
  }
  .projectPanel .data ul {
    padding-bottom: 5px;
  }
  .projectPanel .data ul li {
    margin-right: 5px;
    padding-right: 5px;
    font-size: 1.2rem;
  }
  .projectPanel .data ul li:last-child {
    border-right: none;
  }
  .projectPanel .postdate {
    display: block;
    font-size: 1.2rem;
  }
  .projectPanel .title {
    line-height: 1.67;
    font-size: 1.8rem;
  }
  .projectPanel .viewMore {
  }
}





/* =============================================================================
 Related Products Styles
============================================================================= */

.relatedProducts {
  padding-bottom: 0;
  padding-left: 0;
  padding-right: 0;
}
.relatedProductsBody {
  padding-left: calc(150/1430*100%);
  padding-right: calc(150/1430*100%);
  position: relative;
}
.relatedProducts .sectionInner {
  padding-left: calc(150/1430*100%);
  padding-right: calc(150/1430*100%);
}
.relatedProductsBody .slick-list {
  margin: 0 auto;
  max-width: 1600px;
}
.relatedProducts .slick-track {
  margin: 0;
}


.relatedProductsBody .dotWrap {
  padding: 0 calc(150/1430*100%);
  position: absolute;
  top: -70px;
  left: 50%;
  width: 100%;
  box-sizing: border-box;
  transform: translateX(-50%);
  font-size: 0;
}
.relatedProductsBody .slick-dots {
  margin: 0 auto;
  padding: 0 40px;
  width: 100%;
  max-width: 1600px;
  box-sizing: border-box;
  text-align: right;
}
.relatedProductsBody .slick-dots li {
  margin-left: 5px;
  display: inline-block;
}
.relatedProductsBody .slick-dots li button {
  margin: 0;
  padding: 0;
  border: none;
  width: 50px;
  height: 4px;
  background-color: #e7e7e7;
  outline: none;
  font-size: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  cursor: pointer;
}
.relatedProductsBody .slick-dots li.slick-active button,
.relatedProductsBody .slick-dots li button:hover {
  background-color: #df1e3c;
}
.relatedProductsBody .slick-arrow {
  margin: -7px 0 0;
  padding: 0;
  border: none;
  position: absolute;
  top: 50%;
  display: flex;
  align-items: center;
  background-color: transparent;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-size: 1.3rem;
  letter-spacing: .1em;
  cursor: pointer;
  transition: color ease .3s;
}
.relatedProductsBody .slick-prev {
  left: 0;
}
.relatedProductsBody .slick-prev:before {
  content: "";
  display: block;
  width: 54px;
  height: 1px;
  background-color: #171717;
  transition: width ease .3s,background-color ease .3s;
}
.relatedProductsBody .slick-prev span {
  padding-left: 15px;
}
.relatedProductsBody .slick-next {
  right: 0;
}
.relatedProductsBody .slick-next:after {
  content: "";
  display: block;
  width: 54px;
  height: 1px;
  background-color: #171717;
  transition: width ease .3s,background-color ease .3s;
}
.relatedProductsBody .slick-next span {
  padding-right: 15px;
}
.productPanel {
  padding: 0 8px;
  box-sizing: border-box;
}
.productPanel a,
.productPanel span {
  display: block;
  color: #171717;
  font-size: 1.6rem;
	font-family: 'Raleway',"游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo",Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
  font-weight: bold;
  text-align: center;
  text-decoration: none;
  transition: opacity ease .3s;
}
.productPanel .image {
  margin-bottom: 20px;
}
.productPanel .image img {
  width: 100%;
}
.productPanel a {
}


@media screen and (min-width: 768px) {
  .relatedProducts .titleWrap,
  .projectCarousel .titleWrap {
    margin-bottom: 64px;
  }
  .relatedProducts .enTitle,
  .projectCarousel .enTitle {
    font-size: 3.4rem;
  }
  .relatedProducts .jpnTitle,
  .projectCarousel .jpnTitle {
    font-size: 1.8rem;
  }
  .projectPanel .image a:hover {
    opacity: .7;
  }
  .relatedProductsBody .slick-arrow:hover {
    color: #df1e3c;
  }
  .relatedProductsBody .slick-prev:hover:before {
    width: 74px;
    background-color: #df1e3c;
  }
  .relatedProductsBody .slick-next:hover:after {
    width: 74px;
    background-color: #df1e3c;
  }
  .productPanel a:hover {
    opacity: .7;
  }
}
@media screen and (max-width: 767px) {
  .relatedProducts .sectionInner {
    padding-left: calc(40/750*100vw);
    padding-right: calc(40/750*100vw);
  }
  .relatedProductsBody {
    padding-left: calc(40/750*100vw);
    padding-right: calc(40/750*100vw);
  }
  .projectCarousel {
  }
  .projectCarousel .sectionInner {
  }
  .relatedProductsBody .slick-list {
    width: calc(670/750*100vw);
  }
  .relatedProductsBody .dotWrap {
    padding: 0;
    position: static;
    transform: translateX(0);
  }
  .relatedProductsBody .slick-dots {
    margin: 30px 0 -10px;
    padding: 0;
    width: 100%;
    text-align: center;
  }
  .relatedProductsBody .slick-dots li {
    margin: 0 3px 10px;
    display: inline-block;
  }
  .relatedProductsBody .slick-dots li button {
    width: 38px;
    height: 3px;
  }
  .relatedProductsBody .slick-arrow {
    margin: -6px 0 0;
    top: 28vw;
    font-size: 1.2rem;
  }
  .relatedProductsBody .slick-prev {
  }
  .relatedProductsBody .slick-prev:before {
    width: 24px;
  }
  .relatedProductsBody .slick-prev span {
    padding-left: 10px;
  }
  .relatedProductsBody .slick-next:after {
    width: 24px;
  }
  .relatedProductsBody .slick-next span {
    padding-right: 10px;
  }
  .productPanel {
    margin: 0;
    padding: 0 60px;
    box-sizing: border-box;
  }
  .productPanel a,
  .productPanel span {
    font-size: 1.5rem;
  }
  .productPanel .image {
    margin-bottom: 20px;
  }
}





/* =============================================================================
 News List Styles
============================================================================= */

.newsList {
}
.newsList ul {
  border-top: 1px #d9d9d9 solid;
}
.newsList ul li {
  padding: 20px 40px;
  border-bottom: 1px #d9d9d9 solid;
  display: flex;
  align-items: flex-start;
}
.newsList ul li .category {
  border-radius: 12px;
  width: 120px;
  line-height: 24px;
  color: #fff;
  background-color: #df1e3c;
  font-size: 1.2rem;
  text-align: center;
}
.newsList ul li .date {
  border-right: 1px #7f7f7f dotted;
  width: 135px;
  line-height: 24px;
  font-size: 1.4rem;
  text-align: center;
}
.newsList ul li .title {
  padding: 0 25px;
  width: calc(100% - 255px);
  line-height: 24px;
  font-size: 1.4rem;
  box-sizing: border-box;
}
.newsList ul li .title a {
  color: #171717;
}
@media screen and (max-width: 767px) {
  .newsList {
    width: auto;
  }
  .newsList {
  }
  .newsList ul {
  }
  .newsList ul li {
    padding-left: 0;
    padding-right: 0;
    flex-wrap: wrap;
  }
  .newsList ul li .category {
    font-size: 1.1rem;
  }
  .newsList ul li .date {
  }
  .newsList ul li .title {
    padding: 10px 0 0;
    width: 100%;
  }
}





/* =============================================================================
 Top Page Styles
============================================================================= */

#topPage {
  width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}
#topPage.loadEnd {
  position: static;
}
#topPage #mainArea {
  padding-top: 0;
}
#topPage #commonHeader .siteLogo {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-100%);
  transition: opacity ease .4s 3.6s,transform ease .4s 3.6s,visibility ease .4s 3.6s;
}
@media screen and (min-width: 768px) {
  #topPage #commonHeader {
    position: absolute;
    top: 100vh;
  }
  #topPage.scroll #commonHeader {
    position: fixed;
    top: 0;
  }
  #topPage #commonHeader .siteLogo {
    position: fixed;
    top: 0;
    left: 60px;
  }
  #topPage.scroll #commonHeader .siteLogo {
    position: static;
  }
}
@media screen and (min-width: 768px) and (max-width: 860px) {
  #topPage #commonHeader .siteLogo {
    left: 30px;
  }
}
@media screen and (max-width: 767px) {
  #topPage #commonHeader {
    background-color: transparent;
    transition: background-color ease .3s;
  }
  #topPage.scroll #commonHeader {
    background-color: #000;
  }
}



/* top mv */
#topPage:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: -40%;
  width: 180%;
  height: 100vh;
  background-color: #000;
  z-index: 1000;
  transform: skewX(-20deg);
  transition: transform ease .8s 1.8s;
}
#topPage.skip:before {
  display: none;
}
.startLogo {
  position: fixed;
  top: calc(50% - 37px);
  right: calc(50% - 91px);
  z-index: 1001;
  opacity: 0;
  transform: translateY(100%);
  transition: opacity ease 1s,transform ease 1s,visibility ease 1s;
}
#topPage.skip .startLogo {
  display: none;
}
.mainVisual {
  margin: 0 0 80px;
  position: relative;
  width: 100%;
  height: 100vh;
  background: url(../images/top/mv_top.png) center center no-repeat;
  -webkit-background-size: cover;
  background-size: cover;
}
.mainVisual .leadText {
  padding: 0 calc(162/1430*100%);
  display: flex;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 100%;
  background-color: rgba(0,0,0,0);
  box-sizing: border-box;
  transition: background-color ease .8s 2.8s;
}
.mainVisual .leadText .copy {
  margin-bottom: 50px;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-80px);
  transition: opacity ease .4s 3.8s,transform ease .4s 3.8s,visibility ease .4s 3.8s;
}
.mainVisual .leadText p {
  line-height: 2.5;
  color: #fff;
  font-size: 1.6rem;
  opacity: 0;
  visibility: hidden;
  transform: translateX(-80px);
  transition: opacity ease .4s 4s,transform ease .4s 4s,visibility ease .4s 4s;
}
.start .startLogo {
  opacity: 1;
  transform: translateY(0);
}
.logohide .startLogo {
  opacity: 0;
  visibility: hidden;
}
#topPage.start:before {
  transform: skewX(-20deg) translateX(-120%);
}
.start .mainVisual .leadText {
  background-color: rgba(0,0,0,.87);
}
#topPage.start #commonHeader .siteLogo,
.start .mainVisual .leadText .copy,
.start .mainVisual .leadText p {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}
#topPage.loadEnd {
  overflow: auto;
  overflow-x: hidden;
}
#topPage.skip  #commonHeader .siteLogo,
#topPage.skip .mainVisual .leadText .copy,
#topPage.skip .mainVisual .leadText p {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  transition: none;
}
#topPage.skip .mainVisual .leadText {
  background-color: rgba(0,0,0,.87);
  transition: none;
}
@media screen and (max-width: 767px) {
  #topPage:before {
    left: -50%;
    width: 200%;
  }
  .mainVisual {
    margin-bottom: 0;
    width: 100%;
    background: none;
  }
  .mainVisual .mv {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: url(../images/top/mv_top_sp.png) 0 0 no-repeat;
    background-size: 100% auto;
  }
  .mainVisual .leadText {
    padding: 55px calc(100/750*100vw);
    width: 100%;
    height: auto;
    min-height: 100vh;
    box-sizing: border-box;
  }
  .mainVisual .leadText .copy {
    margin-bottom: 30px;
    transform: translateX(-40px);
  }
  .mainVisual .leadText p {
    line-height: 2.33;
    font-size: 1.4rem;
    transform: translateX(-40px);
  }
  .start .mainVisual .leadText {
    background-color: rgba(0,0,0,.8);
  }
}





/* top service */
#topService .lead {
  margin: 0 0 60px;
  padding-left: 40px;
}
#topService .lead p {
  line-height: 2.14;
  color: #5a5a5a;
  font-size: 1.4rem;
}
#topService ul {
  margin-bottom: -70px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
#topService ul li {
  margin: 0 0 70px;
  width: calc(516/1130*100%);
  overflow: hidden;
}
#topService ul li:nth-child(2n) {
  margin-top: -90px;
}
#topService ul li a {
  display: block;
}
#topService ul li .image {
}
#topService ul li .image img {
  width: 100%;
}
#topService ul li .title {
  margin-top: -42px;
  position: relative;
  float: right;
  width: calc(383/516*100%);
  min-width: 270px;
  box-sizing: border-box;
}
#topService ul li .title .obi {
  padding: 0 10px;
  display: block;
  position: relative;
  line-height: 84px;
  overflow: hidden;
  color: #fff;
  background-color: #141414;
  font-size: 1.5rem;
  text-decoration: none;
  text-align: center;
}
#topService ul li .title .obi:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 120%;
  height: 100%;
  background-color: #df1e3c;
  transform: skewX(-20deg) translateX(-110%);
  transition: transform ease .3s;
}
#topService ul li .title span {
  padding-left: 40px;
  display: inline-block;
  line-height: 1.5;
  position: relative;
}
#topService ul li .title span:before,
#topService ul li .title span:after {
  content: "";
  border-radius: 50%;
  display: block;
  position: absolute;
  transition: border-color ease .3s,background-color ease .3s;
}
#topService ul li .title span:before {
  border: 2px #df1e3c solid;
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
}
#topService ul li .title span:after {
  top: 9px;
  left: 9px;
  width: 6px;
  height: 6px;
  background-color: #df1e3c;
}
@media screen and (min-width: 768px) {
  #topService ul li .image {
    transition: opacity ease .3s;
  }
  #topService ul li a:hover .image {
    opacity: .7;
  }
  #topService ul li a:hover .title .obi:before {
    transform: skewX(-20deg) translateX(-10%);
  }
  #topService ul li a:hover .title span:before {
    border-color: #fff;
  }
  #topService ul li a:hover .title span:after {
    background-color: #fff;
  }
}
@media screen and (max-width: 767px) {
  #topService .lead {
    margin: 0 0 40px;
    padding: 0 calc(40/750*100vw);
  }
  #topService .lead p {
  }
  #topService ul {
    margin-bottom: -40px;
    display: block;
  }
  #topService ul li {
    margin: 0 0 40px;
    width: 100%;
  }
  #topService ul li:nth-child(2n) {
    margin-top: 0;
  }
  #topService ul li .image {
  }
  #topService ul li .title {
    margin-top: -34px;
    width: calc(620/750*100vw);
    min-width: inherit;
  }
  #topService ul li .title .obi {
    line-height: 68px;
    font-size: 1.4rem;
  }
  #topService ul li .title span {
    padding-left: 35px;
  }
  #topService ul li .title span:before {
    top: -2px;
  }
  #topService ul li .title span:after {
    top: 7px;
  }
}





/* top products */
#topProducts {
  background: url(../images/top/bg_product.png) center center no-repeat;
  background-size: cover;
}
#topProducts .enTitle,
#topProducts .jpnTitle {
  color: #fff;
}
#topProducts ul {
  display: flex;
  flex-wrap: wrap;
}
#topProducts ul li {
  border-top: 1px #313131 solid;
  border-right: 1px #313131 solid;
  width: 25%;
  height: 100px;
	font-family: 'Raleway',"游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo",Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
  box-sizing: border-box;
}
#topProducts ul li:nth-child(-n+4) {
  border-top: none;
}
#topProducts ul li:nth-child(4n),
#topProducts ul li:last-child {
  border-right: none;
}
#topProducts ul li a {
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  position: relative;
  line-height: 1.5;
  color: #fff;
  background-color: #141414;
  font-size: 1.6rem;
  text-align: center;
  text-decoration: none;
  letter-spacing: .1em;
  transition: opacity ease .3s;
  box-sizing: border-box;
}
#topProducts ul li a:before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 15px;
  height: 1px;
  background-color: #df1e3c;
}
@media screen and (min-width: 768px) {
  #topProducts ul li a:hover {
    opacity: .7;
  }
}
@media screen and (max-width: 767px) {
  #topProducts {
    background: url(../images/top/bg_product_sp.png) center center no-repeat;
    background-size: cover;
  }
  #topProducts ul {
    display: block;
    flex-wrap: wrap;
  }
  #topProducts ul li {
    border-top: 1px #313131 solid;
    border-right: none;
    width: 100%;
    height: 75px;
  }
  #topProducts ul li:nth-child(-n+4) {
    border-top: 1px #313131 solid;
  }
  #topProducts ul li:first-child {
    border-top: none;
  }
  #topProducts ul li a {
    height: 100%;
  }
  #topProducts ul li a:before {
  }
}





/* top project */
#topProject {
}
@media screen and (max-width: 767px) {
}





/* top news */
#topNews {
  background-color: #212121;
}
#topNews .sectionInner {
  display: flex;
  flex-wrap: wrap;
}
#topNews .titleWrap {
  width: calc(280/1130*100%);
  box-sizing: border-box;
}
#topNews .enTitle,
#topNews .jpnTitle {
  color: #fff;
}
#topNews .newsList {
  width: calc(850/1130*100%);
}
#topNews .newsList {
}
#topNews .newsList ul {
  border-top: none;
}
#topNews .newsList ul li {
  border-bottom: none;
  margin: 0 0 20px;
  padding: 0;
}
#topNews .newsList ul li .category {
}
#topNews .newsList ul li .date {
  border-right: 1px #909090 dotted;
  color: #fff;
}
#topNews .newsList ul li .title {
}
#topNews .newsList ul li .title a {
  color: #fff;
}
#topNews .viewMoreL {
  width: 100%;
}
@media screen and (max-width: 767px) {
  #topNews {
  }
  #topNews .sectionInner {
    display: block;
  }
  #topNews .titleWrap {
    width: auto;
  }
  #topNews .newsList {
    width: auto;
  }
  #topNews .newsList {
  }
  #topNews .newsList ul {
  }
  #topNews .newsList ul li {
    flex-wrap: wrap;
  }
  #topNews .newsList ul li .category {
    font-size: 1.1rem;
  }
  #topNews .newsList ul li .date {
  }
  #topNews .newsList ul li .title {
    padding: 10px 0 0;
    width: 100%;
  }
  #topNews .viewMoreL {
    padding-left: 0;
    text-align: center;
  }
}





/* top news */
#topcareerss {
}
#topcareerss .linkBanner {
  margin: 0 auto;
  max-width: 930px;
}
#topcareerss .linkBanner a {
  display: block;
  position: relative;
  overflow: hidden;
}
#topcareerss .linkBanner a:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: -10%;
  z-index: 3;
  width: 120%;
  height: 100%;
  background-color: rgba(0,0,0,.4);
  transform: skewX(-20deg);
  transition: transform ease .3s;
}
#topcareerss .linkBanner a:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: -130%;
  z-index: 3;
  width: 120%;
  height: 100%;
  background-color: rgba(255,255,255,.3);
  transform: skewX(-20deg);
  transition: transform ease .3s;
}
#topcareerss .linkBanner .image {
  position: relative;
}
#topcareerss .linkBanner .image img {
  transition: transform ease .3s;
}
#topcareerss .linkBanner .title {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 5;
  color: #fff;
  text-align: center;
  transform: translate(-50%, -50%);
}
#topcareerss .linkBanner .title .en {
  padding-bottom: 15px;
  display: block;
  font-size: 3.4rem;
  letter-spacing: .2em;
  font-weight: bold;
}
#topcareerss .linkBanner .title .jpn {
  display: block;
  color: #fff;
  font-size: 1.6rem;
  font-weight: bold;
}
@media screen and (min-width: 768px) {
  #topcareerss .linkBanner a:hover .image img {
    transform: scale(1.15);
  }
  #topcareerss .linkBanner a:hover:before {
  }
  #topcareerss .linkBanner a:hover:after {
    transform: skewX(-20deg) translateX(100%);
  }
}
@media screen and (max-width: 767px) {
  #topcareerss {
  }
  #topcareerss .linkBanner {
  }
  #topcareerss .linkBanner a {
  }
  #topcareerss .linkBanner a:before {
  }
  #topcareerss .linkBanner a:after {
  }
  #topcareerss .linkBanner .image {
  }
  #topcareerss .linkBanner .image img {
  }
  #topcareerss .linkBanner .title {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 5;
    color: #fff;
    text-align: center;
    transform: translate(-50%, -50%);
  }
  #topcareerss .linkBanner .title .en {
    padding-bottom: 10px;
    font-size: 2.5rem;
  }
  #topcareerss .linkBanner .title .jpn {
    font-size: 1.3rem;
  }
}





/* =============================================================================
 Article Detail Styles
============================================================================= */

.articleDetail {
  padding-bottom: 100px;
  border-bottom: 1px #d9d9d9 solid;
}
.articleDetail .sectionInner {
  max-width: 800px;
}
.articleDetail .sectionInner>*:last-child {
  margin-bottom: 0;
}
.articleDetail .articleData ul {
  display: inline-block;
}
.articleDetail .articleData ul li {
  margin-right: 10px;
  padding-right: 10px;
  border-right: 1px #d9d9d9 solid;
  display: inline-block;
  line-height: 1.31;
  color: #df1e3c;
  font-size: 1.3rem;
  font-weight: bold;
}
.articleDetail .articleData ul li:last-child {
  border-right: none;
}
.articleDetail .articleData ul li span:after {
  content: "、";
}
.articleDetail .articleData ul li span:last-child:after {
  display: none;
}
.articleDetail .category {
  border-radius: 12px;
  display: inline-block;
  width: 120px;
  line-height: 24px;
  color: #fff;
  background-color: #df1e3c;
  font-size: 1.2rem;
  text-align: center;
}
.articleDetail .date {
  padding-left: 30px;
  display: inline-block;
  line-height: 24px;
  color: #949494;
  font-size: 1.4rem;
  text-align: center;
}
.articleDetail a {
  color: #171717;
  text-decoration: underline;
}
.articleDetail a:hover {
  text-decoration: none;
}
.articleDetail .articleTitle {
  margin: 20px 0 50px;
  line-height: 1.59;
  font-size: 3.4rem;
}
.articleDetail .articleSubTitle {
  margin: 0 0 30px;
  line-height: 1.64;
  font-size: 2.2rem;
}
.articleDetail .sectionInner>* + .articleSubTitle {
  margin-top: 70px;
}
.articleDetail p {
  margin: 0 0 30px;
  line-height: 2.25;
  color: #5a5a5a;
  font-size: 1.6rem;
}
.articleDetail .image {
  margin: 0 0 30px;
}
.articleDetail .image .caption,
.articleDetail .images .caption {
  padding-top: 10px;
  line-height: 1.33;
  color: #5a5a5a;
  font-size: 1.3rem;
}
.articleDetail .images {
  margin: 0 0 30px;
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  justify-content: space-between;
}
.articleDetail .images figure {
  margin-bottom: 20px;
  display: block;
  width: calc(390/800*100%);
}
.articleDetail .images .caption {
  margin-bottom: -5px;
}
.articleDetail ul.list {
  margin: 0 0 30px;
}
.articleDetail ul.list li {
  margin-bottom: 10px;
  padding-left: 22px;
  position: relative;
  line-height: 1.8;
  font-size: 1.6rem;
}
.articleDetail ul.list li:last-child {
  margin-bottom: 0;
}
.articleDetail ul.list li:before {
  content: "";
  border-radius: 50%;
  display: block;
  position: absolute;
  top: 10px;
  left: 5px;
  width: 8px;
  height: 8px;
  background-color: #b8b8b8;
}
.articleDetail ol {
  margin: 0 0 30px;
}
.articleDetail ol li {
  margin-bottom: 10px;
  padding-left: 22px;
  position: relative;
  line-height: 1.8;
  font-size: 1.6rem;
  list-style-position: inside;
  text-indent: -22px;
}
.articleDetail ol li:last-child {
  margin-bottom: 0;
}
.articleDetail ul.notice {
  margin: 0 0 30px;
}
.articleDetail ul.notice li {
  padding-left: 22px;
  position: relative;
  line-height: 1.69;
  font-size: 1.3rem;
  text-indent: -22px;
}
.articleDetail ul.notice li:last-child {
  margin-bottom: 0;
}
.articleDetail ul.notice li:before {
  margin-right: 9px;
  content: "※";
}
.articleDetail .infoTable {
  margin: 0 0 30px;
  border-bottom: 1px #d9d9d9 solid;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  line-height: 1.67;
  color: #171717;
  font-size: 1.5rem;
}
.articleDetail .infoTable dt {
  padding: 20px 25px;
  border-top: 1px #d9d9d9 solid;
  width: 175px;
  background-color: #f4f4f4;
  box-sizing: border-box;
}
.articleDetail .infoTable dd {
  padding: 20px 25px;
  border-top: 1px #d9d9d9 solid;
  width: calc(100% - 175px);
  box-sizing: border-box;
}
.articleDetail .infoTable dd table {
  width: 100%;
}
.articleDetail .infoTable dd table td {
  box-sizing: border-box;
}
.articleDetail .infoTable dd table td:nth-child(1) {
  padding-left: 1em;
  text-indent: -1em;
}
.articleDetail .infoTable dd table td:nth-child(1):before {
  content: "・";
}
.articleDetail .infoTable dd table td:nth-child(2) {
  padding: 0 1em;
}
.articleDetail .infoTable dd p {
  margin: 0;
  line-height: inherit;
}
.pageController {
  padding: 50px calc(150/1430*100%) 130px;
}
.pageController .inner {
  margin: 0 auto;
  position: relative;
  max-width: 1600px;
}
.pageController .prev {
  position: absolute;
  top: calc(50% - 6px);
  left: 0;
}
.pageController .next {
  position: absolute;
  top: calc(50% - 6px);
  right: 0;
}
.pageController .prev a,
.pageController .next a {
  display: flex;
  align-items: center;
  color: #171717;
  text-decoration: none;
}
.pageController .prev a span {
  padding-left: 15px;
}
.pageController .prev a:before,
.pageController .next a:after {
  content: "";
  display: block;
  width: 44px;
  height: 1px;
  background-color: #171717;
  transition: width ease .3s,background-color ease .3s;
}
.pageController .next a span {
  padding-right: 15px;
}
.pageController .viewMoreL {
  margin: 0;
}
.pageController .viewMoreL a {
  font-size: 1.3rem;
}
.viewMoreL a>span {
  display: flex;
  align-items: center;
  justify-content: center;
}
.viewMoreL a .icon {
  margin-right: 20px;
  display: inline-block;
  width: 20px;
  height: 20px;
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAFUlEQVQImWMQFxf/j44ZYGAgJMkGAH9pH6VFE4dWAAAAAElFTkSuQmCC) 0 0 repeat;
}
@media screen and (min-width: 768px) {
  .viewMoreL a:hover .icon {
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAEklEQVQImWP4jwUwwMBASJINAFlNY51qtaT8AAAAAElFTkSuQmCC) 0 0 repeat;
  }
  .pageController .prev a:hover,
  .pageController .next a:hover {
    color: #df1e3c;
  }
  .pageController .prev a:hover:before,
  .pageController .next a:hover:after {
    width: 64px;
    background-color: #df1e3c;
  }
  .pageController ul li a:hover {
    color: #fff;
    background-color: #000;
  }
}

@media screen and (max-width: 767px) {
  .articleDetail {
    padding: 100px calc(80/750*100vw) 50px;
  }
  .articleDetail .articleData {
  }
  .articleDetail .articleData ul {
    padding-bottom: 5px;
    display: block;
  }
  .articleDetail .articleData ul li {
    margin-right: 5px;
    padding-right: 5px;
    font-size: 1.2rem;
  }
  .articleDetail .articleData ul li:last-child {
    border-right: none;
  }
  .articleDetail .category {
    margin-right: 15px;
  }
  .articleDetail .date {
    padding-left: 0;
  }
  .articleDetail .articleTitle {
    margin: 15px 0 40px;
    line-height: 1.35;
    font-size: 2.6rem;
  }
  .articleDetail .articleSubTitle {
    margin: 0 0 20px;
    line-height: 1.45;
  }
  .articleDetail .sectionInner>* + .articleSubTitle {
    margin-top: 45px;
  }
  .articleDetail p {
    margin: 0 0 20px;
    line-height: 1.67;
    font-size: 1.5rem;
  }
  .articleDetail .image {
    margin: 0 calc(-40/750*100vw) 20px;
  }
  .articleDetail .images {
    margin: 0 calc(-40/750*100vw) 20px;
  }
  .articleDetail .images figure {
    margin-bottom: 25px;
  }
  .articleDetail .images img {
  }
  .articleDetail .image .caption, .articleDetail .images .caption {
  }
  .articleDetail ul.list {
    margin: 0 0 20px;
  }
  .articleDetail ul.list li {
    margin-bottom: 5px;
    padding-left: 20px;
    line-height: 1.5;
    font-size: 1.5rem;
  }
  .articleDetail ul.list li:before {
    top: 8px;
    left: 4px;
  }
  .articleDetail ol {
    margin: 0 0 20px;
  }
  .articleDetail ol li {
    margin-bottom: 5px;
    padding-left: 20px;
    line-height: 1.5;
    font-size: 1.5rem;
    text-indent: -20px;
  }
  .articleDetail ul.notice {
    margin: 0 0 20px;
  }
  .articleDetail ul.notice li {
    padding-left: 20px;
    line-height: 1.33;
    font-size: 1.2rem;
    text-indent: -20px;
  }
  .articleDetail ul.notice li:before {
    margin-right: 7px;
    content: "※";
  }
  .articleDetail .infoTable {
    margin: 0 calc(-40/750*100vw) 20px;
    display: block;
    width: auto;
  }
  .articleDetail .infoTable dt {
    padding: 15px calc(40/750*100vw) 0;
    border-top: 1px #d9d9d9 solid;
    width: 100%;
    background-color: transparent;
    font-weight: bold;
  }
  .articleDetail .infoTable dd {
    padding: 0 calc(40/750*100vw) 15px;
    border-top: none;
    width: 100%;
    word-break: break-all;
  }
  .articleDetail .infoTable dd table,
  .articleDetail .infoTable dd table tr,
  .articleDetail .infoTable dd table td {
    display: block;
  }
  .articleDetail .infoTable dd table tr + tr {
    margin-top: 10px;
  }
  .articleDetail .infoTable dd table td:nth-child(2) {
    padding: 0;
  }
  .articleDetail .infoTable dd table td {
    padding-left: 1em !important;
  }

  .pageController {
    padding: 40px calc(40/750*100vw);
  }
  .pageController .prev {
    left: calc(-40/750*100vw);
  }
  .pageController .next {
    right: calc(-40/750*100vw);
  }
  .pageController .prev a,
  .pageController .next a {
    font-size: 1.2rem;
  }
  .pageController .prev a span {
    padding-left: 8px;
  }
  .pageController .prev a:before,
  .pageController .next a:after {
    width: 24px;
  }
  .pageController .next a span {
    padding-right: 8px;
  }
  .pageController .viewMoreL {
  }
  .pageController .viewMoreL a {
    width: 180px;
    font-size: 1.2rem;
  }
  .viewMoreL a>span {
  }
  .viewMoreL a .icon {
    margin-right: 10px;
  }
}





/* =============================================================================
 Service Page Styles
============================================================================= */

.serviceList {
}
.serviceList ul {
}
.serviceList ul li {
  margin: 0 0 140px;
}
.serviceList ul li a {
  color: #595959;
  text-decoration: none;
}
.serviceList ul li:last-child {
  margin-bottom: 0;
}
.serviceList ul li .image img {
  width: 100%;
}
.serviceList ul li .serviceIntro {
  padding: 40px 40px 0;
  display: flex;
  justify-content: space-between;
  position: relative;
}
.serviceList ul li .serviceTitle {
  width: 48%;
  line-height: 1.29;
  font-size: 2.8rem;
}
.serviceList ul li p {
  width: 48%;
  line-height: 2.31;
}
.serviceList ul li .viewMore {
  position: absolute;
  top: 120px;
  left: 40px;
}

@media screen and (min-width: 768px) {
  .serviceList ul li a .image {
    transition: opacity ease .3s;
  }
  .serviceList ul li a:hover .image {
    opacity: .7;
  }
}

@media screen and (max-width: 767px) {
  .serviceList {
  }
  .serviceList ul {
  }
  .serviceList ul li {
    margin: 0 0 70px;
  }
  .serviceList ul li:last-child {
    margin-bottom: 0;
  }
  .serviceList ul li .image {
  }
  .serviceList ul li .serviceIntro {
    padding: 20px calc(40/750*100vw) 0;
    display: block;
  }
  .serviceList ul li .serviceTitle {
    margin: 0 0 10px;
    width: auto;
    font-size: 2.4rem;
  }
  .serviceList ul li p {
    margin: 0 0 20px;
    width: auto;
    line-height: 2;
  }
  .serviceList ul li .viewMore {
    position: static;
  }
}





/* detail */
.serviceDetail {
  background-color: #f3f3f3;
}
.serviceDetail .serviceLead {
  margin: 0 0 80px;
  padding: 0 40px;
}
.serviceDetail .serviceLead .title {
  margin: 0 0 30px;
  line-height: 1.29;
  font-size: 2.8rem;
}
.serviceDetail .serviceLead p {
  line-height: 2.25;
  font-size: 1.6rem;
}
.serviceDetail ul {
  margin: 0 0 -40px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.serviceDetail ul li {
  margin: 0 0 40px;
  width: calc(545/1130*100%);
  background-color: #303030;
}
.serviceDetail ul li .image {
  width: 100%;
}
.serviceDetail ul li .image img {
  width: 100%;
}
.serviceDetail ul li .caption {
  padding: 15px 10px;
  line-height: 1.47;
  color: #fff;
  font-size: 1.5rem;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .serviceDetail ul li {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media screen and (max-width: 767px) {
  .serviceDetail {
  }
  .serviceDetail .serviceLead {
    margin: 0 0 60px;
    padding: 0 calc(40/750*100vw);
  }
  .serviceDetail .serviceLead .title {
    margin: 0 0 10px;
    line-height: 1.45;
    font-size: 2.2rem;
  }
  .serviceDetail .serviceLead p {
    line-height: 1.67;
    font-size: 1.5rem;
  }
  .serviceDetail ul {
    margin: 0 0 -25px;
    display: block;
  }
  .serviceDetail ul li {
    margin: 0 0 25px;
    width: auto;
  }
  .serviceDetail ul li .caption {
    padding: 15px 10px;
    font-size: 1.25rem;
  }
}





/* =============================================================================
 Product Page Styles
============================================================================= */

.pageAnchor {
  padding: 20px 30px 10px;
  background-color: #171717;
}
.pageAnchor ul {
  font-size: 0;
}
.pageAnchor ul li {
  margin: 0 40px 10px 0;
  display: inline-block;
  line-height: 1.5;
  font-size: 1.4rem;
}
.pageAnchor ul li a {
  padding-right: 20px;
  display: block;
  position: relative;
  color: #fff;
}
.pageAnchor ul li a:after {
  content: "";
  border-right: 2px #df1e3c solid;
  border-bottom: 2px #df1e3c solid;
  display: block;
  position: absolute;
  top: 2px;
  right: 0;
  width: 8px;
  height: 8px;
  transform: rotate(45deg);
}
.productList {
  margin-top: 100px;
}
.productList .enTitle {
  font-size: 3.4rem;
}
.productList ul {
  display: flex;
  flex-wrap: wrap;
}
.productList ul li {
  margin-bottom: 20px;
  width: 25%;
}
.productList ul li:nth-child(4n) {
  margin-right: 0;
}

@media screen and (min-width: 768px) {
}

@media screen and (max-width: 767px) {
  .pageAnchor {
    padding: 20px calc(40/750*100vw) 10px;
  }
  .pageAnchor ul li {
    margin: 0 0 5px;
    display: block;
    font-size: 1.3rem;
  }
  .pageAnchor ul li a {
    display: inline-block;
  }
  .productList {
    margin-top: 50px;
  }
  .productList .enTitle {
    font-size: 2.8rem;
  }
  .productList ul {
    display: block;
  }
  .productList ul li {
    margin: 0 0 20px;
    padding: 0;
    width: auto;
  }
}





/* detail */
.pageHeader.product .topicPath ul li,
.pageHeader.product .topicPath ul li a,
.pageHeader.product .jpnTitleL {
  color: #171717;
}
.productArticle {
  margin-bottom: 100px;
  padding: 0 40px;
}
.productArticle>*:last-child {
  margin-bottom: 0;
}
.productArticle .articleTitle {
  margin: 0 0 15px;
  line-height: 1.29;
  font-size: 2.8rem;
}
.productArticle p {
  margin: 0 0 30px;
  line-height: 2.25;
  font-size: 1.6rem;
}
.productArticle .maker {
  margin: 40px 0 0;
}
.productArticle .maker dt {
  margin: 0 0 20px;
  display: flex;
  align-items: center;
  color: #171717;
  font-weight: bold;
}
.productArticle .maker dt:before {
  content: "";
  margin-right: 10px;
  display: inline-block;
  width: 32px;
  height: 1px;
  background-color: #171717;
}
.productArticle .maker dd {
  line-height: 1.57;
  font-size: 1.4rem;
}
.productArticle .maker dd a {
  color: #171717;
  text-decoration: underline;
}
.productArticle .maker dd a:hover {
  text-decoration: none;
}

@media screen and (max-width: 767px) {
  .productArticle {
    margin-bottom: 50px;
    padding: 0 calc(40/750*100vw);
  }
  .productArticle>*:last-child {
    margin-bottom: 0;
  }
  .productArticle .titleWrap {
    margin-top: -60px;
    padding: 0;
  }
  .productArticle .jpnTitleL {
    color: #171717;
    font-family: 'Raleway',"游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo",Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
  }
  .productArticle .articleTitle {
    margin: 0 0 10px;
    font-size: 2.2rem;
  }
  .productArticle p {
    margin: 0 0 20px;
    line-height: 1.67;
    font-size: 1.5rem;
  }
  .productArticle .maker {
    margin: 30px 0 0;
  }
  .productArticle .maker dt {
    margin: 0 0 10px;
  }
  .productArticle .maker dt:before {
  }
  .productArticle .maker dd {
  }
  .productArticle .maker dd a {
  }
}





/* =============================================================================
 Project Page Styles
============================================================================= */

.projectSort {
  margin: 0;
}
.projectSort .sortOpen {
  display: none;
}
.projectSort dl {
  display: flex;
  line-height: 2;
}
.projectSort dl + dl dt {
  border-top: 1px #5f5f5f solid;
}
.projectSort dl + dl dd {
  border-top: 1px #e4e4e4 solid;
}
.projectSort dl dt {
  padding: 20px 10px;
  width: 135px;
  color: #fff;
  background-color: #171717;
  font-size: 1.3rem;
  font-weight: bold;
  text-align: center;
  box-sizing: border-box;
}
.projectSort dl dd {
  padding: 20px;
  width: calc(100% - 135px);
  color: #171717;
  background-color: #f3f3f3;
  font-size: 1.4rem;
  box-sizing: border-box;
}
.projectSort dl dd ul {
}
.projectSort dl dd ul li {
  margin-right: 30px;
  display: inline-block;
}
.projectSort dl dd ul li label {
  padding-left: 25px;
  display: block;
  position: relative;
}
.projectSort dl dd ul li:last-child {
  margin-right: 0;
}
.projectSort dl dd ul li input {
  margin: 0;
  position: absolute;
  top: 8px;
  left: 0;
  vertical-align: middle;
}
.projectList {
}
.projectList>ul {
  border-top: 1px #d9d9d9 solid;
}
.projectList>ul#results {
  min-height: inherit !important;
}
.projectList>ul>li.projectPanel {
  border-bottom: 1px #d9d9d9 solid;
}

@media screen and (min-width: 768px) {
  .projectSort .sortMenu {
    display: block !important;
  }
}

@media screen and (max-width: 767px) {
  .projectSort {
    margin: 0;
  }
  .projectSort .sortOpen {
    display: block;
    position: relative;
    line-height: 50px;
    font-size: 13px;
    color: #fff;
    background-color: #171717;
    font-weight: bold;
    text-align: center;
  }
  .projectSort .sortOpen:after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 3px);
    left: 93%;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px 5px 0 5px;
    border-color: #fff transparent transparent transparent;
    transition: transform ease .3s;
  }
  .projectSort .sortOpen.open:after {
    transform: rotate(180deg);
  }
  .projectSort .sortMenu {
    display: none;
  }
  .projectSort dl {
    display: block;
  }
  .projectSort dl + dl dt,
  .projectSort dl + dl dd {
    border-top: none;
  }
  .projectSort dl dt {
    padding: 10px calc(40/750*100vw) 0;
    width: auto;
    color: #171717;
    background-color: #f3f3f3;
    text-align: left;
  }
  .projectSort dl dd {
    padding: 0 calc(40/750*100vw) 10px;
    width: auto;
  }
  .projectSort dl + dl {
    border-top: 1px #e4e4e4 solid;
  }
  .projectSort dl dd ul {
  }
  .projectSort dl dd ul li {
    margin-right: 30px;
    display: inline-block;
  }
  .projectSort dl dd ul li:last-child {
    margin-right: 0;
  }
  .projectSort dl dd ul li input {
    vertical-align: middle;
  }
  .projectList {
  }
  .projectList>ul {
    border-top: 1px #d9d9d9 solid;
  }
  .projectList>ul>li.projectPanel {
    border-bottom: 1px #d9d9d9 solid;
  }
}





/* =============================================================================
 Company Page Styles
============================================================================= */

/* index */
.companyList {
}
.companyList ul {
  display: flex;
  justify-content: space-between;
}
.companyList ul li {
  width: calc(344/1130*100%);
}
.companyList ul li a {
  display: block;
  line-height: 2.25;
  color: #fff;
  font-size: 1.6rem;
  text-decoration: none;
  text-align: center;
  transition: opacity ease .3s;
}
.companyList ul li .image img {
  width: 100%;
}
.companyList ul li .title {
  padding: 12px 0;
  width: 100%;
  background-color: #303030;
}

@media screen and (min-width: 768px) {
  .companyList ul li a:hover {
    opacity: .7;
  }
}

@media screen and (max-width: 767px) {
  .companyList {
  }
  .companyList ul {
    display: block;
  }
  .companyList ul li {
    margin: 0 0 20px;
    width: auto;
  }
  .companyList ul li:last-child {
    margin: 0;
  }
  .companyList ul li a {
    line-height: 1.67;
    font-size: 1.5rem;
  }
}





/* profile */
.outlineTable dl {
  margin: 0 0 30px;
  border-bottom: 1px #d9d9d9 solid;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  line-height: 1.67;
  color: #171717;
  font-size: 1.5rem;
}
.outlineTable dl dt {
  padding: 20px 40px;
  border-top: 1px #d9d9d9 solid;
  width: 195px;
  box-sizing: border-box;
}
.outlineTable dl dd {
  padding: 20px 40px;
  border-top: 1px #d9d9d9 solid;
  width: calc(100% - 195px);
  box-sizing: border-box;
}
.outlineTable dl dd a {
  color: #171717;
  text-decoration: underline;
}
.outlineTable dl dd a:hover {
  text-decoration: none;
}

@media screen and (max-width: 767px) {
  .outlineTable dl {
    margin: 0 0 20px;
    display: block;
    width: auto;
  }
  .outlineTable dl dt {
    padding: 15px calc(40/750*100vw) 0;
    border-top: 1px #d9d9d9 solid;
    width: 100%;
    font-weight: bold;
  }
  .outlineTable dl dd {
    padding: 0 calc(40/750*100vw) 15px;
    border-top: none;
    width: 100%;
  }
}





/* vision */
.philosophy {
  padding: 90px 75px 60px;
  background: url(../images/company/mv_vision.png) center center no-repeat;
  -webkit-background-size: cover;
  background-size: cover;
}
.philosophy ul {
  margin: 0 auto 70px;
  padding: 25px 0;
  border-radius: 8px;
  max-width: 780px;
  background-color: #fff;
  font-size: 0;
  text-align: center;
}
.philosophy ul li {
  display: inline-block;
  position: relative;
  color: #171717;
  background-color: #fff;
  text-align: center;
  box-sizing: border-box;
  font-size: 3rem;
  letter-spacing: .1em;
}
.philosophy ul li:nth-child(1) {
}
.philosophy ul li:nth-child(1):after {
  margin: 0 10px;
  content: "+";
  color: #909090;
}
.philosophy ul li:nth-child(2) {
}
.philosophy ul li:nth-child(2):after {
  margin: 0 10px;
  content: "=";
  color: #909090;
}
.philosophy ul li:nth-child(3) {
  color: #df1e3c;
}
.philosophy ul.en.new li:after {
  content:none;
  margin:0;
}
.philosophy ul li span {
  position: relative;
}
.philosophy p {
  line-height: 2.25;
  color: #fff;
  font-size: 1.6rem;
  text-align: center;
}

@media screen and (min-width: 768px) and (max-width: 1430px) {
  .philosophy ul li {
    font-size: 2.1vw;
  }
}

.visionBox {
  margin-top: 130px;
}
.visionBox .inner {
  position: relative;
}
.visionBox p {
  padding: 50px 360px 50px 80px;
  border: 6px #f3f3f3 solid;
  display: flex;
  align-items: center;
  line-height: 1.79;
  height: 200px;
  color: #171717;
  font-size: calc(26/1430*100vw);
  box-sizing: border-box;
}

@media screen and (min-width: 1431px) {
  .philosophy ul li {
    font-size: 2.6rem;
  }
}

.visionBox .inner .image {
  position: absolute;
  top: 0;
  right: 0;
}
.visionBox dl {
  display: flex;
  flex-wrap: wrap;
  overflow: hidden;
  color: #171717;
}
.visionBox dl dt {
  margin-top: 10px;
  border: 4px #f3f3f3 solid;
  border-right: none;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50%;
  height: 160px;
  box-sizing: border-box;
  text-align: center;
}
.visionBox dl dt:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  width: 110%;
  height: 100%;
  background-color: #f3f3f3;
  transform: skewX(-20deg);
}
.visionBox dl dt>span {
  display: block;
  position: relative;
}
.visionBox dl dt .en {
  display: block;
  line-height: 1.2;
  color: #df1e3c;
  font-size: 3rem;
  font-weight: bold;
}
.visionBox dl dt .jpn {
  padding-top: 10px;
  display: block;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: .1em;
}
.visionBox dl dd {
  margin-top: 10px;
  padding-left: calc(140/1130*100%);
  border: 4px #f3f3f3 solid;
  border-left: none;
  display: flex;
  align-items: center;
  width: 50%;
  height: 160px;
  line-height: 1.73;
  font-size: 1.5rem;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  .philosophy {
    padding: 40px calc(40/750*100vw);
  }
  .philosophy ul {
    margin: 0 0 30px;
    display: block;
  }
  .philosophy ul li {
    margin-bottom: 10px;
    display: block;
    width: 100%;
    line-height: 1.33;
    font-size: 1.8rem;
  }
  .philosophy ul li:last-child {
    margin-bottom: 0;
  }
  .philosophy ul li:nth-child(1):after,
  .philosophy ul li:nth-child(2):after {
    display: block;
  }
  .philosophy ul li:nth-child(2):after {
    transform: rotate(90deg);
  }
  .philosophy p {
    line-height: 1.66;
    font-size: 1.4rem;
  }
  .visionBox {
    margin-top: 70px;
  }
  .visionBox p {
    padding: 20px 10px;
    border: 3px #f3f3f3 solid;
    line-height: 1.67;
    height: auto;
    font-size: 2rem;
    text-align: center;
  }
  .visionBox .inner {
    position: relative;
  }
  .visionBox .inner .image {
    display: none;
  }
  .visionBox dl {
    display: block;
  }
  .visionBox dl dt {
    margin-top: 10px;
    padding: 10px 0;
    border: 2px #f3f3f3 solid;
    border-bottom: none;
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    background-color: #f3f3f3;
  }
  .visionBox dl dt:before {
    display: none;
  }
  .visionBox dl dt>span {
  }
  .visionBox dl dt .en {
    font-size: 2.4rem;
  }
  .visionBox dl dt .jpn {
    padding-top: 5px;
    font-size: 1.4rem;
  }
  .visionBox dl dd {
    margin-top: 0;;
    padding: 10px;
    border: 2px #f3f3f3 solid;
    border-top: none;
    display: block;
    width: 100%;
    height: auto;
  }
}





/* location */
.locationList {
}
.locationList>ul {
}
.locationList>ul>li {
  margin: 0 0 30px;
  display: flex;
  align-items: center;
  background-color: #f3f3f3;
}
.locationList>ul>li:last-child {
  margin-bottom: 0;
}
.locationList ul li .photo {
  width: calc(344/1130*100%);
}
.locationList ul li .photo img {
  width: 100%;
}
.locationList ul li .data {
  padding: 40px;
  width: calc(786/1130*100%);
  color: #171717;
  box-sizing: border-box;
}
.locationList ul li .name {
  margin: 0 0 20px;
  line-height: 1.5;
  font-size: 2.4rem;
}
.locationList ul li .address {
  margin: 0 0 10px;
  line-height: 28px;
}
.locationList ul li .address .btnMap {
  display: inline-block;
  width: 108px;
}
.locationList ul li .address .btnMap a {
  display: block;
  color: #fff;
  background-color: #979797;
  font-size: 1.2rem;
  text-decoration: none;
  text-align: center;
  transition: opacity ease .3s;
}
.locationList ul li ul {
}
.locationList ul li ul li {
  margin: 10px 0 0;
  line-height: 22px;
}
.locationList ul li ul li .label {
  margin-right: 10px;
  border: 1px #171717 solid;
  display: inline-block;
  width: 70px;
  line-height: 20px;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .locationList ul li .address .btnMap a:hover {
    opacity: .7;
  }
}

@media screen and (max-width: 767px) {
  .locationList {
  }
  .locationList>ul {
  }
  .locationList>ul>li {
    margin: 0 0 20px;
    display: block;
  }
  .locationList>ul>li:last-child {
    margin-bottom: 0;
  }
  .locationList ul li .photo {
    width: 100%;
  }
  .locationList ul li .photo img {
  }
  .locationList ul li .data {
    padding: 20px calc(40/750*100vw);
    width: 100%;
  }
  .locationList ul li .name {
    margin: 0 0 10px;
    font-size: 2rem;
  }
  .locationList ul li .address {
    line-height: 1.5;
  }
  .locationList ul li .address .btnMap {
    margin: 10px 0;
    display: block;
    width: 108px;
    line-height: 28px;
  }
  .locationList ul li .address .btnMap a {
    display: block;
    color: #fff;
    background-color: #979797;
    font-size: 1.2rem;
    text-decoration: none;
    text-align: center;
    transition: opacity ease .3s;
  }
  .locationList ul li ul {
  }
  .locationList ul li ul li {
    margin: 10px 0 0;
    line-height: 1.5;
  }
  .locationList ul li ul li .label {
    margin: 0 0 10px;
  }
}





/* =============================================================================
 Recruit Page Styles
============================================================================= */

.careerMssg {
  margin: -70px 0 60px;
}
.careerMssg p {
  line-height: 1.76;
  color: #171717;
  font-size: 3.4rem;
  text-align: center;
  letter-spacing: .1em;
}
.recruitInfo {
}
.recruitInfo + .btnPink {
  margin-top: 55px;
}
.recruitInfo p {
  margin: 0 40px 60px;
  line-height: 2.25;
  font-size: 1.6rem;
}
.recruitTable {
  border: 1px #d9d9d9 solid;
  border-bottom: none;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  box-sizing: border-box;
}
.recruitTable dt {
  padding: 20px 30px;
  border-bottom: 1px #d9d9d9 solid;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 215px;
  line-height: 2.25;
  color: #171717;
  background-color: #f3f3f3;
  font-size: 1.6rem;
  text-align: center;
  box-sizing: border-box;
}
.recruitTable dd {
  padding: 20px 30px;
  border-bottom: 1px #d9d9d9 solid;
  line-height: 1.86;
  width: calc(100% - 215px);
  font-size: 1.4rem;
  box-sizing: border-box;
}
.recruitTable dd a {
  color: #595959;
  text-decoration: underline;
}
.recruitTable dd a:hover {
  text-decoration: none;
}
.occupationsInfo {
  margin: 150px 0 55px;
}
.occupationsInfo .selector {
  margin: 0 0 60px;
  padding: 0 40px;
  display: flex;
}
.occupationsInfo .selector .tabBtn {
  border: 1px #171717 solid;
  border-bottom: none;
  position: relative;
  width: 25%;
  line-height: 68px;
  color: #fff;
  background-color: #171717;
  font-size: 1.5rem;
  text-align: center;
  box-sizing: border-box;
  cursor: pointer;
}
.occupationsInfo .selector .tabBtn:after {
  content: "";
  display: block;
  position: absolute;
  bottom: 10px;
  left: calc(50% - 5px);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 5px 0 5px;
  border-color: #fff transparent transparent transparent;
  opacity: .25;
}
.occupationsInfo .selector .tabBtn:hover,
.occupationsInfo .selector .tabBtn.current {
  color: #171717;
  background-color: #fff;
  font-weight: bold;
}
.occupationsInfo .selector .tabBtn:hover:after,
.occupationsInfo .selector .tabBtn.current:after {
  border-color: #000 transparent transparent transparent;
  opacity: .2;
}
.occupationTable {
  display: none;
}
.selector + .occupationTable,
.occupationTable:first-child {
  display: block;
}

@media screen and (max-width: 767px) {
  .careerMssg {
    margin: -70px 0 30px;
  }
  .careerMssg p {
    line-height: 1.5;
    font-size: calc(23/375*100vw);
  }
  .recruitInfo {
  }
  .recruitInfo + .btnPink {
    margin-top: 30px;
  }
  .recruitInfo p {
    margin: 0 calc(40/750*100vw) 30px;
    line-height: 1.67;
    font-size: 1.5rem;
  }
  .recruitTable {
    display: block;
  }
  .recruitTable dt {
    padding: 10px calc(40/750*100vw);
    display: block;
    width: auto;
    line-height: 1.67;
    font-size: 1.5rem;
  }
  .recruitTable dd {
    padding: 10px calc(40/750*100vw);
    width: auto;
  }
  .occupationsInfo {
    margin: 100px 0 30px;
  }
  .occupationsInfo .selector {
    margin: 0 0 20px;
    padding: 0 calc(40/750*100vw);
    display: block;
  }
  .occupationsInfo .selector .tabBtn {
    padding: 10px 0;
    border: 1px #171717 solid;
    width: 100%;
    line-height: 1.5;
    font-size: 1.4rem;
  }
  .occupationsInfo .selector .tabBtn:after {
    bottom: calc(50% - 3px);
    left: 93%;
  }
}





/* =============================================================================
 Information Styles
============================================================================= */

.infoText {
  padding: 0 40px;
}
.infoText a {
  color: #595959;
  text-decoration: underline;
}
.infoText a:hover {
  text-decoration: none;
}
.infoText dl {
}
.infoText dl dt {
  margin: 0 0 10px;
  line-height: 1.67;
  color: #171717;
  font-size: 1.8rem;
  font-weight: bold;
}
.infoText dl dd {
  line-height: 1.86;
  font-size: 1.4rem;
}
.infoText dl dd + dt {
  margin-top: 40px;
}
.infoText dl dd dt {
  margin-top: 20px;
  font-size: 1.4rem;
  font-weight: normal;
}
.infoText dl dd dd {
  padding-left: 2em;
}
.infoText dl dd dd + dt {
  margin-top: 20px;
}
.infoText .signiture {
  margin-top: 30px;
  line-height: 1.86;
  font-size: 1.4rem;
  text-align: right;
}
.numList {
}
.numList li {
  padding-left: 40px;
  text-indent: -40px;
}
.numList li ol {
  list-style-position: inside;
}
.numList li ol li {
  padding-left: 1.2em;
  text-indent: -1.2em;
}

@media screen and (max-width: 767px) {
  .infoText {
    padding: 0 calc(40/750*100vw);
  }
  .infoText dl {
  }
  .infoText dl dt {
    margin: 0 0 10px;
    font-size: 1.5rem;
  }
  .infoText dl dd {
    line-height: 1.67;
    font-size: 1.3rem;
  }
  .infoText dl dd + dt {
    margin-top: 30px;
  }
  .infoText dl dd dd {
    padding-left: 0;
  }
  .infoText .signiture {
    margin-top: 20px;
    line-height: 1.67;
    font-size: 1.3rem;
  }
  .numList {
  }
  .numList li {
    padding-left: 2.7em;
    text-indent: -2.7em;
  }
}





/* =============================================================================
 Sitemap Styles
============================================================================= */

.sitemap {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
}
.sitemap dl {
  margin: 40px calc(19/1130*100%) 20px 0;
  padding: 40px 40px 0;
  border-top: 1px #d9d9d9 solid;
  width: calc(268/1130*100%);
	font-family:'Raleway', "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo",Osaka,"ＭＳ Ｐゴシック","MS PGothic",sans-serif;
  box-sizing: border-box;
}
.sitemap dl:nth-child(4n) {
  margin-right: 0;
}
.sitemap dl dt {
  margin: 0 0 20px;
  font-size: 2.2rem;
  font-weight: bold;
  letter-spacing: .2em;
}
.sitemap dl dt a {
  color: #171717;
}
.sitemap dl dd {
  line-height: 1.86;
  font-size: 1.4rem;
}
.sitemap dl dd a {
  color: #595959;
}

@media screen and (max-width: 767px) {
  .sitemap {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
  }
  .sitemap dl {
    margin: 20px 0;
    padding: 20px calc(40/750*100vw) 0;
    width: 100%;
  }
  .sitemap dl dt {
    margin: 0 0 10px;
    font-size: 2rem;
  }
  .sitemap dl dd {
    line-height: 1.67;
  }
}





/* =============================================================================
 form Styles
============================================================================= */

.formArea {
}
.formArea a {
  color: #595959;
  text-decoration: underline;
}
.formArea a:hover {
  text-decoration: none;
}
.formArea p {
  padding: 0 40px;
  line-height: 2;
  font-size: 1.5rem;
}
.formArea dl {
  margin: 40px 0 0;
  border-top: 1px #d9d9d9 solid;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  font-size: 1.4rem;
}
.formArea dl dt {
  padding: 10px 40px;
  border-bottom: 1px #d9d9d9 solid;
  position: relative;
  width: 292px;
  line-height: 40px;
  color: #171717;
  box-sizing: border-box;
}
.formArea dl dt .require {
  border-radius: 12px;
  position: absolute;
  top: 20px;
  right: 20px;
  width: 50px;
  line-height: 24px;
  color: #fff;
  background-color: #a6a6a6;
  font-size: 1.2rem;
  text-align: center;
}
.formArea dl dd {
  padding:  10px 0;
  border-bottom: 1px #d9d9d9 solid;
  width: calc(100% - 292px);
  line-height: 40px;
  box-sizing: border-box;
}
.formArea dl dd .entry {
  margin: 0;
  padding: 0 20px;
  border: none;
  border-radius: 0;
  line-height: 40px;
  background-color: #f3f3f3;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-sizing: border-box;
  font-size: 14px;
}
.formArea dl dd .entry01 {
  width: 42%;
}
.formArea dl dd .entry02 {
  width: 84%;
}
.formArea dl dd textarea {
  margin: 0;
  padding: 0 20px;
  border: none;
  border-radius: 0;
  width: 100%;
  height: 100px;
  background-color: #f3f3f3;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-sizing: border-box;
}
.formArea dl dd input[type="file"] + .mwform-file-delete + .mw-wp-form_file:before {
  content: "ファイルを再添付する場合は上記よりお願いします。";
  display: block;
}
.formArea .annotaiton {
  margin: 40px 0 20px;
}
.formArea .annotaiton p {
  text-align: center;
}
.mw_wp_form_confirm .annotaiton,
.mw_wp_form_confirm .agreement {
  display: none !important;
}
.formArea .agreement {
  color: #171717;
  font-size: 1.5rem;
  text-align: center;
}
.formArea .entryBtn {
  margin-top: 30px;
}
.formArea .entryBtn>* {
  font-weight: normal !important;
}
.formComp {
  padding: 50px 20px;
  background-color: #f4f4f4;
  text-align: center;
}
.formComp .title {
  margin: 0 0 30px;
  line-height: 1.8;
  font-size: 2rem;
  letter-spacing: .1em;
}
.formComp p {
  line-height: 2;
  font-size: 1.5rem;
}

@media screen and (max-width: 767px) {
  .formArea {
  }
  .formArea p {
    padding: 0 calc(40/750*100vw);
    line-height: 1.67;
    font-size: 1.4rem;
  }
  .formArea dl {
    margin: 20px 0 0;
    border-top: none;
    display: block;
    width: 100%;
    font-size: 1.4rem;
  }
  .formArea dl dt {
    padding: 15px calc(40/750*100vw) 0;
    border-bottom: none;
    width: 100%;
    line-height: 1.5;
  }
  .formArea dl dt .require {
    top: 15px;
    right: calc(40/750*100vw);
    width: 40px;
    line-height: 20px;
    font-size: 1rem;
  }
  .formArea dl dd {
    padding: 5px calc(40/750*100vw) 15px;
    width: 100%;
    line-height: 1.5;
  }
  .formArea dl dd .entry {
    margin: 0;
    padding: 0 5px;
    line-height: 30px;
    font-size: 16px;
  }
  .formArea dl dd .entry01,
  .formArea dl dd .entry02 {
    width: 100%;
  }
  .formArea dl dd textarea {
    padding: 0 5px;
    width: 100%;
    height: 50px;
  }
  .formArea .annotaiton {
    margin: 30px 0 10px;
  }
  .formArea .agreement {
    font-size: 1.4rem;
  }
  .formArea .entryBtn {
    margin-top: 20px;
  }
  .formComp {
    padding: 30px calc(40/750*100vw);
  }
  .formComp .title {
    margin: 0 0 20px;
  }
  .formComp p {
  }
}





/* =============================================================================
 search Styles
============================================================================= */

.searchResult {
}
.searchResult .searchTitle {
  margin: 0 0 35px;
  padding: 0 40px;
  color: #171717;
  font-size: 2.8rem;
  font-weight: bold;
  letter-spacing: .1em;
}
.searchResult ul {
  border-top: 1px #d9d9d9 solid;
}
.searchResult ul li {
  padding: 20px 40px;
  border-bottom: 1px #d9d9d9 solid;
}
.searchResult ul li .title {
  line-height: 1.8;
  color: #171717;
  font-size: 2rem;
  font-weight: bold;
}
.searchResult ul li .title a {
  color: #171717;
}
.searchResult ul li p {
  line-height: 1.85;
  color: #595959;
  font-size: 1.3rem;
}

@media screen and (max-width: 767px) {
  .searchResult {
  }
  .searchResult .searchTitle {
    margin: 0 0 25px;
    padding: 0 calc(40/750*100vw);
    font-size: 2.2rem;
  }
  .searchResult ul {
  }
  .searchResult ul li {
    padding: 15px calc(40/750*100vw);
  }
  .searchResult ul li .title {
    font-size: 1.6rem;
  }
  .searchResult ul li p {
  }
}





/* =============================================================================
 anime Styles
============================================================================= */

.anime {
  visibility: hidden;
  animation-duration: 1s;
}
 .anime.animated {
  visibility: visible;
}
@-webkit-keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100px, 0, 0);
    transform: translate3d(-100px, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes slideInLeft {
  from {
    -webkit-transform: translate3d(-100px, 0, 0);
    transform: translate3d(-100px, 0, 0);
    visibility: visible;
  }

  to {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}


#topProject.anime .titleWrap,
#topProject.anime .slick-list,
#topProject.anime .viewMoreL,
#topProject.anime .slick-prev {
  visibility: hidden;
  opacity: 0;
  transform: translateX(-100px);
  transition: transform ease 1s,opacity ease 1s,visibility ease 1s;
}
#topProject.anime .slick-next {
  visibility: hidden;
  opacity: 0;
  transform: translateX(100px);
  transition: transform ease 1s,opacity ease 1s,visibility ease 1s;
  transition-delay: .3s;
}
#topProject.anime .slick-dots {
  visibility: hidden;
  opacity: 0;
  transform: translateX(100px);
  transition: transform ease 1s,opacity ease 1s,visibility ease 1s;
}
#topProject.animated .titleWrap,
#topProject.animated .slick-list,
#topProject.animated .viewMoreL,
#topProject.animated .slick-prev,
#topProject.animated .slick-next,
#topProject.animated .slick-dots {
  visibility: visible;
  opacity: 1;
  transform: translateX(0);
}



