@charset "UTF-8";
/*
Theme Name: Tadano-Manufacturing
Version: 1.0
*/
/* Common
---------------------------------------*/
@import url("https://fonts.googleapis.com/css?family=Montserrat:500,600");
* {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -o-text-size-adjust: 100%;
  text-size-adjust: 100%;
  box-sizing: border-box;
}

@font-face {
  font-family: "Noto Sans JP";
  font-style: normal;
  font-weight: 400;
  src: local("Noto Sans CJK JP"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff2) format("woff2"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff) format("woff"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.otf) format("opentype");
  font-display: swap;
}
html {
  font-size: 16px;
  overflow-y: scroll;
}

html.sp {
  font-size: 16px !important;
}

body,
th,
main .contents .format > table td,
td,
input,
select,
textarea {
  font-size: 16px;
  font-size: 1rem;
  line-height: 17.6px;
  line-height: 1.1rem;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Noto Sans JP", Verdana, Meiryo, sans-serif;
}

body {
  margin: 0px auto;
  color: #000000;
  background: #ffffff;
  overflow: hidden;
}

img {
  border: 0px;
  max-width: 100%;
  height: auto;
}

a {
  text-decoration: none;
}

dl,
ul,
ol {
  margin: 0px;
  padding: 0px;
  list-style: none;
}

p {
  margin: 0px;
}

.mw_wp_form_confirm .attention_txt {
  display: none !important;
}

.mw_wp_form .error {
    font-size : 93%;
    color : #B70000;
    display : block;
}

.clear {
  clear: both;
}

.sp .view_pc {
  display: none !important;
}

.tablet .view_pc_only {
  display: none !important;
}

.view_sp {
  display: none !important;
}

.sp .view_sp {
  display: block !important;
}

.view_tablet {
  display: none !important;
}

.tablet .view_tablet {
  display: block !important;
}

.blank:after {
  content: "";
  position: relative;
  display: inline-block;
  width: 1rem;
  height: 1rem;
  top: -3px;
  margin: 0px 8px;
  padding: 0px !important;
  background: url(assets/img/blank.png) no-repeat left top;
  background-size: 100%;
  vertical-align: middle;
}

.blank_sp:after {
  display: none;
}

.sp .blank_sp:after {
  content: "";
  position: relative;
  display: inline-block;
  width: 1rem;
  height: 1rem;
  top: -3px;
  margin: 0px 8px;
  padding: 0px !important;
  background: url(assets/img/blank.png) no-repeat left top;
  background-size: 100%;
  vertical-align: middle;
}

.blank_w:after {
  content: "";
  position: relative;
  display: inline-block;
  width: 1rem;
  height: 1rem;
  top: -3px;
  margin: 0px 8px;
  padding: 0px !important;
  background: url(assets/img/blankwhite.png) no-repeat left top;
  background-size: 100%;
  vertical-align: middle;
}

.loading * {
  -webkit-transition: 0ms !important;
  transition: 0ms !important;
}

.headlock body {
  /* margin-top: 5px !important; */
}

body {
  -webkit-transition: 400ms;
  transition: 400ms;
}

.container {
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 0 20px;
}

#headoption {
  position: fixed;
  width: 100%;
  min-height: 200px;
  background: #004295;
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
  z-index: 1000;
}

#headoption > div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 30px 20px;
}

.sp #headoption > div {
  padding: 15px 10px;
}

#headoption > div > div {
  display: table;
  width: 100%;
  margin: auto;
  max-width: 1180px;
}

#headoption > div > div.agree {
  max-width: 700px;
  transition: 600ms;
}

#headoption > div > div.agree #usecookie {
  width: 0%;
  padding-right: 0%;
  transition: 600ms;
}

#headoption > div > div.agree #usecookie p,
#headoption > div > div.agree #usecookie div,
#headoption > div > div.agree #usecookie:before {
  display: none;
}

#headoption #usecookie {
  display: table-cell;
  vertical-align: top;
  width: 40.67796610169492%;
  padding-right: 6.77966101694915%;
}

.sp #headoption #usecookie {
  width: 100%;
  padding-right: 0%;
}

#headoption #usecookie p {
  font-size: 16px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.5rem;
  color: #ffffff;
}

.sp #headoption #usecookie p {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 18px;
  line-height: 1.125rem;
}

#headoption #usecookie p a {
  color: #ffffff;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  text-decoration: underline;
}

#headoption #usecookie p a:hover {
  opacity: 0.7;
}

#headoption #usecookie .title {
  margin-bottom: 20px;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
  font-weight: bold;
}

.sp #headoption #usecookie .title {
  margin-bottom: 10px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

#headoption #usecookie .agree {
  margin-top: 40px;
}

.sp #headoption #usecookie .agree {
  margin-top: 20px;
}

#headoption #usecookie .agree a {
  display: inline-block;
  min-width: 200px;
  height: 44px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 44px;
  color: #000000;
  text-align: center;
  background: #ffffff;
  border: 1px solid #dbdbdb;
  border-radius: 5px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

#headoption #usecookie .agree a:hover {
  opacity: 0.7;
}

.sp #headoption #usecookie .agree a {
  height: 30px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 30px;
}

#headoption > .close {
  position: absolute;
  width: 40px;
  height: 40px;
  top: 15px;
  right: 15px;
  cursor: pointer;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

#headoption > .close:hover {
  opacity: 0.7;
}

#headoption > .close:before,
#headoption > .close:after {
  content: "";
  position: absolute;
  left: -21%;
  top: 50%;
  width: 100%;
  height: 3px;
  background-color: #fff;
}

#headoption > .close:before {
  -moz-transform: rotateZ(-45deg);
  -webkit-transform: rotateZ(-45deg);
  transform: rotateZ(-45deg);
}

#headoption > .close:after {
  -moz-transform: rotateZ(45deg);
  -webkit-transform: rotateZ(45deg);
  transform: rotateZ(45deg);
}

#headoption #chooseregion {
  display: table-cell;
  vertical-align: top;
  width: 100%;
}

.sp #headoption #chooseregion {
  display: none;
}

#headoption #chooseregion .title {
  margin-bottom: 12px;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
  font-weight: bold;
  color: #ffffff;
}

#headoption #chooseregion label {
  position: relative;
  display: inline-block;
  padding: 5px 0px 5px 20px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 12px;
  line-height: 0.75rem;
  color: #ffffff;
  cursor: pointer;
}

#headoption #chooseregion label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

#headoption #chooseregion label input[type="checkbox"]:focus + span:before {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}

#headoption #chooseregion label input[type="checkbox"] + span:before {
  content: "";
  display: block;
  position: absolute;
  width: 15px;
  height: 15px;
  top: 0.9rem;
  left: 0px;
  margin-top: -8.5px;
  background: #ffffff;
  border-radius: 5px;
  -webkit-transition: 200ms;
  transition: 200ms;
}

#headoption #chooseregion label input[type="checkbox"] + span:after {
  content: "";
  display: block;
  position: absolute;
  width: 15px;
  height: 15px;
  top: 0.9rem;
  left: 0px;
  margin-top: -7.5px;
  background: url(assets/img/check.png) no-repeat center center;
  -webkit-transform: scale(0);
  transform: scale(0);
  -webkit-transition: 200ms;
  transition: 200ms;
}

#headoption #chooseregion label input[type="checkbox"]:checked + span:after {
  -webkit-transform: scale(1);
  transform: scale(1);
}

#headoption #chooseregion .regionmap {
  position: relative;
  max-width: 551px;
  margin: 25px auto 0px;
}

#headoption #chooseregion ul {
  display: block;
  width: 100%;
  padding-top: 46.82395644283122%;
  background: url(assets/img/chooseregion.png) no-repeat center center;
  background-size: cover;
}

#headoption #chooseregion ul li {
  position: absolute;
  display: block;
  margin: 0px;
  padding: 0px;
  width: 21.05263157894737%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}

#headoption #chooseregion ul li a {
  display: block;
  padding: 4px 6px;
  font-size: 10px;
  font-size: 0.625rem;
  line-height: 15px;
  line-height: 0.9375rem;
  color: #000000;
  text-align: center;
  background: #ffffff;
  border: 1px solid #dbdbdb;
  border-radius: 5px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  white-space: nowrap;
}

#headoption #chooseregion ul li a:hover {
  opacity: 0.7;
}

#headoption #chooseregion ul li a.select {
  color: #ffffff;
  background: #004295;
  border: 1px solid #ffffff;
}

#headoption #chooseregion ul li.region1 {
  top: 25.58139534883721%;
  left: 47%;
}

#headoption #chooseregion ul li.region2 {
  top: 25.58139534883721%;
  left: 18.87477313974592%;
}

#headoption #chooseregion ul li.region3 {
  top: 62.7906976744186%;
  left: 18.87477313974592%;
}

#headoption #chooseregion ul li.region4 {
  top: 25.58139534883721%;
  left: 75.31760435571688%;
}

#headoption #chooseregion ul li.region5 {
  top: 43.41085271317829%;
  left: 60.43557168784029%;
}

#headoption #chooseregion ul li.region6 {
  top: 43.41085271317829%;
  left: 32.43557168784029%;
}

#headoption #chooseregion ul li.region7 {
  top: 62.7906976744186%;
  left: 45.73502722323049%;
}

#headoption #chooseregion ul li.region8 {
  top: 7.75193798449612%;
  left: 60.43557168784029%;
}

#headoption #chooseregion ul li.region9 {
  top: 62.7906976744186%;
  left: 75.31760435571688%;
}

header {
  display: block;
  position: fixed;
  width: 100%;
  height: 80px;
  background: #ffffff;
  z-index: 1010;
  top: 0;
  left: 0;
  right: 0;
  /*
  	#logo {
  		position: absolute;
  		top: -5px;
  		left: 20px;
  		width: 210px;
  		height: 130px;
  		background-color: rgba( 255, 255, 255, 1 );
  		box-shadow: 0px 0px 3px 3px rgba(0,0,0,0.2);
  		transition: 0s;
  		z-index: 10;
  		
  		.headermove &{
  			height: 100px;
  			box-shadow: 0px 0px 3px 3px rgba(0,0,0,0);
  			background-color: rgba( 255, 255, 255, 0 );
  		}
  */
}

.sp header {
  height: 60px;
}

header #logo {
  height: 80px;
  display: table;
  box-shadow: 0px 0px 3px 3px transparent;
  background-color: rgba(255, 255, 255, 0);
  /*
  		.pc & {
  			width: 230px;
  		}
  */
}

.sp header #logo {
  left: 10px;
  height: 60px;
  width: 100%;
}

header #logo a {
  display: table-cell;
  height: 80px;
  padding: 20px 10px 20px 20px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  vertical-align: middle;
  transition: 0s;
}

header #logo a:hover {
  opacity: 0.7;
}

.sp header #logo a {
  height: 60px;
  padding: 10px;
}

header #logo a span {
  margin-left: 11px;
  padding: 0 5px;
  border: 1px solid #000;
  color: #000;
  vertical-align: top;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

.sp header #logo a span {
  font-size: 10px;
}

header #logo a img {
  height: auto;
  vertical-align: middle;
}

header #logo a img.headerlogo {
  width: 42vw;
  max-width: 570px;
}

.sp header #logo a img.headerlogo {
  width: calc(100% - 68px);
}

header #logo a img.headerlogo-text {
  max-width: 100%;
}

header #logo a.fix {
  opacity: 1;
  padding: 38px 20px 36px 20px;
}

.headermove header #logo a.fix {
  opacity: 0;
  display: none;
}

header #logo a.move {
  opacity: 0;
  top: 10px;
}

.headermove header #logo a.move {
  opacity: 1;
}

header #logo #anniversary {
  display: table-cell;
  vertical-align: middle;
  padding: 0;
  height: 80px;
}

.sp header #logo #anniversary {
  height: 60px;
}

header #logo #anniversary img {
  width: 6vw;
  max-width: 64px;
}

.sp header #logo #anniversary img {
  width: 46px;
}

header #logo2 {
  position: absolute;
  top: 2px;
  left: 372px;
  max-width: calc(100% - 830px - 372px);
  display: table;
  height: 80px;
}

header #logo2 > div {
  display: table-cell;
  vertical-align: middle;
}

header #logo2 > div img {
  width: 100%;
}

.pc header #logo2 {
  display: none;
}

header #tools {
  position: absolute;
  right: 0px;
  top: 0px;
}

header #tools #globalnavi {
  position: relative;
  right: 240px;
  height: 80px;
  border-left: 1px solid #dbdbdb;
}

.spc header #tools #globalnavi {
  display: none;
}

.pc header #tools #globalnavi {
  right: 210px;
}

.sp header #tools #globalnavi {
  display: none;
}

@media screen and (min-width: 991px) and (max-width: 1500px) {
  header #tools #globalnavi {
    border-left-color: transparent;
  }
}

header #tools #globalnavi ul {
  padding-left: 15px;
  padding-right: 15px;
  overflow: hidden;
}

header #tools #globalnavi ul li {
  float: left;
  display: table;
  height: 80px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 19.8px;
  line-height: 1.2375rem;
}

header #tools #globalnavi ul li a {
  display: table-cell;
  padding: 10px 20px;
  vertical-align: middle;
  color: #000000;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

@media screen and (min-width: 1100px) and (max-width: 1350px) {
  header #tools #globalnavi ul li a {
    padding-left: 8px;
    padding-right: 8px;
  }
}

header #tools #globalnavi ul li a:hover {
  opacity: 0.7;
}

.pc header #tools #globalnavi ul li a {
  padding-left: 5px;
  padding-right: 5px;
  font-size: 16px;
}

header #tools #contact {
  position: absolute;
  width: 80px;
  height: 80px;
  right: 160px;
  top: 0px;
  border-left: 1px solid #dbdbdb;
}

.pc header #tools #contact {
  width: 70px;
  right: 140px;
}

.sp header #tools #contact {
  display: none;
}

header #tools #contact a {
  display: block;
  width: 80px;
  height: 80px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  overflow: hidden;
}

header #tools #contact a:hover {
  opacity: 0.7;
}

.pc header #tools #contact a {
  width: 70px;
}

header #tools #contact a:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: url(assets/img/contact.png) no-repeat center center;
}

header #tools #factory {
  position: absolute;
  width: 80px;
  height: 80px;
  right: 80px;
  top: 0px;
  border-left: 1px solid #dbdbdb;
}

.pc header #tools #factory {
  width: 70px;
  right: 70px;
}

.sp header #tools #factory {
  display: none;
}

header #tools #factory a {
  position: relative;
  display: block;
  width: 80px;
  height: 80px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  overflow: hidden;
}

header #tools #factory a:hover {
  opacity: 0.7;
}

.pc header #tools #factory a {
  width: 70px;
}

header #tools #factory a:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: url(assets/img/factory.png) no-repeat center center;
  -webkit-transition: 400ms;
  transition: 400ms;
  background-size: 19px 30px;
}

header #tools #factory a:after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 100%;
  left: 0px;
  background: url(assets/img/close.png) no-repeat center center #004295;
  -webkit-transition: 400ms;
  transition: 400ms;
}

header #tools #factory a.open:before {
  top: -100%;
}

header #tools #factory a.open:after {
  top: 0%;
}

header #tools #search {
  position: absolute;
  width: 80px;
  height: 80px;
  right: 80px;
  top: 0px;
  border-left: 1px solid #dbdbdb;
}

.pc header #tools #search {
  width: 70px;
  right: 70px;
}

.sp header #tools #search {
  display: none;
}

header #tools #search a {
  position: relative;
  display: block;
  width: 80px;
  height: 80px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  overflow: hidden;
}

header #tools #search a:hover {
  opacity: 0.7;
}

.pc header #tools #search a {
  width: 70px;
}

header #tools #search a:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: url(assets/img/search.png) no-repeat center center;
  -webkit-transition: 400ms;
  transition: 400ms;
}

header #tools #search a:after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: -100%;
  left: 0px;
  background: url(assets/img/close.png) no-repeat center center #004295;
  -webkit-transition: 400ms;
  transition: 400ms;
}

header #tools #search a.open:before {
  top: 100%;
}

header #tools #search a.open:after {
  top: 0%;
}

header #tools #menu {
  position: absolute;
  width: 80px;
  height: 80px;
  right: 0px;
  top: 0px;
  border-left: 1px solid #dbdbdb;
}

.pc header #tools #menu {
  width: 70px;
}

.sp header #tools #menu {
  width: 60px;
  height: 60px;
  border-left: 0;
}

header #tools #menu a {
  position: relative;
  display: block;
  width: 80px;
  height: 80px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  overflow: hidden;
}

header #tools #menu a:hover {
  opacity: 0.7;
}

.pc header #tools #menu a {
  width: 70px;
}

.sp header #tools #menu a {
  width: 60px;
  height: 60px;
}

header #tools #menu a:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: url(assets/img/menu.png) no-repeat center center;
  -webkit-transition: 400ms;
  transition: 400ms;
}

header #tools #menu a:after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: -100%;
  left: 0px;
  background: url(assets/img/close.png) no-repeat center center #004295;
  -webkit-transition: 400ms;
  transition: 400ms;
}

header #tools #menu a.open:before {
  top: 100%;
}

header #tools #menu a.open:after {
  top: 0%;
}

#searchpanel {
  position: fixed;
  top: 85px;
  left: 0px;
  width: 100%;
  height: 200px;
  background: #004295;
  z-index: 80;
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
  -webkit-transition: 600ms;
  transition: 600ms;
}

.sp #searchpanel {
  display: none;
}

.searchopen #searchpanel {
  -webkit-transform: translateY(0%);
  transform: translateY(0%);
}

#searchpanel > div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 0px 20px;
  height: 200px;
  -webkit-transition: 400ms;
  transition: 400ms;
}

.sp #searchpanel > div {
  padding: 0px 10px;
}

#searchpanel > div > div {
  position: absolute;
  display: table;
  width: calc(100% - 40px);
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

#searchpanel > div > div > * {
  display: table-cell;
  vertical-align: middle;
}

#searchpanel .title {
  width: calc(5rem + 30px);
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 26.4px;
  line-height: 1.65rem;
  color: #ffffff;
}

#searchpanel .input {
  background: #ffffff;
}

#searchpanel .input form.gsc-search-box {
  margin: 0;
}

#searchpanel .input .gsc-input-box {
  border: none !important;
}

#searchpanel .input .gsc-input-box .gsib_a {
  padding: 0;
}

#searchpanel .input .gsib_a {
  padding-left: 15px !important;
}

#searchpanel .input .gsib_b {
  display: none;
}

#searchpanel input {
  width: 100%;
  height: 60px;
  padding: 0px 60px 0px 15px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 60px;
  border: 0px;
}

#searchpanel input:focus {
  outline: 0;
}

#searchpanel input::placeholder {
  color: #dbdbdb;
}

#searchpanel input:-ms-input-placeholder {
  color: #dbdbdb;
}

#searchpanel input::-ms-input-placeholder {
  color: #dbdbdb;
}

#searchpanel button {
  position: absolute;
  width: 60px;
  height: 60px;
  right: 0px;
  top: 2px;
  text-indent: -10000px;
  background: url(assets/img/search.png) no-repeat center center;
  border: 0px;
  cursor: pointer;
}

#searchpanel button:focus {
  outline: 0;
}

#fullmenu {
  position: fixed;
  left: 0px;
  width: 100%;
  margin-top: 0px;
  top: 0px;
  height: calc(100vh - 85px);
  background: #004295;
  overflow: auto;
  z-index: 80;
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
  -webkit-transition: top 600ms, -webkit-transform 600ms;
  transition: top 600ms, transform 600ms;
}

.sp #fullmenu {
  display: none;
}

.menuopen #fullmenu {
  top: 80px;
  -webkit-transform: translateY(0%);
  transform: translateY(0%);
}

#fullmenu > div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 30px 20px 25px;
}

.sp #fullmenu > div {
  padding: 15px 10px 12.5px;
}

#fullmenu .menu {
  margin: -35px -5px 0px -15px;
  font-size: 0;
  font-size: 1.125rem;
  line-height: 1.1375rem;
  text-align: center;
}

/* #fullmenu .menu > div {
  display: inline-block;
  width: calc((100% - 80px) / 5);
  margin-left: 15px;
  margin-top: 35px;
  vertical-align: top;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
} */
#fullmenu .menu .title {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
}

#fullmenu .menu .title.small {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

#fullmenu .menu .title a {
  color: #ffffff;
  position: relative;
  display: inline-block;
}

#fullmenu .menu .title a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.1em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #ffffff;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

#fullmenu .menu .title a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

#fullmenu .menu .body {
  margin-top: 50px;
}

#fullmenu .menu li {
  position: relative;
  padding-left: 11px;
  color: #ffffff;
}

#fullmenu .menu li a {
  color: #ffffff;
  position: relative;
  display: inline-block;
}

#fullmenu .menu li a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.1em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #ffffff;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

#fullmenu .menu li a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

#fullmenu .menu li ul {
  margin-top: 10px;
}

#fullmenu .menu li li:before {
  display: none;
}

#fullmenu .menu li + li {
  margin-top: 25px;
}

#fullmenu .socialmedia {
  padding-top: 40px;
}

#fullmenu .socialmedia .title {
  margin-bottom: 20px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  color: #ffffff;
  font-weight: bold;
  opacity: 0.8;
}

#fullmenu .socialmedia ul {
  font-size: 0;
}

#fullmenu .socialmedia li {
  display: inline-block;
}

#fullmenu .socialmedia li + li {
  margin-left: 20px;
}

#fullmenu .socialmedia a {
  position: relative;
  display: block;
  width: 48px;
  height: 48px;
  background: #ffffff;
  border: 1px solid #707070;
  border-radius: 50%;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

#fullmenu .socialmedia a:hover {
  opacity: 0.7;
}

#fullmenu .socialmedia a img {
  position: absolute;
  display: block;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

#fullmenu .pdf:after {
  content: "";
  position: relative;
  display: inline-block;
  width: 1rem;
  height: 20px;
  top: 0px;
  margin: 0px 0 0 8px;
  padding: 0px !important;
  background: url(assets/img/ico_pdf.png) no-repeat left top;
  vertical-align: middle;
}

#spmenu {
  display: none;
  position: fixed;
  left: 0px;
  width: 100%;
  max-height: 100vh;
  z-index: 80;
  -webkit-transform: translateY(-100%);
  transform: translateY(-100%);
  -webkit-transition: opacity 600ms, -webkit-transform 600ms;
  transition: opacity 600ms, transform 600ms;
  opacity: 0;
  overflow: auto;
}

.sp #spmenu {
  display: block;
}

.menuopen #spmenu {
  -webkit-transform: translateY(0%);
  transform: translateY(0%);
  opacity: 1;
}

#spmenu .region {
  display: none;
  padding: 20px 10px;
  color: #ffffff;
  background: #535353;
}

#spmenu .region dt {
  margin: 0px 0px 15px;
  padding: 0px;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 22px;
  line-height: 1.375rem;
  text-align: center;
}

#spmenu .region dd {
  margin: 0px;
  padding: 0px;
  text-align: center;
}

#spmenu .region select {
  display: none;
  width: 100%;
  max-width: 295px;
  height: 40px;
  margin: auto;
  padding: 0px 40px 0px 10px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 38px;
  color: #000000;
  border: 1px solid #dbdbdb;
  border-radius: 5px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url(assets/img/select.png) no-repeat right center #ffffff;
  cursor: pointer;
}

.sp #spmenu .region select {
  display: block;
}

#spmenu .region select::-ms-expand {
  display: none;
}

#spmenu .region label {
  position: relative;
  display: inline-block;
  margin-top: 15px;
  padding: 5px 0px 5px 20px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 12px;
  line-height: 0.75rem;
  color: #ffffff;
  cursor: pointer;
}

#spmenu .region label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

#spmenu .region label input[type="checkbox"]:focus + span:before {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}

#spmenu .region label input[type="checkbox"] + span:before {
  content: "";
  display: block;
  position: absolute;
  width: 15px;
  height: 15px;
  top: 0.9rem;
  left: 0px;
  margin-top: -8.5px;
  background: #ffffff;
  border-radius: 5px;
  -webkit-transition: 200ms;
  transition: 200ms;
}

#spmenu .region label input[type="checkbox"] + span:after {
  content: "";
  display: block;
  position: absolute;
  width: 15px;
  height: 15px;
  top: 0.9rem;
  left: 0px;
  margin-top: -7.5px;
  background: url(assets/img/check.png) no-repeat center center;
  -webkit-transform: scale(0);
  transform: scale(0);
  -webkit-transition: 200ms;
  transition: 200ms;
}

#spmenu .region label input[type="checkbox"]:checked + span:after {
  -webkit-transform: scale(1);
  transform: scale(1);
}

#spmenu .pdf:after {
  content: "";
  position: relative;
  display: inline-block;
  width: 1rem;
  height: 1rem;
  top: -3px;
  margin: 0px 8px;
  padding: 0px !important;
  background: url(assets/img/pdficon.png) no-repeat left top;
  background-size: contain;
  vertical-align: middle;
}

#spmenu .utility {
  height: 60px;
  background: #535353;
  overflow: hidden;
}

#spmenu .utility .regionbutton {
  float: left;
  width: 60px;
  height: 60px;
  background: #ffffff;
}

#spmenu .utility .regionbutton a {
  position: relative;
  display: block;
  width: 60px;
  height: 60px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  overflow: hidden;
}

#spmenu .utility .regionbutton a:hover {
  opacity: 0.7;
}

#spmenu .utility .regionbutton a:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: url(assets/img/region.png) no-repeat center center;
  -webkit-transition: 400ms;
  transition: 400ms;
}

#spmenu .utility .regionbutton a:after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 100%;
  left: 0px;
  background: url(assets/img/close.png) no-repeat center center #004295;
  -webkit-transition: 400ms;
  transition: 400ms;
}

#spmenu .utility .regionbutton a.open:before {
  top: -100%;
}

#spmenu .utility .regionbutton a.open:after {
  top: 0%;
}

#spmenu .utility .factory {
  float: left;
  width: 60px;
  height: 60px;
  background: #ffffff;
}

#spmenu .utility .factory a {
  position: relative;
  display: block;
  width: 60px;
  height: 60px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  overflow: hidden;
}

#spmenu .utility .factory a:hover {
  opacity: 0.7;
}

#spmenu .utility .factory a:before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: url(assets/img/maker02.png) no-repeat center center;
  -webkit-transition: 400ms;
  transition: 400ms;
}

#spmenu .utility .search {
  position: relative;
  float: left;
  width: calc(100% - 80px);
  height: 40px;
  margin: 10px 0px 0px 10px;
  background: #ffffff;
  overflow: hidden;
}

#spmenu .utility .search form.gsc-search-box {
  margin: 0;
}

#spmenu .utility .search .gsc-input-box {
  border: none !important;
}

#spmenu .utility .search .gsc-input-box .gsib_a {
  padding: 0;
}

#spmenu .utility .search .gsib_a {
  padding-left: 15px !important;
}

#spmenu .utility .search .gsib_b {
  display: none;
}

#spmenu .utility .search input {
  width: 100%;
  height: 40px !important;
  padding: 0px 40px 0px 0px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 40px;
  border: 0px;
  -webkit-appearance: none;
  border-radius: 0;
}

#spmenu .utility .search input:focus {
  outline: none;
}

#spmenu .utility .search input::placeholder {
  color: #dbdbdb;
}

#spmenu .utility .search input:-ms-input-placeholder {
  color: #dbdbdb;
}

#spmenu .utility .search input::-ms-input-placeholder {
  color: #dbdbdb;
}

#spmenu .utility .search button {
  position: absolute;
  width: 40px;
  height: 40px;
  right: 0px;
  top: 0px;
  text-indent: -10000px;
  background: url(assets/img/search.png) no-repeat center center;
  border: 0px;
  cursor: pointer;
}

#spmenu .menu {
  background: #dbdbdb;
}

#spmenu .menu > ul > li {
  border-bottom: 1px solid #b5b5b5;
}

#spmenu .menu > ul > li > ul {
  display: none;
}

#spmenu .menu > ul > li > ul > li {
  border-top: 1px solid #b5b5b5;
  background: #fff;
}

#spmenu .menu > ul > li > ul > li > a {
  padding: 10px 10px 10px 40px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

#spmenu .menu a {
  display: block;
  padding: 15px 10px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
  color: #000000;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

#spmenu .menu a:hover {
  opacity: 0.7;
}

#spmenu .socialmedia {
  padding: 25px 10px 20px;
  background: #dbdbdb;
}

#spmenu .socialmedia .title {
  margin-bottom: 20px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  color: #000000;
  font-weight: bold;
  opacity: 0.5;
}

#spmenu .socialmedia ul {
  font-size: 0;
}

#spmenu .socialmedia li {
  display: inline-block;
}

#spmenu .socialmedia li + li {
  margin-left: 20px;
}

#spmenu .socialmedia a {
  position: relative;
  display: block;
  width: 48px;
  height: 48px;
  background: #ffffff;
  border: 1px solid #707070;
  border-radius: 50%;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

#spmenu .socialmedia a:hover {
  opacity: 0.7;
}

#spmenu .socialmedia a img {
  position: absolute;
  display: block;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

#spmenu .global {
  padding: 0 10px 40px 10px;
  background: #dbdbdb;
}

#spmenu .global a {
  display: inline-block;
  border: 1px solid #b5b5b5;
  padding: 10px 20px;
  color: #000;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

#spmenu .global a:hover {
  opacity: 0.7;
}

#spmenu .global a.blank:after {
  margin-right: 0;
}

#categorylabel {
  padding-top: 80px;
}

.sp #categorylabel {
  padding-top: 60px;
}

#categorylabel.company > div {
  background-image: url(../../company/images/bg_company.jpg);
}

#categorylabel.service > div {
  background-image: url(../../service/images/bg_service.jpg);
}

#categorylabel.products > div {
  background-image: url(../../products/images/bg_products.jpg);
}

#categorylabel.ir > div {
  background-image: url(../../ir/images/bg_investor.jpg);
}

#categorylabel.news > div {
  background-image: url(../../news/images/bg_news.jpg);
}

#categorylabel.contact > div {
  background-image: url(../../contact/images/bg_contact.jpg);
}

#categorylabel.recruit > div {
  background-image: url(../../recruit/images/bg_recruit.jpg);
}

#categorylabel > div {
  position: relative;
  height: 200px;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url(assets/img/bg_other.jpg);
}

.sp #categorylabel > div {
  height: auto;
  background-position: center top;
  background-size: auto 100px;
}

#categorylabel > div h1 {
  position: absolute;
  bottom: 0;
  left: 0;
  padding-left: calc((100vw - 1240px) / 2);
  padding-top: 15px;
  padding-right: 40px;
  display: inline-block;
  min-width: 40%;
  background: #fff;
  font-weight: normal;
  margin: 0;
  font-size: 60px;
  font-size: 3.75rem;
  line-height: 60px;
  line-height: 3.75rem;
}

#categorylabel > div h1 span {
  padding-left: 20px;
  display: inline-block;
}

.sp #categorylabel > div h1 span {
  padding-left: 0;
}

.sp #categorylabel > div h1 {
  position: static;
  padding: 120px 10px 0 10px;
  background: none;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 33.6px;
  line-height: 2.1rem;
}

#head_bg {
  height: 100px;
  background-size: cover;
  background-position: center center;
  background-image: url(assets/img/bg_page_title.jpg);
  background-repeat: no-repeat;
}

#visual {
  height: 720px;
  background: bottom center no-repeat;
}

.sp #visual {
  height: auto;
  background: none !important;
}

#visual > div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 40px 20px 0px;
}

.sp #visual > div {
  padding: 20px 10px 0px;
}

#visual > div > * {
  color: #fff;
}

.sp #visual > div > * {
  color: #000;
}

.sp #visual > div {
  text-shadow: none;
}

.sp #visual > div {
  padding: 0;
}

#visual > div h1 {
  font-weight: normal;
  margin: 20px 0 0 0;
  padding: 0;
  font-size: 60px;
  font-size: 3.75rem;
  line-height: 60px;
  line-height: 3.75rem;
}

.sp #visual > div h1 {
  margin: 20px 0;
  padding: 0 10px;
  font-size: 38px;
  font-size: 2.375rem;
  line-height: 45.6px;
  line-height: 2.85rem;
}

#visual > div h1 .small {
  font-size: 38px;
  font-size: 2.375rem;
  line-height: 38px;
  line-height: 2.375rem;
}

.sp #visual > div h1 .small {
  display: block;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 31.2px;
  line-height: 1.95rem;
}

#visual > div p.title {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 24px;
  line-height: 1.5rem;
}

.sp #visual > div p.title {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 18px;
  line-height: 1.125rem;
  padding: 20px 10px 0 10px;
}

#visual > div .image img {
  display: block;
  max-width: 100%;
}

#visual > div p.lead {
  font-size: 16px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.5rem;
  margin: 30px 0 0 0;
  max-width: 80%;
}

.sp #visual > div p.lead {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 21px;
  line-height: 1.3125rem;
  margin: 10px 0 0 0;
  max-width: none;
  padding: 0 10px;
}

#visual > div p.lead span {
  display: block;
  margin-bottom: 1rem;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 30px;
  line-height: 1.875rem;
  font-weight: bold;
}

#breadcrumbs {
  border-bottom: 1px solid #dbdbdb;
}

.sp #breadcrumbs {
  display: none;
}

#breadcrumbs > ul {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 20px 20px;
  /*
  	font-size: 0px;
  	line-height: 0px;
  */
}

.sp #breadcrumbs > ul {
  padding: 10px 10px;
}

#breadcrumbs > ul:after {
  content: "";
  display: block;
  clear: both;
}

#breadcrumbs > ul > li {
  display: inline-block;
  font-size: 16px;
  font-size: 1rem;
  line-height: 17.6px;
  line-height: 1.1rem;
  color: #b5b5b5;
}

.sp #breadcrumbs > ul > li {
  font-size: 10px;
  font-size: 0.625rem;
  line-height: 11px;
  line-height: 0.6875rem;
}

#breadcrumbs > ul > li + li:before {
  content: "";
  position: relative;
  display: inline-block;
  width: 1px;
  height: 0.75em;
  top: 0;
  margin: 0px 8px;
  background: #000000;
  -webkit-transform: skewX(-30deg);
  transform: skewX(-30deg);
}

#breadcrumbs > ul > li a {
  color: #000000;
  position: relative;
  display: inline-block;
}

#breadcrumbs > ul > li a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.05em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #000000;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

#breadcrumbs > ul > li a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

.footer_wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

footer {
 display: block;
 margin-top: 60px;
 background: #2a3a40;
 color: #fff;
}

.sp footer {
  margin-top: 40px;
}

footer > div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 20px 20px;
  overflow: hidden;
}

.sp footer > div {
  padding: 10px 10px;
}

footer > div.middle {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 40px 20px 10px;
  overflow: visible;
}

.sp footer > div.middle {
  padding: 20px 10px 10px;
}

.sp footer > div.middle {
  padding-bottom: 20px;
}

/*
footer > div.middle:after {
  content: "";
  display: block;
  position: absolute;
  width: 100vw;
  height: 1px;
  bottom: 0px;
  left: 50%;
  background: rgba(51, 51, 51, 0.3);
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}

.sp footer > div.middle:after {
  display: none;
}
*/
.sp footer .logo {
  display: none;
}

footer .logo a {
  display: inline-block;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

footer .logo a:hover {
  opacity: 0.7;
}

footer .logo img {
  display: block;
}

footer .socialmedia .title {
  margin-bottom: 20px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  color: #fff;
  font-weight: bold;
}

footer .socialmedia ul {
  font-size: 0;
}

footer .socialmedia li {
  display: inline-block;
}

footer .socialmedia li + li {
  margin-left: 20px;
}

footer .socialmedia a {
  position: relative;
  display: block;
  width: 48px;
  height: 48px;
  background: #ffffff;
  border: 1px solid #707070;
  border-radius: 50%;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

footer .socialmedia a:hover {
  opacity: 0.7;
}

footer .socialmedia a img {
  position: absolute;
  display: block;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

footer .search {
  position: absolute;
  right: 20px;
  top: 40px;
  width: 26.72131147540984%;
  max-width: 326px;
  margin: 10px 0px 0px 10px;
  /*background: #ffffff;*/
  border: 1px solid #dbdbdb;
}

.sp footer .search {
  display: none;
}

footer .search input {
  width: 100%;
  height: 40px;
  padding: 0px 40px 0px 15px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 40px;
  border: 0px;
}

footer .search input::placeholder {
  color: #fff;
}

footer .search input:-ms-input-placeholder {
  color: #fff;
}

footer .search input::-ms-input-placeholder {
  color: #fff;
}

footer .search button {
  position: absolute;
  width: 40px;
  height: 40px;
  right: 0px;
  top: 0px;
  text-indent: -10000px;
  background: url(assets/img/search.png) no-repeat center center;
  border: 0px;
  cursor: pointer;
}

footer .search form.gsc-search-box {
  margin: 0;
}

footer .search .gsc-input-box {
  border: none !important;
}

footer .search .gsc-input-box .gsib_a {
  padding: 0;
}

footer .search .gsib_a {
  padding-left: 15px !important;
}

footer .search .gsib_b {
  display: none;
}

footer .search .gsc-search-button-v2:hover {
  background: url(assets/img/search.png) no-repeat center center;
}

footer .totop a {
  position: relative;
  margin-right: 30px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  color: #fff;
  position: relative;
  display: inline-block;
}

footer .totop a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.15em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #000000;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

footer .totop a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

footer .totop a:after {
  content: "";
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  right: -30px;
  top: 50%;
  margin-top: -10px;
  background: url(assets/img/totop.png) no-repeat center center;
}

footer .utility {
 display: flex;
 justify-content: space-between;
}

footer .utility .footer_left {
 width: 36%
}

footer .utility .footer_center {
 width: 30%
}

footer .utility .footer_right {
 width: 34%
}

.sp footer .utility ul {
  float: none;
}

footer .utility .footer_left .address{
  margin-top:2rem
}

footer .utility .footer_left .address p {
  margin-top: 5px
}

footer .footer_right .utility ul li {
    display: block !important;
    flex-direction: column !important;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 18.2px;
    line-height: 1.1375rem;
}

.sp footer .footer_right .utility ul li {
    display: block !important;
    flex-direction: column !important;
    margin-bottom: 20px;
}

footer .utility ul li a {
  color: #fff;
  position: relative;
  display: inline-block;
}

footer .utility ul li a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.15em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #fff;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

footer .utility ul li a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

footer .utility ul li + li {
  /*margin-left: 2rem;*/
  margin-top: 1rem;
}

.sp footer .utility ul li + li {
  margin-left: 0;
}

footer .cp p {
  float: right;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

.sp footer .cp p {
  position: relative;
  float: none;
  margin-top: 30px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

.sp footer .cp p:before {
  content: "";
  display: block;
  position: absolute;
  width: 100vw;
  height: 1px;
  top: -10px;
  left: -10px;
  background: rgba(51, 51, 51, 0.3);
}

main .contents * + .lead,
main .contents * + .lead_s,
main .contents * + .text,
main .contents * + .imagebox,
main .contents * + .column,
main .contents * + .table,
main .contents * + .format,
main .contents .form * + table,
main .contents .form * + textarea,
main .contents .form * + .formbutton,
main .contents * + .box,
main .contents * + .googlemap,
main .contents * + .youtube,
* + .button,
* + .design,
main .contents .form * + .button {
  margin-top: 40px;
}

.sp main .contents * + .lead,
main .contents .sp * + .lead,
.sp main .contents * + .lead_s,
main .contents .sp * + .lead_s,
.sp main .contents * + .text,
main .contents .sp * + .text,
.sp main .contents * + .image,
main .contents .sp * + .image,
.sp main .contents * + .imagebox,
main .contents .sp * + .imagebox,
.sp main .contents * + .column,
main .contents .sp * + .column,
.sp main .contents * + .table,
main .contents .sp * + .table,
.sp main .contents * + .format,
main .contents .sp * + .format,
.sp main .contents .form * + table,
main .contents .form .sp * + table,
.sp main .contents .form * + textarea,
main .contents .form .sp * + textarea,
.sp main .contents .form * + .formbutton,
main .contents .form .sp * + .formbutton,
.sp main .contents * + .box,
main .contents .sp * + .box,
.sp main .contents * + .googlemap,
main .contents .sp * + .googlemap,
.sp main .contents * + .youtube,
main .contents .sp * + .youtube,
.sp * + .button,
.sp * + .design,
.sp main .contents .form * + .button,
main .contents .form .sp * + .button {
  margin-top: 30px;
}

main .contents * + .layout,
main .contents * + .form {
  margin-top: 80px;
}

.sp main .contents * + .layout,
main .contents .sp * + .layout,
.sp main .contents * + .form,
main .contents .sp * + .form {
  margin-top: 60px;
}

main .contents .lead * + p,
main .contents .lead_s * + p,
main .contents .text * + p:not(.image),
main .contents .text * + hr,
main .contents .text * + ul,
main .contents .text * + ol,
main .contents .text * + dl,
main .contents .text dl * + dt,
main .contents .form * + p {
  margin-top: 20px;
}

main .contents {
  position: relative;
  padding: 0px;
}

main .contents:after {
  content: "";
  display: block;
  clear: both;
}

main .contents > div:not(.background) {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 40px 20px 80px;
}

.sp main .contents > div:not(.background) {
  padding: 20px 10px 40px;
}

.sp main .contents > div:not(.background) {
  width: auto;
}

main .contents > div.stack_block {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 0px 20px 80px;
}

.sp main .contents > div.stack_block {
  padding: 0px 10px 40px;
}

main .contents h1 + *,
main .contents h2 + *,
main .contents h3 + *,
main .contents h4 + *,
main .contents h5 + *,
main .contents h6 + * {
  margin-top: 0px !important;
}

main .contents h1 {
  clear: both;
  display: block;
  margin: 0px 0px 40px;
  padding: 0px;
  font-size: 60px;
  font-size: 3.75rem;
  line-height: 78px;
  line-height: 4.875rem;
  font-weight: normal;
}

.sp main .contents h1 {
  font-size: 38px;
  font-size: 2.375rem;
  line-height: 49.4px;
  line-height: 3.0875rem;
}

main .contents * + h1 {
  margin-top: 160px;
}

main .contents h2 {
  position: relative;
  clear: both;
  display: block;
  margin: 0px 0px 40px;
  font-size: 38px;
  font-size: 2.375rem;
  line-height: 57px;
  line-height: 3.5625rem;
  font-weight: normal;
  text-align: center;
}

.sp main .contents h2 {
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 36.4px;
  line-height: 2.275rem;
}

main .contents h2.left {
  text-align: left;
}

main .contents * + h2 {
  margin-top: 80px;
}

.sp main .contents * + h2 {
  margin-top: 40px;
}

main .contents h3 {
  clear: both;
  position: relative;
  margin: 0px 0px 40px;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 33.8px;
  line-height: 2.1125rem;
  font-weight: normal;
}

main .contents h3.border {
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px dotted #707070;
}

.sp main .contents h3.border {
  padding-bottom: 10px;
  margin-bottom: 10px;
}

.sp main .contents h3 {
  margin: 0px 0px 20px;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
}

main .contents h3.center {
  text-align: center;
}

main .contents h3 a {
  color: #004295;
  position: relative;
  display: inline-block;
}

main .contents h3 a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.15em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #004295;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

main .contents h3 a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

main .contents * + h3 {
  margin-top: 40px;
}

.sp main .contents * + h3 {
  margin-top: 20px;
}

main .contents h4 {
  clear: both;
  display: block;
  margin: 0px 0px 20px;
  padding: 0px;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 30px;
  line-height: 1.875rem;
}

.sp main .contents h4 {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 21px;
  line-height: 1.3125rem;
}

main .contents * + h4 {
  margin-top: 40px;
}

main .contents h5 {
  clear: both;
  display: block;
  margin: 0px 0px 20px;
  padding: 0px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
}

.sp main .contents h5 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

main .contents * + h5 {
  margin-top: 20px;
}

main .contents h6 {
  clear: both;
  display: block;
  margin: 0px 0px 20px;
  padding: 0px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

.sp main .contents h6 {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

main .contents * + h6 {
  margin-top: 20px;
}

main .contents .lead.center {
  text-align: center;
}

.sp main .contents .lead.center {
  text-align: left;
}

main .contents .lead p {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 34px;
  line-height: 2.125rem;
}

.sp main .contents .lead p {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 30.6px;
  line-height: 1.9125rem;
}

main .contents .lead p span {
  display: inline-block;
}

.sp main .contents .lead p span {
  display: inline;
}

main .contents .lead_s {
  padding-right: 20px;
}

.sp main .contents .lead_s {
  padding-right: 0;
}

main .contents .lead_s.center {
  text-align: center;
}

.sp main .contents .lead_s.center {
  text-align: left;
}

main .contents .lead_s p {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 30.6px;
  line-height: 1.9125rem;
}

.sp main .contents .lead_s p {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
  text-align: center;
}

main .contents .lead_s p span {
  display: inline-block;
}

.sp main .contents .lead_s p span {
  display: inline;
}

main .contents a {
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

main .contents a:hover {
  opacity: 0.7;
}

main .contents p.caption {
  margin-top: 10px;
}

main .contents .stack {
  margin-top: 0px !important;
}

main .contents .n_stack {
  margin-top: -30px !important;
}

.sp main .contents .n_stack {
  margin-top: -10px !important;
}

main .contents .block {
  margin-top: 40px !important;
}

.sp main .contents .block {
  margin-top: 30px !important;
}

main .contents .section {
  margin-top: 80px !important;
}

.sp main .contents .section {
  margin-top: 60px !important;
}

main .contents .paragraph {
  margin-top: 20px !important;
}

main .contents .halfparagraph {
  margin-top: 7px !important;
}

main .contents .text a[target="_blank"] {
  padding-right: 5px;
}

main .contents .text a[target="_blank"]:after {
  content: "";
  display: inline-block;
  background: url(assets/img/blank.png) center center no-repeat;
  background-size: contain;
  width: 10px;
  height: 10px;
}

main .contents .text:after {
  content: "";
  display: block;
  clear: both;
}

main .contents .text .clearfix:after {
  content: "";
  display: block;
  clear: both;
}

main .contents .text img {
  max-width: 100%;
  height: auto;
}

main .contents .text table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  margin: 20px 0 30px;
}

main .contents .text table th,
main .contents .text table td {
  border: 1px solid #707070;
  padding: 1rem;
}

main .contents .text table th {
  background-color: #dbdbdb;
  text-align: left;
  vertical-align: top;
}

main .contents .text .form table th,
main .contents .text .form table td {
  border: none;
}

main .contents .text .form table th {
  background: none;
}

main .contents .text .col {
  margin: 30px 0 40px;
}

html:not(.sp) main .contents .text .col {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}

main .contents .text .col .col-item {
  margin-bottom: 20px;
}

html:not(.sp) main .contents .text .col-2 .col-item {
  width: calc(100% / 2 - 20px * 1 / 2);
}

html:not(.sp) main .contents .text .col-3 .col-item {
  width: calc(100% / 3 - 20px * 2 / 3);
}

html:not(.sp) main .contents .text .col-4 .col-item {
  width: calc(100% / 4 - 20px * 3 / 4);
}

main .contents .text .col .col-item .col-title {
  margin-top: 10px;
  text-align: center;
}

.sp main .contents .text .col .col-item img {
  width: 100%;
}

main .contents .text p:not(.image) {
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

.sp main .contents .text p:not(.image) {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

main .contents .text p:not(.image) .required {
  color: #ef3340;
  margin-left: 4px;
  margin-right: 4px;
}

main .contents .text p:not(.image) .bold {
  font-weight: bold;
}

main .contents .text p:not(.image) .alert {
  color: #ef3340;
}

main .contents .text p:not(.image).error_mes {
  color: #ef3340;
}

main .contents .text p:not(.image) em.s {
  font-style: normal;
  color: #004295;
  font-size: 120%;
}

main .contents .text p:not(.image) a {
  color: #004295;
  position: relative;
  display: inline-block;
}

main .contents .text p:not(.image) a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.35em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #004295;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

main .contents .text p:not(.image) a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

main .contents .text p:not(.image).center {
  text-align: center;
}

main .contents .text p:not(.image).right {
  text-align: right;
}

.sp main .contents .text p:not(.image).spleft {
  text-align: left;
}

main .contents .text p:not(.image).note {
  text-indent: -0.5em;
  margin-left: 0.5em;
}

main .contents .text p:not(.image).kome {
  text-indent: -1.2em;
  margin-left: 1.2em;
}

main .contents .text p:not(.image).small {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
  margin-top: 10px;
}

.sp main .contents .text p:not(.image).small {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 20.4px;
  line-height: 1.275rem;
}

main .contents .text p:not(.image).catch_contact {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 47.6px;
  line-height: 2.975rem;
}

.sp main .contents .text p:not(.image).catch_contact {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 37.4px;
  line-height: 2.3375rem;
}

main .contents .text hr {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0px;
  width: 90%;
  height: 1px;
  border: 0px;
  background: #b5b5b5;
}

main .contents .text ul {
  clear: both;
  margin-left: 20px;
  margin-right: 20px;
}

main .contents .text ul > li {
  margin-left: 14px;
  text-indent: -14px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

.sp main .contents .text ul > li {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

main .contents .text ul > li:not(.no-circle):before {
  position: relative;
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  vertical-align: middle;
  top: -2px;
  margin-right: 4px;
  background: #00b0d2;
  border-radius: 50%;
}

main .contents .text ul > li + li {
  margin-top: 4px;
}

main .contents .text ul > li *:not(li) {
  text-indent: 0px;
}

main .contents .text ul > li.no-circle span {
  display: inline-block;
}

.sp main .contents .text ul > li.no-circle {
  margin-left: 0;
  letter-spacing: -1px;
}

main .contents .text ul > li a {
  vertical-align: top;
  color: #004295;
  position: relative;
  display: inline-block;
}

main .contents .text ul > li a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.35em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #004295;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

main .contents .text ul > li a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

.sp main .contents .text ul > li a {
  display: inline;
}

main .contents .text ul > li > * + ul,
main .contents .text ul > li > * + ol {
  margin-top: 4px;
}

main .contents .text ul.full {
  margin: 0;
}

main .contents .text ul.float {
  margin-right: -40px;
}

main .contents .text ul.float li {
  display: inline-block;
  margin-left: calc(14px - 0.3em);
  margin-right: 40px;
}

main .contents .text ul.ib {
  margin-left: -36px;
  text-indent: 36px;
}

.sp main .contents .text ul.ib {
  margin-left: 0px;
  text-indent: 0px;
}

main .contents .text ul.ib li {
  display: inline-block;
}

.sp main .contents .text ul.ib li {
  display: block;
}

main .contents .text ul.ib li + li {
  margin-left: 50px;
}

.sp main .contents .text ul.ib li + li {
  margin-left: 14px;
}

main .contents .text ul.ib.w240 li {
  min-width: 240px;
}

.sp main .contents .text ul.ib.w240 li {
  min-width: 0;
}

main .contents .text ol {
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
  counter-reset: number;
}

.sp main .contents .text ol {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

main .contents .text ol > li {
  margin-left: 1.2em;
  text-indent: -0.63em;
}

main .contents .text ol > li:before {
  counter-increment: number;
  content: " " counter(number) ".";
  display: inline-block;
  margin-right: 0.3em;
  color: #00b0d2;
  font-weight: bold;
}

main .contents .text ol > li + li {
  margin-top: 4px;
}

main .contents .text ol > li *:not(li) {
  text-indent: 0px;
}

main .contents .text ol > li a {
  vertical-align: top;
  color: #004295;
  position: relative;
  display: inline-block;
}

main .contents .text ol > li a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.35em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #004295;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

main .contents .text ol > li a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

main .contents .text ol > li > * + ul,
main .contents .text ol > li > * + ol {
  margin-top: 4px;
}

main .contents .text ol.digit2 > li {
  margin-left: 1.5em;
  text-indent: -0.93em;
}

main .contents .text ol.digit2 > li:before {
  counter-increment: number;
  content: " " counter(number) ".";
  display: inline-block;
  margin-right: 0.3em;
  padding-left: 0.5em;
}

main .contents .text ol.digit2 > li:nth-of-type(n + 10) {
  margin-left: 1.5em;
  text-indent: -0.93em;
}

main .contents .text ol.digit2 > li:nth-of-type(n + 10):before {
  margin-right: 0.4em;
  padding-left: 0;
}

main .contents .text dl dt {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
  font-weight: bold;
}

.sp main .contents .text dl dt {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
}

main .contents .text dl dd {
  margin: 10px 0px 0px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

.sp main .contents .text dl dd {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

main .contents .text .floatright {
  float: right;
  margin-left: 20px;
  margin-bottom: 20px;
  max-width: calc(50% - 10px);
}

.sp main .contents .text .floatright {
  margin-left: 10px;
  margin-bottom: 10px;
  max-width: 100%;
}

main .contents .text .floatleft {
  float: left;
  margin-right: 20px;
  margin-bottom: 20px;
  max-width: calc(50% - 10px);
}

.sp main .contents .text .floatleft {
  margin-right: 10px;
  margin-bottom: 10px;
  max-width: 100%;
}

.sp main .contents .text .image.spclear {
  float: none;
  width: auto !important;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0px;
}

main .contents .text main .contents .image {
  text-align: center;
}

main .contents .text .alignright {
  text-align: right;
}

main .contents .text .aligncenter {
  text-align: center;
  display: block;
  margin: 20px auto;
}

main .contents .text .map {
  margin: 30px 0 40px;
}

main .contents .text .map iframe {
  width: 100%;
}

main .contents .image img {
  display: block;
  margin: auto;
  max-width: 100%;
  height: auto;
}

main .contents .image p {
  margin: auto;
  text-align: left;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

.sp main .contents .image p {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 15.6px;
  line-height: 0.975rem;
}

* + main .contents .image p {
  margin-top: 8px;
}

main .contents .image p a {
  color: #004295;
  position: relative;
  display: inline-block;
}

main .contents .image p a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.15em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #004295;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

main .contents .image p a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

main .contents .image p.center {
  text-align: center;
}

main .contents .image p.right {
  text-align: right;
}

main .contents .image.left {
  text-align: left;
}

main .contents .image.left img {
  margin-left: 0px;
}

main .contents .image.left p {
  margin-left: 0px;
}

main .contents .image.right {
  text-align: right;
}

main .contents .image.right img {
  margin-right: 0px;
}

main .contents .image.right p {
  margin-right: 0px;
}

.sp main .contents .image.sp_center {
  text-align: center;
}

main .contents .image > a {
  display: inline-block;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  max-width: 100%;
}

main .contents .image > a:hover {
  opacity: 0.7;
}

main .contents .image > a p {
  color: #004295;
}

main .contents .imagebox {
  display: table;
  width: 100%;
  table-layout: fixed;
}

main .contents .imagebox > * {
  display: table-cell;
  height: 100%;
  text-align: left;
  vertical-align: top;
}

.sp main .contents .imagebox.spcol1 {
  display: block;
}

.sp main .contents .imagebox.spcol1 > * {
  display: block;
  width: auto !important;
}

.sp main .contents .imagebox.spcol1 > * + * {
  padding-top: 10px;
  padding-left: 0px !important;
  padding-right: 0px !important;
}

main .contents .imagebox > * {
  margin-top: 0px !important;
}

main .contents .imagebox > *.middle {
  vertical-align: middle;
}

main .contents .imagebox > * + * {
  padding-left: 20px;
}

main .contents .imagebox.reverse {
  direction: rtl;
}

main .contents .imagebox.reverse > * {
  direction: ltr;
}

main .contents .imagebox.reverse > * + * {
  padding-left: 0px;
  padding-right: 20px;
}

main .contents .imagebox.middle > * {
  vertical-align: middle;
}

main .contents .imagebox > .image.type01 {
  width: 25%;
}

main .contents .imagebox > .image.type02 {
  width: 30%;
}

main .contents .imagebox > .image.type03 {
  width: 40%;
}

main .contents .imagebox > .image.type04 {
  width: 15%;
}

main .contents .imagebox > .image.type05 {
  width: 20%;
}

main .contents .imagebox > .image.type_factory {
  width: 42px;
}

main .contents .imagebox > .image img,
main .contents .imagebox > .image > a {
  display: block;
  max-width: 100%;
}

main .contents .imagebox > .image p {
  width: auto !important;
}

main .contents .imagebox img {
  max-width: 100%;
}

main .contents .imagebox .text {
  max-width: 50%;
}

.sp main .contents .imagebox .text {
  max-width: none;
}

main .contents .column {
  margin-left: -20px;
  margin-right: -4px;
}

.sp main .contents .column {
  margin-left: -10px;
  margin-bottom: -20px;
}

main .contents .column:after {
  content: "";
  display: block;
  clear: both;
}

main .contents .column > * {
  position: relative;
  float: left;
  margin-bottom: 20px;
  margin-left: 20px;
}

.sp main .contents .column > * {
  margin-left: 10px;
  margin-bottom: 20px;
}

main .contents .column > a {
  display: block;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  color: #000000;
}

main .contents .column > a:hover {
  opacity: 0.7;
}

main .contents .column > a .image img {
  width: 100%;
  max-width: none;
}

main .contents .column.col1 > * {
  width: calc((100% - 20px * 1 - 4px) / 1);
}

main .contents .column.col1 > *.size2 {
  width: calc(((100% - 20px * 1 - 4px) / 1) * 2 + 20px * 1);
}

main .contents .column.col1 > *.size1 {
  width: calc(((100% - 20px * 1 - 4px) / 1) * 1 + 20px * 0);
}

.sp main .contents .column.col1 > * {
  width: calc((100% - 10px * 1 - 4px) / 1);
}

.sp main .contents .column.spcol1 > * {
  width: calc((100% - 10px * 1 - 4px) / 1) !important;
}

main .contents .column.col2 > * {
  width: calc((100% - 20px * 2 - 4px) / 2);
}

main .contents .column.col2 > *.size2 {
  width: calc(((100% - 20px * 2 - 4px) / 2) * 2 + 20px * 1);
}

.sp main .contents .column.col2 > * {
  width: calc((100% - 10px * 2 - 4px) / 2);
}

.sp main .contents .column.spcol2 > * {
  width: calc((100% - 10px * 2 - 4px) / 2) !important;
}

main .contents .column.col3 > * {
  width: calc((100% - 20px * 3 - 4px) / 3);
}

main .contents .column.col3 > *.size2 {
  width: calc(((100% - 20px * 3 - 4px) / 3) * 2 + 20px * 1);
}

main .contents .column.col3 > *.size3 {
  width: calc(((100% - 20px * 3 - 4px) / 3) * 3 + 20px * 2);
}

.sp main .contents .column.col3 > * {
  width: calc((100% - 10px * 3 - 4px) / 3);
}

.sp main .contents .column.spcol3 > * {
  width: calc((100% - 10px * 3 - 4px) / 3) !important;
}

main .contents .column.col4 > * {
  width: calc((100% - 20px * 4 - 4px) / 4);
}

main .contents .column.col4 > *.size2 {
  width: calc(((100% - 20px * 4 - 4px) / 4) * 2 + 20px * 1);
}

main .contents .column.col4 > *.size3 {
  width: calc(((100% - 20px * 4 - 4px) / 4) * 3 + 20px * 2);
}

main .contents .column.col4 > *.size4 {
  width: calc(((100% - 20px * 4 - 4px) / 4) * 4 + 20px * 3);
}

.sp main .contents .column.col4 > * {
  width: calc((100% - 10px * 4 - 4px) / 4);
}

.sp main .contents .column.spcol4 > * {
  width: calc((100% - 10px * 4 - 4px) / 4) !important;
}

main .contents .column.col5 > * {
  width: calc((100% - 20px * 5 - 4px) / 5);
}

main .contents .column.col5 > *.size2 {
  width: calc(((100% - 20px * 5 - 4px) / 5) * 2 + 20px * 1);
}

main .contents .column.col5 > *.size3 {
  width: calc(((100% - 20px * 5 - 4px) / 5) * 3 + 20px * 2);
}

main .contents .column.col5 > *.size4 {
  width: calc(((100% - 20px * 5 - 4px) / 5) * 4 + 20px * 3);
}

main .contents .column.col5 > *.size5 {
  width: calc(((100% - 20px * 5 - 4px) / 5) * 5 + 20px * 4);
}

.sp main .contents .column.col5 > * {
  width: calc((100% - 10px * 5 - 4px) / 5);
}

.sp main .contents .column.spcol5 > * {
  width: calc((100% - 10px * 5 - 4px) / 5) !important;
}

main .contents .column.col6 > * {
  width: calc((100% - 20px * 6 - 4px) / 6);
}

main .contents .column.col6 > *.size2 {
  width: calc(((100% - 20px * 6 - 4px) / 6) * 2 + 20px * 1);
}

main .contents .column.col6 > *.size3 {
  width: calc(((100% - 20px * 6 - 4px) / 6) * 3 + 20px * 2);
}

main .contents .column.col6 > *.size4 {
  width: calc(((100% - 20px * 6 - 4px) / 6) * 4 + 20px * 3);
}

main .contents .column.col6 > *.size5 {
  width: calc(((100% - 20px * 6 - 4px) / 6) * 5 + 20px * 4);
}

main .contents .column.col6 > *.size6 {
  width: calc(((100% - 20px * 6 - 4px) / 6) * 6 + 20px * 5);
}

.sp main .contents .column.col6 > * {
  width: calc((100% - 10px * 6 - 4px) / 6);
}

.sp main .contents .column.spcol6 > * {
  width: calc((100% - 10px * 6 - 4px) / 6) !important;
}

main .contents .layout {
  display: table;
  width: calc(100% + 40px);
  margin-left: -20px;
  margin-right: -20px;
}

main .contents .layout > * {
  display: table-cell;
  height: 100%;
  text-align: center;
  vertical-align: middle;
}

main .contents .layout:after {
  content: "";
  display: block;
  clear: both;
}

.sp main .contents .layout {
  width: calc(100% + 20px);
  margin-left: -10px;
  margin-right: -10px;
}

main .contents .layout > * {
  padding: 0px 20px;
}

.sp main .contents .layout > * {
  padding: 0px 10px;
}

main .contents .layout > *.left {
  text-align: left;
}

main .contents .layout > *.right {
  text-align: right;
}

main .contents .layout > *.top {
  vertical-align: top;
}

main .contents .layout > *.bottom {
  vertical-align: bottom;
}

.sp main .contents .layout.spcol1 {
  display: block;
  width: auto;
  margin-left: 0px;
  margin-bottom: -40px;
  margin-right: 0px;
}

.sp main .contents .layout.spcol1 > * {
  display: block;
  margin-bottom: 40px;
  padding: 0px;
  width: auto !important;
}

main .contents .table {
  overflow-x: auto;
  overflow-y: hidden;
}

main .contents .table > table {
  width: 100%;
  border-spacing: 0;
  empty-cells: show;
}

main .contents .table > table.th_middle tbody > tr > th,
main .contents .table > table.th_middle .format > table tbody > tr > td,
main .contents .format > table .table > table.th_middle tbody > tr > td {
  vertical-align: middle;
}

main .contents .table > table > thead > tr > th,
main .contents .format.table > table > thead > tr > td,
main .contents .table > table > thead > tr > td,
main .contents .table > table > tbody > tr > th,
main .contents .format.table > table > tbody > tr > td,
main .contents .table > table > tr > th,
main .contents .format.table > table > tr > td {
  position: relative;
  padding: 20px 16px;
  vertical-align: middle;
  text-align: left;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  font-weight: bold;
  color: #ffffff;
  background: #004295;
  overflow: hidden;
}

.sp main .contents .table > table > thead > tr > th,
.sp main .contents .format.table > table > thead > tr > td,
.sp main .contents .table > table > thead > tr > td,
.sp main .contents .table > table > tbody > tr > th,
.sp main .contents .format.table > table > tbody > tr > td,
.sp main .contents .table > table > tr > th,
.sp main .contents .format.table > table > tr > td {
  padding: 12px 8px;
  white-space: nowrap;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

.sp main .contents .table > table > thead > tr > th span,
.sp main .contents .format.table > table > thead > tr > td span,
.sp main .contents .table > table > thead > tr > td span,
.sp main .contents .table > table > tbody > tr > th span,
.sp main .contents .format.table > table > tbody > tr > td span,
.sp main .contents .table > table > tr > th span,
.sp main .contents .format.table > table > tr > td span {
  display: block;
}

.sp main .contents .table > table > thead > tr > th * + span,
.sp main .contents .format.table > table > thead > tr > td * + span,
.sp main .contents .table > table > thead > tr > td * + span,
.sp main .contents .table > table > tbody > tr > th * + span,
.sp main .contents .format.table > table > tbody > tr > td * + span,
.sp main .contents .table > table > tr > th * + span,
.sp main .contents .format.table > table > tr > td * + span {
  margin-top: 4px;
}

main .contents .table > table > thead > tr > th.bg_white,
main .contents .format.table > table > thead > tr > td.bg_white,
main .contents .table > table > thead > tr > td.bg_white,
main .contents .table > table > tbody > tr > th.bg_white,
main .contents .format.table > table > tbody > tr > td.bg_white,
main .contents .table > table > tr > th.bg_white,
main .contents .format.table > table > tr > td.bg_white {
  padding-left: 0;
  background: none;
  color: #000;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
}

main .contents .table > table.spec {
  border-top: 1px solid #707070;
}

main .contents .table > table.spec thead th,
main .contents .table > table.spec thead .format > table td,
main .contents .format > table .table > table.spec thead td {
  border: none;
}

main .contents .table > table.spec thead th:before,
main .contents .table > table.spec thead .format > table td:before,
main .contents .format > table .table > table.spec thead td:before {
  display: none;
}

main .contents .table > table.spec thead th + th:before,
main .contents .table > table.spec thead .format > table td + th:before,
main .contents .format > table .table > table.spec thead td + th:before,
main .contents .table > table.spec thead .format > table th + td:before,
main .contents .format > table .table > table.spec thead th + td:before,
main .contents .table > table.spec thead .format > table td + td:before,
main .contents .format > table .table > table.spec thead td + td:before {
  display: block;
  left: 0;
}

main .contents .table > table.spec thead th a,
main .contents .table > table.spec thead .format > table td a,
main .contents .format > table .table > table.spec thead td a {
  color: #fff;
  text-decoration: underline;
}

main .contents .table > table.spec thead tr + tr th,
main .contents .table > table.spec thead tr + tr .format > table td,
main .contents .format > table .table > table.spec thead tr + tr td {
  border-top: 1px solid #fff;
}

main .contents .table > table.spec th,
main .contents .table > table.spec .format > table td,
main .contents .format > table .table > table.spec td {
  position: relative;
  border-right: 1px solid #707070;
  border-bottom: 1px solid #707070;
}

main .contents .table > table.spec th:before,
main .contents .table > table.spec .format > table td:before,
main .contents .format > table .table > table.spec td:before {
  position: absolute;
  display: block;
  content: "";
  width: 1px;
  height: calc(100% - 20px);
  background: #dbdbdb;
  bottom: 10px;
  right: 0;
}

main .contents .table > table.spec th.b_right,
main .contents .table > table.spec .format > table td.b_right,
main .contents .format > table .table > table.spec td.b_right {
  border-right: 1px solid #707070 !important;
}

main .contents .table > table.spec.kankyo a {
  text-decoration: underline;
}

main .contents .table > table.small > thead > tr > th,
main .contents .format.table > table.small > thead > tr > td,
main .contents .table > table.small > thead > tr > td,
main .contents .table > table.small > tbody > tr > th,
main .contents .format.table > table.small > tbody > tr > td,
main .contents .table > table.small > tr > th,
main .contents .format.table > table.small > tr > td {
  padding: 8px;
  font-size: 12.8px;
  font-size: 0.8rem;
  line-height: 16.64px;
  line-height: 1.04rem;
}

.sp main .contents .table > table.small > thead > tr > th,
.sp main .contents .format.table > table.small > thead > tr > td,
.sp main .contents .table > table.small > thead > tr > td,
.sp main .contents .table > table.small > tbody > tr > th,
.sp main .contents .format.table > table.small > tbody > tr > td,
.sp main .contents .table > table.small > tr > th,
.sp main .contents .format.table > table.small > tr > td {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

main .contents .table > table > tbody > tr > th,
main .contents .format.table > table > tbody > tr > td {
  color: #000000;
  background: #dbdbdb;
  border-left: 1px solid #ffffff;
}

main .contents .table > table > tbody > tr > th:first-child,
main .contents .format.table > table > tbody > tr > td:first-child {
  border-left: none;
}

main .contents .table > table > tr > td,
main .contents .table > table > * > tr > td {
  position: relative;
  padding: 16px;
  vertical-align: middle;
  text-align: left;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
  font-weight: normal;
  color: #000000;
  border-bottom: 1px solid #707070;
}

main .contents .table > table > tr > td:first-child:before,
main .contents .table > table > * > tr > td:first-child:before {
  position: absolute;
  display: block;
  content: "";
  width: 1px;
  height: calc(100% - 20px);
  border-right: 1px dotted #dbdbdb;
  background: none;
  bottom: 10px;
}

main .contents .table > table > tr > td:before,
main .contents .table > table > * > tr > td:before {
  position: absolute;
  display: block;
  content: "";
  width: 1px;
  height: calc(100% - 20px);
  background: #dbdbdb;
  bottom: 10px;
  right: 0;
}

main .contents .table > table > tr > td:last-child:before,
main .contents .table > table > * > tr > td:last-child:before {
  display: none;
}

.sp main .contents .table > table > tr > td,
.sp main .contents .table > table > * > tr > td {
  padding: 8px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

main .contents .table > table > tr > td.select,
main .contents .table > table > * > tr > td.select {
  text-align: center;
  min-width: 90px;
}

main .contents .table > table > tr > td.td_pdf,
main .contents .table > table > * > tr > td.td_pdf {
  text-align: center;
  min-width: 90px;
}

main .contents .table > table .col2 {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

main .contents .table > table .col2 > div + div {
  margin-top: 0 !important;
}

main .contents .table > table.small > tr > td,
main .contents .table > table.small > * > tr > td {
  padding: 8px;
  font-size: 12.8px;
  font-size: 0.8rem;
  line-height: 21.76px;
  line-height: 1.36rem;
}

.sp main .contents .table > table.small > tr > td,
.sp main .contents .table > table.small > * > tr > td {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

main .contents .table > table .left {
  text-align: left;
}

main .contents .table > table .right {
  text-align: right;
}

main .contents .table > table .center {
  text-align: center;
}

main .contents .table > table .top {
  vertical-align: top;
}

main .contents .table > table .bottom {
  vertical-align: bottom;
}

main .contents .table > table .middle {
  vertical-align: middle;
}

main .contents .table > table .space {
  background: transparent !important;
}

main .contents .table > table .nowrap {
  white-space: nowrap;
}

main .contents .table > table div + div {
  margin-top: 0.5rem !important;
}

main .contents .table .inputed {
  border: 1px solid #004295;
  background: #d7e7ff;
}

main .contents .table > p {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

.sp main .contents .table > p {
  font-size: 11.9px;
  font-size: 0.74375rem;
  line-height: 20.23px;
  line-height: 1.26438rem;
}

main .contents .table > p.right {
  text-align: right;
}

main .contents .table > * + p {
  margin-top: 8px;
}

main .contents .table > p + table {
  margin-top: 8px;
}

main .contents .format > table {
  width: 100%;
  border-collapse: collapse;
  empty-cells: show;
}

main .contents .format > table th,
main .contents .format > table td {
  padding: 0px 0px 10px 0px;
  vertical-align: top;
  text-align: left;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
  font-weight: bold;
  color: #000000;
}

.sp main .contents .format > table th,
.sp main .contents .format > table td {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

main .contents .format > table td {
  padding: 0px 0px 10px 20px;
  font-weight: normal;
}

main .contents .format > table tr:last-child th,
main .contents .format > table tr:last-child td,
main .contents .format > table tr:last-child td {
  padding-bottom: 0px;
}

.sp main .contents .format > table {
  display: block;
}

.sp main .contents .format > table tbody {
  display: block;
}

.sp main .contents .format > table tr {
  display: block;
}

.sp main .contents .format > table th,
.sp main .contents .format > table td {
  display: block;
  padding-bottom: 0px;
}

.sp main .contents .format > table td {
  display: block;
  padding-bottom: 5px;
}

main .contents .form form {
  margin: 0px;
  padding: 0px;
}

main .contents .form p {
  margin-bottom: 4px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

main .contents .form p.required:after {
  content: "（必須）";
  color: #ef3340;
  margin-left: 8px;
}

main .contents .form table {
  border-collapse: collapse;
  width: 100%;
}

main .contents .form table.confirm th,
main .contents .form table.confirm .format > table td,
main .contents .format > table .form table.confirm td {
  padding-top: 0px;
}

.sp main .contents .form table.confirm th,
.sp main .contents .form table.confirm .format > table td,
.sp main .contents .format > table .form table.confirm td {
  padding-top: 10px;
}

main .contents .form table.confirm td {
  padding-top: 0px;
}

.sp main .contents .form table.confirm td.required {
  display: none;
}

.sp main .contents .form table {
  display: block;
}

.sp main .contents .form table tbody,
.sp main .contents .form table tr {
  position: relative;
  display: block;
}

main .contents .form table th,
main .contents .form .format > table td {
  width: 16rem;
  padding: 24px 20px 25px 0px;
  font-weight: bold;
  vertical-align: top;
  text-align: left;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

main .contents .form table th span,
main .contents .form .format > table td span {
  margin-left: 3px;
  color: #ff0000;
}

.sp main .contents .form table th,
.sp main .contents .form .format > table td {
  display: block;
  width: auto;
  float: left;
  padding-top: 10px;
  padding-right: 10px;
  padding-bottom: 0px;
}

main .contents .form table td {
  padding-top: 16px;
  padding-bottom: 25px;
  vertical-align: top;
  text-align: left;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  word-break: break-all;
}

.sp main .contents .form table td {
  clear: both;
  display: block;
  padding-top: 10px;
  padding-bottom: 15px;
}

main .contents .form table td.required {
  width: 5rem;
  padding-top: 18px;
  padding-right: 20px;
  color: #ffffff;
}

main .contents .form table td.required span {
  display: block;
  margin-left: 0px;
  padding: 6px 8px;
  text-align: center;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 15.6px;
  line-height: 0.975rem;
  color: #ef3340;
  border: 1px solid #ef3340;
}

.sp main .contents .form table td.required {
  clear: none;
  float: right;
  padding: 0px;
  margin-top: 10px;
}

.sp main .contents .form table td.required span {
  margin-top: 0px;
}

main .contents .form table td span {
  display: inline-block;
}

main .contents .form table td span.label {
  position: absolute;
  width: 4em;
  margin-left: 10px;
  padding-top: 10px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 15.6px;
  line-height: 0.975rem;
  color: #646464;
  pointer-events: none;
}

main .contents .form table tr:last-child > * {
  padding-bottom: 0px;
}

.sp main .contents .form table tr:last-child > th,
.sp main .contents .form .format > table tr:last-child > td {
  padding-bottom: 10px;
}

main .contents .form .inputbox {
  margin-top: 5px;
  padding-left: 20px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.5rem;
}

main .contents .form textarea {
  width: 100%;
  height: 160px;
  padding: 8px 16px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  border: 1px solid #707070;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

main .contents .form textarea::placeholder {
  color: #aaa;
}

main .contents .form input[type="text"],
main .contents .form input[type="email"],
main .contents .form input[type="tel"],
main .contents .form input[type="url"] {
  width: 100%;
  height: 34px;
  padding: 0px 16px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 32px;
  border: 1px solid #707070;
  outline: none;
}

main .contents .form input[type="text"].withlabel,
main .contents .form input[type="email"].withlabel,
main .contents .form input[type="tel"].withlabel,
main .contents .form input[type="url"].withlabel {
  padding-left: 2rem;
}

main .contents .form input[type="text"]::placeholder,
main .contents .form input[type="email"]::placeholder,
main .contents .form input[type="tel"]::placeholder,
main .contents .form input[type="url"]::placeholder {
  color: #aaa;
}

main .contents .form input[type="text"].mini,
main .contents .form input[type="email"].mini,
main .contents .form input[type="tel"].mini,
main .contents .form input[type="url"].mini {
  width: 100px;
}

main .contents .form select {
  width: 100%;
  height: 40px;
  padding: 0px 30px 0px 10px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 38px;
  border-left: none;
  border-top: none;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: url(assets/img/select.png) no-repeat right center;
  max-width: 350px;
  cursor: pointer;
  outline: none;
}

main .contents .form select option {
  display: block;
  background: #fff;
  color: #004295;
  border: 1px solid #00b0d2;
  margin-top: 5px;
  padding: 20px;
}

main .contents .form .side {
  margin: 15px -5px -10px -25px;
}

main .contents .form .side.center {
  text-align: center;
}

main .contents .form .side li {
  display: inline-block;
  margin-left: 25px;
  margin-bottom: 10px;
}

main .contents .form .side + p {
  margin-top: 20px;
}

main .contents .form select::-ms-expand {
  display: none;
}

main .contents .form label {
  position: relative;
  display: inline-block;
  padding: 4px 0px 4px 25px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  cursor: pointer;
  word-break: normal;
}

.sp main .contents .form label {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

main .contents .form label input[type="radio"],
main .contents .form label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

main .contents .form label input[type="radio"]:focus + span:before,
main .contents .form label input[type="checkbox"]:focus + span:before {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}

main .contents .form label input[type="radio"] + span:before {
  content: "";
  display: block;
  position: absolute;
  width: 16px;
  height: 16px;
  top: 0.9rem;
  left: 0px;
  margin-top: -8px;
  background: #ffffff;
  border: 1px solid #535353;
  border-radius: 50%;
  -webkit-transition: 200ms;
  transition: 200ms;
}

main .contents .form label input[type="radio"]:checked + span:after {
  content: "";
  display: block;
  position: absolute;
  width: 10px;
  height: 10px;
  top: 0.9rem;
  left: 4px;
  margin-top: -4px;
  background: #004295;
  border-radius: 50%;
}

main .contents .form label input[type="checkbox"] + span:before {
  content: "";
  display: block;
  position: absolute;
  width: 16px;
  height: 16px;
  top: 0.9rem;
  left: 0px;
  margin-top: -8px;
  background: #ffffff;
  border: 1px solid #535353;
  border-radius: 5px;
  -webkit-transition: 200ms;
  transition: 200ms;
}

main .contents .form label input[type="checkbox"]:checked + span:before {
  border-color: #004295;
}

main .contents .form label input[type="checkbox"] + span:after {
  content: "";
  display: block;
  position: absolute;
  width: 16px;
  height: 16px;
  top: 0.9rem;
  left: 0px;
  margin-top: -7px;
  background: url(assets/img/check.png) no-repeat center center;
  -webkit-transform: scale(0);
  transform: scale(0);
  -webkit-transition: 200ms;
  transition: 200ms;
}

main .contents .form label input[type="checkbox"]:checked + span:after {
  -webkit-transform: scale(1);
  transform: scale(1);
}

main .contents .form .column span {
  width: 10%;
}

main .contents .form .column span.error {
  width: auto;
  display: block;
}

.sp main .contents .form .column span {
  width: auto;
  display: block;
  margin-bottom: 5px;
}

main .contents .form .column input {
  width: 85% !important;
}

.sp main .contents .form .column input {
  width: 100% !important;
}

main .contents .form ul.checkbox:after {
  content: "";
  display: block;
  clear: both;
}

main .contents .form ul.checkbox li {
  float: left;
  width: 32%;
}

.sp main .contents .form ul.checkbox li {
  float: none;
  width: 100%;
}

main .contents .form ul.checkbox li.other {
  clear: both;
}

main .contents .form ul.fl:after {
  content: "";
  display: block;
  clear: both;
}

main .contents .form ul.fl label {
  float: left;
  clear: both;
}

main
.contents
.form
.required_checkbox
label
input[type="checkbox"]
+ span:before,
main
.contents
.form
.required_checkbox
label
input[type="radio"]
+ span:before {
  border: 1px solid #ef3340;
}

main
.contents
.form
.required_checkbox.inputed
label
input[type="checkbox"]
+ span:before,
main
.contents
.form
.required_checkbox.inputed
label
input[type="radio"]
+ span:before {
  border: 1px solid #535353;
}

main .contents .form p.otherarea {
  padding-left: 24px;
  margin-top: 5px;
}

main .contents .form .formbutton {
  text-align: center;
}

main .contents .form .formbutton button {
  position: relative;
  display: inline-block;
  width: 80%;
  max-width: 240px;
  height: 48px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 48px;
  color: #ffffff;
  background: #004295;
  border: 0px;
  border-radius: 5px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

main .contents .form .formbutton button:hover {
  opacity: 0.7;
}

.sp main .contents .form .formbutton button {
  display: block;
  margin: auto;
}

main .contents .form .formbutton button + button {
  margin-left: 20px;
}

.sp main .contents .form .formbutton button + button {
  margin-left: auto;
  margin-top: 20px;
}

main .contents .action_area {
  margin-top: 20px;
  padding: 30px 20px;
  background: #dbdbdb;
  text-align: center;
}

.sp main .contents .action_area {
  padding: 20px 10px;
}

main .contents .action_area > div {
  margin: -20px auto 0;
  max-width: 1000px;
}

.tablet main .contents .action_area > div {
  padding: 0;
}

.sp main .contents .action_area > div {
  margin: -20px 0 0 -10px;
}

main .contents .action_area > div:after {
  content: "";
  display: block;
  clear: both;
}

main .contents .action_area > div > a {
  display: block;
  float: left;
  padding: 10px;
  width: calc((100% - 100px) / 4);
  margin: 20px 0 0 20px;
  background: #004295;
  border-radius: 5px;
}

.sp main .contents .action_area > div > a {
  width: calc((100% - 50px) / 2);
}

.sp main .contents .action_area > div > a:nth-of-type(2n + 1) {
  clear: both;
}

main .contents .action_area > div > a > img {
  width: 24px;
  height: 24px;
}

main .contents .action_area > div > a > span {
  display: block;
  margin-top: 5px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
  color: #fff;
}

.sp main .contents .action_area > div > a > span {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 15.6px;
  line-height: 0.975rem;
}

.sp main .contents .action_area > div > a > span.tue {
  font-size: 10px;
  font-size: 0.625rem;
  line-height: 11px;
  line-height: 0.6875rem;
  line-height: 0.975rem;
}

main .contents .box {
  padding: 14px;
  border: 1px solid #707070;
}

.sp main .contents .box {
  padding: 7px;
}

main .contents .box.y_scroll {
  height: 200px;
  overflow-y: scroll;
}

main .contents.products_lv3 h1 {
  margin: 0;
}

main .contents.products_lv3 .h1_category {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 22px;
  line-height: 1.375rem;
}

main .contents.products_lv3 .area_info > p {
  display: none;
  margin-bottom: 15px;
}

.region2 main .contents.products_lv3 .area_info > p.NorthAmerica {
  display: block;
}

.region3 main .contents.products_lv3 .area_info > p.CentralSouthAmerica {
  display: block;
}

.region7 main .contents.products_lv3 .area_info > p.SouthAfrica {
  display: block;
}

.region8 main .contents.products_lv3 .area_info > p.CIS {
  display: block;
}

main .contents.products_lv3 .promotion {
  position: relative;
  display: inline-block;
  line-height: 20px;
  padding-right: 25px;
}

main .contents.products_lv3 .promotion:after {
  content: "";
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  right: 0;
  top: 0;
  background: url(assets/img/arrow.png) no-repeat top right;
}

main .contents.products_lv3 > div.background {
  background: url(assets/img/bg_product.png);
  border-bottom: 1px solid #004295;
}

main .contents.products_lv3 > div.background div.inner {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 40px 20px 80px;
}

.sp main .contents.products_lv3 > div.background div.inner {
  padding: 20px 10px 40px;
}

main .contents.products_lv3 > div.background div.inner:after {
  content: "";
  display: block;
  clear: both;
}

main .contents.products_lv3 > div.background div.inner > div {
  float: right;
  width: 50%;
  padding: 20px;
  background: #fff;
}

.sp main .contents.products_lv3 > div.background div.inner > div {
  float: none;
  width: 100%;
}

main .contents.products_lv3 > div.background div.inner > div + div {
  float: left;
  padding: 0 8% 0 0;
  background: none;
}

.sp main .contents.products_lv3 > div.background div.inner > div + div {
  padding: 20px 0 0 0;
}

main .contents.products_lv3 > div.background div.inner > div h2 {
  margin: 20px 0 0 0;
  padding: 10px 0;
  border-top: 1px dotted #707070;
  font-size: 16px;
  font-size: 1rem;
  line-height: 17.6px;
  line-height: 1.1rem;
  text-align: center;
}

main .contents.products_lv3 > div.background div.inner > div .spaclist:after {
  content: "";
  display: block;
  clear: both;
}

main .contents.products_lv3 > div.background div.inner > div .spaclist li {
  float: left;
  width: calc((100% - 14px) / 2);
}

main .contents.products_lv3 > div.background div.inner > div .spaclist li a {
  display: block;
  width: 100%;
  padding: 15px 30px 15px 10px;
  color: #fff;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 13.2px;
  line-height: 0.825rem;
  border-radius: 5px;
  background: url(assets/img/ico_pdf.png) no-repeat right 10px center #004295;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.spaclist
li:nth-of-type(2n) {
  margin-left: 14px;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.spaclist
li:nth-of-type(n + 3) {
  margin-top: 12px;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.spaclist
li:nth-of-type(2n + 1) {
  clear: both;
}

main .contents.products_lv3 > div.background div.inner > div .product_action {
  margin: 10px 0 0 0;
  padding: 20px 0;
  border-top: 1px dotted #707070;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.product_action:after {
  content: "";
  display: block;
  clear: both;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.product_action
> a {
  display: block;
  float: left;
  padding: 15px 10px;
  width: calc((100% - 14px) / 2);
  background: #004295;
  border-radius: 5px;
  text-align: center;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.product_action
> a:nth-of-type(2n) {
  margin-left: 14px;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.product_action
> a:nth-of-type(n + 3) {
  margin-top: 12px;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.product_action
> a:nth-of-type(2n + 1) {
  clear: both;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.product_action
> a
> img {
  width: 24px;
  height: 24px;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.product_action
> a
> span {
  display: block;
  margin-top: 5px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
  color: #fff;
}

.sp
main
.contents.products_lv3
> div.background
div.inner
> div
.product_action
> a
> span {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 15.6px;
  line-height: 0.975rem;
}

main .contents.products_lv3 > div.background div.inner > div .slide_img > div {
  position: relative;
  width: 100%;
  height: 100%;
  padding: 100% 0 0;
}

.sp
main
.contents.products_lv3
> div.background
div.inner
> div
.slide_img
> div
a {
  pointer-events: none;
}

main .contents.products_lv3 > div.background div.inner > div .slide_img img {
  width: 100%;
  height: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}

main
.contents.products_lv3
> div.background
div.inner
> div
.slide_img
.youtube {
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  padding-bottom: 56.25%;
  width: 100%;
  height: auto;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.slide_img
.youtube
iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.slide_img.tatenaga
img {
  width: auto;
  height: 100%;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.slide_img
+ .slider
.slick-slide {
  cursor: pointer;
}

main
.contents.products_lv3
> div.background
div.inner
> div
.slide_img
+ .slider
.slick-slide.ac {
  border: 2px solid #004295;
}

main .contents.products_lv3 h2:first-child {
  margin-top: 0;
}

main .contents #area_alert {
  text-align: center;
  padding-top: 30px;
}

main .contents #area_alert > * {
  display: inline-block;
  vertical-align: middle;
}

.sp main .contents #area_alert > * {
  display: block;
}

main .contents #area_alert > p {
  color: #f00;
}

main .contents #area_alert > .button {
  margin: 0 0 0 10px;
}

.sp main .contents #area_alert > .button {
  margin: 10px 0 0 0;
}

main .contents #area_alert > .button a {
  width: auto;
}

main .contents #area_alert > .button a span {
  padding-right: 40px;
}

main .contents #area_alert + #area_alert {
  display: none;
}

main .contents .background > .tab {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 40px 20px 80px;
  padding: 0 20px;
}

.sp main .contents .background > .tab {
  padding: 20px 10px 40px;
}

.sp main .contents .background > .tab {
  padding: 0;
}

main .contents .tab ul {
  font-size: 0;
  line-height: 0;
}

main .contents .tab ul li {
  display: inline-block;
  width: 25%;
}

.sp main .contents .tab ul li {
  width: 50%;
}

main .contents .tab ul li > a {
  display: table;
  width: 100%;
  padding: 0 10px;
  background: #dbdbdb;
  color: #000000;
  font-size: 16px;
  font-size: 1rem;
  line-height: 17.6px;
  line-height: 1.1rem;
}

main .contents .tab ul li > a.current {
  color: #fff;
  background: #004295;
}

main .contents .tab ul li > a span {
  display: table-cell;
  vertical-align: middle;
  height: 4em;
  overflow: hidden;
}

main .contents .tab ul li > span {
  display: block;
  width: 100%;
  height: 4em;
  padding: 0 10px;
  background: #004295;
  color: #fff;
  font-size: 16px;
  font-size: 1rem;
  line-height: 17.6px;
  line-height: 1.1rem;
  line-height: 4em;
}

main .contents .tab_area > div:not(:first-child) {
  display: none;
}

.sp main .contents .content_menu .text {
  display: table;
}

.sp main .contents .content_menu .text > * {
  display: table-cell;
  vertical-align: top;
  padding-right: 5px;
}

.sp main .contents .content_menu .text > * + * {
  padding-left: 5px;
  padding-right: 0;
}

.sp main .contents .content_menu .text .image img {
  height: 70px;
  max-width: none;
  width: auto;
}

.sp main .contents .content_menu .text .small {
  display: none;
}

main .contents .news:after {
  content: "";
  display: block;
  clear: both;
}

.sp main .contents .news {
  padding-bottom: 0px;
}

main .contents .news > ul.tab {
  width: calc(100% + 1.2rem);
  margin-top: -1rem;
  margin-left: -1.2rem;
  text-align: center;
  font-size: 0;
}

.sp main .contents .news > ul.tab {
  width: calc(100% + 5px);
  margin-left: -5px;
  text-align: left;
}

main .contents .news > ul.tab li {
  display: inline-block;
  font-size: 0;
  margin-top: 1rem;
  margin-left: 1.2rem;
  text-align: center;
}

.sp main .contents .news > ul.tab li {
  margin-left: 5px;
  width: calc(33% - 5px);
}

main .contents .news > ul.tab li a {
  display: block;
  padding: 10px;
  min-width: 8rem;
  background: #b5b5b5;
  border-radius: 20px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  color: #fff;
}

.sp main .contents .news > ul.tab li a {
  min-width: 0;
}

main .contents .news > ul.tab li a.current {
  background: #004295;
}

main .contents .news .newslist li {
  display: block;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px dotted #535353;
}

main .contents .news .newslist li div {
  position: relative;
  display: table;
  width: 100%;
}

.sp main .contents .news .newslist li div {
  display: block;
}

main .contents .news .newslist li div .date {
  display: table-cell;
  width: 8.75rem;
  padding-top: 0.85rem;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 19.8px;
  line-height: 1.2375rem;
  font-weight: bold;
  vertical-align: top;
  -webkit-transform: translateY(-0.5em);
  transform: translateY(-0.5em);
  text-align: left;
}

.sp main .contents .news .newslist li div .date {
  display: block;
  margin-bottom: 10px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 17.6px;
  line-height: 1.1rem;
}

main .contents .news .newslist li div .category {
  position: relative;
  display: table-cell;
  width: 10rem;
  top: 0.85rem;
  vertical-align: top;
  -webkit-transform: translateY(-10px);
  transform: translateY(-10px);
}

.sp main .contents .news .newslist li div .category {
  padding-bottom: 5px;
  width: calc(100% - 8.75rem - 10px);
  font-size: 10px;
  font-size: 0.625rem;
  line-height: 20px;
  text-align: right;
}

main .contents .news .newslist li div .category span {
  display: inline-block;
  width: 7.5rem;
  height: 20px;
  margin-bottom: 5px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 20px;
  color: #ffffff;
  text-align: center;
  background: #535353;
}

.sp main .contents .news .newslist li div .category span {
  margin-right: 5px;
}

main .contents .news .newslist li div .link {
  display: table-cell;
  vertical-align: top;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

.sp main .contents .news .newslist li div .link {
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

main .contents .news .newslist li div .link a {
  position: relative;
  display: table;
  width: 100%;
  color: #000000;
}

main .contents .news .newslist li div .link a > div {
  width: auto;
}

main .contents .news .newslist li div .link a * {
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
}

main .contents .news .newslist li div .link a:hover * {
  opacity: 0.7;
}

main .contents .news .newslist li div .link a > * {
  display: table-cell;
}

main .contents .news .newslist li div .link a > *.image {
  width: 20%;
  padding-right: 20px;
}

.sp main .contents .news .newslist li div .link a > *.image {
  width: auto;
  padding-right: 0;
}

main .contents .news .newslist li div .link a .icon {
  position: relative;
  width: 120px;
  height: 20px;
  background: none no-repeat center center;
}

.sp main .contents .news .newslist li div .link a .icon {
  width: 60px;
}

main .contents .news .newslist li div .link a .icon:before {
  content: "";
  display: block;
  position: absolute;
  width: 1px;
  height: 80%;
  top: 10%;
  left: 40px;
  background: #535353;
}

.sp main .contents .news .newslist li div .link a .icon:before {
  left: 10px;
}

main .contents .news .newslist li div .link a .icon.pdf {
  background-position: 71.25px center;
  background-image: url(assets/img/pdficon.png);
}

main .contents .news .newslist li div .link a .icon.pdf:after {
  display: none;
}

.sp main .contents .news .newslist li div .link a .icon.pdf {
  background-position: 25px center;
}

main .contents .news .newslist li div .link a .icon.innerlink {
  background-position: 71.25px center;
  background-image: url(assets/img/innerlinkicon.png);
  height: 10px;
}

main .contents .news .newslist li div .link a .icon.innerlink:after {
  display: none;
}

.sp main .contents .news .newslist li div .link a .icon.innerlink {
  height: 20px;
  background-position: 25px center;
}

main .contents .news .newslist li div .link a .icon.blank {
  background-position: 71.25px center;
  background-image: url(assets/img/blank.png);
}

.sp main .contents .news .newslist li div .link a .icon.blank {
  background-position: 25px center;
}

main .contents .news .newslist li div .link a .icon.blank:after {
  display: none;
}

main .contents .news .more {
  text-align: right;
  margin-top: 20px;
}

.sp main .contents .news .more {
  display: none;
}

main .contents .news .more.sp {
  display: none;
}

.sp main .contents .news .more.sp {
  display: block;
  margin-bottom: 20px;
  text-align: center;
}

main .contents .news .more a {
  position: relative;
  margin-right: 30px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  color: #000000;
  position: relative;
  display: inline-block;
}

main .contents .news .more a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.15em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #000000;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

main .contents .news .more a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

main .contents .news .more a:after {
  content: "";
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  right: -30px;
  top: 50%;
  margin-top: -10px;
  background: url(assets/img/next.png) no-repeat center center;
}

main .contents .contact h2 {
  padding-bottom: 25px;
  margin-bottom: 25px;
  border-bottom: 1px solid #000;
  text-align: left;
}

main .contents p.notice,
main .contents .text p.notice {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 15.4px;
  line-height: 0.9625rem;
  color: #ff0000;
}

main .contents .profilebox {
  border: 1px solid #707070;
}

main .contents .profilebox .image {
  vertical-align: middle;
}

main .contents .profilebox .text {
  position: relative;
  padding: 20px 20px 80px 20px;
}

.sp main .contents .profilebox .text {
  padding: 10px !important;
}

main .contents .profilebox .text .title {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 31.2px;
  line-height: 1.95rem;
}

main .contents .profilebox .text .lead {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
}

main .contents .profilebox .text .button {
  position: absolute;
  bottom: 20px;
  left: 20px;
}

.sp main .contents .profilebox .text .button {
  position: static;
  margin-top: 20px;
}

main .contents .background.about01 {
  background: url(../../about/images/about01.jpg) no-repeat center center;
  background-size: cover;
}

main .contents .background.about01 h2 {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 36.4px;
  line-height: 2.275rem;
  color: #fff;
  text-align: left;
}

main .contents .background.about01 h2 span {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
}

main .contents .background.about01 > .inner {
  position: relative;
  width: 100%;
  margin: auto;
  padding: 50px 20px;
  max-width: 740px;
}

main .contents .background.about01 > .inner .colbox {
  display: table;
  width: 100%;
}

main .contents .background.about01 > .inner .colbox > div {
  display: table-cell;
  width: 50%;
  padding: 0 0 0 10px;
  vertical-align: middle;
}

main .contents .background.about01 > .inner .colbox > div:first-child {
  padding: 0 10px 0 0;
}

main .contents .background.recruit {
  margin-bottom: 80px;
  background: url(../../recruit/images/recruit.jpg) no-repeat center center;
  background-size: cover;
}

.sp main .contents .background.recruit {
  margin-bottom: 40px;
}

main .contents .background.recruit h2 {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 36.4px;
  line-height: 2.275rem;
  text-align: left;
}

main .contents .background.recruit h2 span {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
}

main .contents .background.recruit > .inner {
  position: relative;
  width: 100%;
  margin: auto;
  padding: 0 20px;
  max-width: 740px;
}

.sp main .contents .background.recruit > .inner {
  padding: 0 10px;
}

main .contents .background.recruit > .inner .colbox {
  display: table;
  width: 100%;
}

main .contents .background.recruit > .inner .colbox > div {
  display: table-cell;
  width: 50%;
  padding: 50px 10px 50px 10px;
  vertical-align: middle;
}

main .contents .background.recruit > .inner .colbox > div:first-child {
  padding: 0 10px 0 0;
}

.sp main .contents .background.recruit > .inner .colbox > div:first-child {
  display: none;
}

main .contents .background.recruit > .inner .colbox > div:last-child {
  background: rgba(255, 255, 255, 0.7);
}

main .contents .background.about02 {
  background: url(../../ir/images/esg_bg.jpg) no-repeat center top;
  background-size: cover;
}

main .contents .background.about02 > .inner {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 40px 20px 80px;
}

.sp main .contents .background.about02 > .inner {
  padding: 20px 10px 40px;
}

main .contents .background.about02 > .inner .menu {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  margin: 40px auto;
}

main .contents .background.about02 > .inner .menu:after {
  content: "";
  display: block;
  clear: both;
}

main .contents .background.about02 > .inner .menu > div {
  padding: 0 1rem;
  width: 25%;
  text-align: center;
}

.sp main .contents .background.about02 > .inner .menu > div {
  width: 50%;
}

main .contents .background.about02 > .inner .menu > div > a {
  display: block;
  position: relative;
  max-width: 280px;
  width: 100%;
  margin: auto;
  border-radius: 50%;
  overflow: hidden;
}

main .contents .background.about02 > .inner .menu > div p {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
}

.sp main .contents .background.about02 > .inner .menu > div p {
  margin-top: 10px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

main .contents .background.about02 > .inner .menu.esgmenu > div > a img {
  border: 2px solid #dbdbdb;
  border-radius: 50%;
}

main .contents .background.about02 > .inner .menu.esgmenu > div > a.hover img,
main .contents .background.about02 > .inner .menu.esgmenu > div > a:hover img {
  border: 2px solid #004295;
}

main .contents .background.about02 > .inner .link {
  margin: auto;
  text-align: center;
}

.sp main .contents .background.about02 > .inner .link {
  margin-top: 20px;
}

main .contents .background.about02 > .inner .link > a {
  display: inline-block;
  padding: 10px;
  text-align: left;
  border: 1px solid #004295;
  border-radius: 5px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

main .contents .background.about02 > .inner .link > a:after {
  content: "";
  position: relative;
  display: inline-block;
  width: 18px;
  height: 20px;
  top: -1px;
  margin: 0px 5px;
  padding: 0px !important;
  background: url(assets/img/pdficon.png) no-repeat;
  background-size: 18px 20px;
  vertical-align: middle;
  overflow: hidden;
}

main .contents .background.company {
  margin-top: -80px;
  background: url(../../company/images/company.jpg) no-repeat center center;
  background-size: cover;
}

.sp main .contents .background.company {
  margin-top: -40px;
}

main .contents .background.company > .inner {
  position: relative;
  width: 100%;
  margin: auto;
  padding: 2.5rem 20px;
  max-width: 1220px;
}

main .contents .background.company > .inner .text p {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 37.4px;
  line-height: 2.3375rem;
}

.sp main .contents .background.company > .inner .text p {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 30.6px;
  line-height: 1.9125rem;
}

main .contents .background.buhin {
  margin-top: -80px;
  border-bottom: 1px solid #dbdbdb;
}

.sp main .contents .background.buhin {
  margin-top: -40px;
}

main .contents .background.factory {
  margin-top: -40px;
}

.sp main .contents .background.factory {
  margin-top: -20px;
}

main .contents .background.lyd {
  background: url(../../company/images/company.jpg) no-repeat center center;
  background-size: cover;
}

main .contents .background.pack {
  background: url(../../service/images/pack_bg.jpg) no-repeat center center;
  background-size: cover;
}

main .contents .background.top_stack {
  margin-top: -80px;
  position: relative;
  z-index: 10;
}

.sp main .contents .background.top_stack {
  margin-top: -40px;
}

main .contents .magazinebox {
  padding: 20px;
  border: 1px solid #707070;
}

main .contents .magazinebox > .imagebox {
  margin-top: -5rem;
}

.sp main .contents .magazinebox > .imagebox {
  margin-top: 0;
}

main .contents .magazinebox > .imagebox > .text {
  padding-top: 5rem;
}

.sp main .contents .magazinebox > .imagebox > .text {
  padding-top: 0;
}

main .contents .magazinebox > .imagebox > .text .title {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 30.8px;
  line-height: 1.925rem;
}

main .contents .magazinebox > .imagebox > .text p + p {
  margin-top: 10px;
}

main .contents .magazinebox > .imagebox > .text .button {
  margin-top: 20px;
}

.sp main .contents .magazinebox .title {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 24.2px;
  line-height: 1.5125rem;
}

main .contents .googlemap {
  position: relative;
  padding-top: 35%;
}

.sp main .contents .googlemap {
  padding-top: 75%;
}

main .contents .googlemap iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0px;
  -webkit-transition: opacity 400ms;
  transition: opacity 400ms;
}

main .contents .googlemap #servicenetwork {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0px;
  -webkit-transition: opacity 400ms;
  transition: opacity 400ms;
}

main .contents .googlemap.googlemapview {
  background: url(assets/img/loading.gif) no-repeat center center;
}

main .contents .googlemap.googlemapview iframe {
  position: fixed;
  top: 90vh;
  opacity: 0;
  -webkit-transition: opacity 0ms;
  transition: opacity 0ms;
}

main .contents .youtube {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

main .contents .youtube > div {
  position: relative;
  padding-top: 56.25%;
}

main .contents .youtube > div > iframe,
main .contents .youtube > div > video {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0px;
}

main .contents .youtube p {
  margin: auto;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

* + main .contents .youtube p {
  margin-top: 8px;
}

main .contents .pdf:after {
  content: "";
  position: relative;
  display: inline-block;
  width: 18px;
  height: 20px;
  top: -1px;
  margin: 0px 5px;
  padding: 0px !important;
  background: url(assets/img/pdficon.png) no-repeat;
  background-size: 18px 20px;
  vertical-align: middle;
  overflow: hidden;
}

main .contents .pdf[href$=".zip"]:after {
  width: 20px;
  background: url(assets/img/download_icon.png) no-repeat;
  background-size: 20px 20px;
}

main .contents .productslink {
  position: relative;
  width: 100%;
  padding: 40px 20px;
  height: 380px;
  background: url(../../businesses/images/productslink_bg.jpg) no-repeat bottom center;
  color: #fff;
  background-size: cover;
}

.sp main .contents .productslink {
  height: auto;
  padding: 20px 10px;
  background: url(../../businesses/images/productslink_bg_sp.jpg) no-repeat bottom center;
  background-size: cover;
}

.sp main .contents .productslink:after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  bottom: 0;
  left: 0;
  z-index: 2;
  background: -moz-linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.6));
  background: -webkit-linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.6));
  background: -ms-linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.6));
}

main .contents .productslink h2 {
  margin-bottom: 20px;
  text-align: left;
}

.center {
  text-align: center;
}

.inline-block {
  display: inline-block !important;
}

.slide {
  position: relative;
  -webkit-transition: height 400ms;
  transition: height 400ms;
}

.slide .image {
  margin: 40px 0 10px 0;
}

.sp .slide .image {
  margin: 0;
}

.slide .image img {
  margin-left: 0 !important;
}

.sp .slide {
  margin-top: 20px;
}

.sp .slide p {
  display: inline-block;
  width: calc((100% - 20px) / 2);
  vertical-align: top;
}

.sp .slide p + p {
  margin-left: 15px;
}

.slide > div {
  position: absolute;
  left: 50%;
  top: 0px;
  width: 100%;
  opacity: 0;
  -webkit-transform: translateX(-160%);
  transform: translateX(-160%);
  -webkit-transition: -webkit-transform 1200ms, opacity 600ms 600ms;
  transition: transform 1200ms, opacity 600ms 600ms;
  pointer-events: none;
}

.slide > div.left {
  -webkit-transform: translateX(60%);
  transform: translateX(60%);
}

.slide > div.show {
  -webkit-transform: translateX(-50%) !important;
  transform: translateX(-50%) !important;
  opacity: 1;
  -webkit-transition: -webkit-transform 1200ms, opacity 600ms;
  transition: transform 1200ms, opacity 600ms;
  pointer-events: auto;
}

.slide > div.show:after {
  content: "";
  display: block;
  clear: both;
}

.slide > div.show > div {
  /*
  float: left;
  */
}

.sp .slide > div.show > div {
  float: none;
}

.slide > div.show > div + div {
  margin-left: 0px;
}

.sp .slide > div.show > div + div {
  margin: 20px 0 0 0;
}

.slide > div .productempty {
  padding: 30px 0;
  text-align: center;
}

.sp .slide > div .productempty p {
  width: 100%;
}

section h2 {
  position: relative;
  clear: both;
  display: block;
  margin: 0px 0px 20px;
  font-size: 38px;
  font-size: 2.375rem;
  line-height: 57px;
  line-height: 3.5625rem;
  font-weight: normal;
  text-align: center;
}

.sp section h2 {
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 36.4px;
  line-height: 2.275rem;
}

section .related {
  background: #dbdbdb;
  padding: 30px 0;
}

.sp section .related {
  padding: 15px 0;
}

section .related ul {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 0px 20px 0px;
}

section .related ul:after {
  content: "";
  display: block;
  clear: both;
}

.sp section .related ul {
  padding: 0px 10px 0px;
}

section .related ul li {
  width: 22%;
  float: left;
  text-align: center;
}

.sp section .related ul li {
  width: 48%;
}

.sp section .related ul li:nth-of-type(n + 3) {
  margin-top: 20px;
}

.sp section .related ul li:nth-of-type(2n + 1) {
  margin-left: 0;
}

section .related ul li + li {
  margin-left: 4%;
}

section .related ul li a {
  display: block;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  color: #000000;
}

section .related ul li a:hover {
  opacity: 0.7;
}

section .related ul li img {
  width: 100%;
  height: auto;
  margin-bottom: 10px;
}

.sp section .related.news {
  padding: 0;
}

section .related.news div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 0px 20px 0px;
}

.sp section .related.news div {
  padding: 0px 10px 0px;
}

.sp section .related.news div {
  padding: 0;
  border: none;
}

section .related.news div .title {
  text-align: center;
  margin-bottom: 10px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 30.6px;
  line-height: 1.9125rem;
}

.sp section .related.news div .title {
  display: none;
}

section .related.news ul {
  margin: -20px 0 0 -20px;
  text-align: center;
}

section .related.news ul:after {
  content: "";
  display: block;
  clear: both;
}

.sp section .related.news ul {
  margin: 0;
}

section .related.news ul li {
  width: auto;
  padding: 0 10px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 17.6px;
  line-height: 1.1rem;
  display: inline-block;
  margin: 20px 0 0 20px;
  float: none;
}

.sp section .related.news ul li {
  display: block;
  padding: 0;
  margin: 0;
  border-bottom: 1px solid #ececec;
}

section .related.news ul li a {
  display: block;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  color: #000000;
}

section .related.news ul li a:hover {
  opacity: 0.7;
}

.sp section .related.news ul li a {
  display: block;
  width: 100%;
  padding: 13px;
  text-align: left;
  text-decoration: none;
}

section .related.news ul li.current a {
  color: #004295;
}

section .related_product {
  background: #dbdbdb;
  padding: 30px 10px;
}

section .related_product > div .ac {
  border: 2px solid #004295;
}

section .related_product > div.alert {
  text-align: center;
  color: #f00;
}

section + section {
  margin-top: 80px;
}

.sp section + section {
  margin-top: 40px;
}

main .contents .menu > * {
  position: relative;
  display: block;
}

main .contents .menu + .menu {
  margin-top: 0;
}

.sp main .contents .menu {
  margin-bottom: -10px !important;
}

.sp main .contents .menu > * {
  margin-bottom: 10px !important;
}

main .contents .menu.no_gradation a > .image:after {
  display: none;
}

main .contents .menu.half_gradation a > .image:after {
  height: 25%;
}

main .contents .menu a > div > span {
  position: absolute;
  width: 100%;
  padding: 10px;
  text-align: center;
  bottom: 0;
  left: 0;
  color: #fff;
  font-weight: bold;
  z-index: 10;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 19.8px;
  line-height: 1.2375rem;
}

.sp main .contents .menu a > div > span {
  padding-bottom: 5px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 14.4px;
  line-height: 0.9rem;
}

main .contents .menu a > div > span > span {
  font-size: 15px;
  font-size: 0.9375rem;
  line-height: 16.5px;
  line-height: 1.03125rem;
}

.sp main .contents .menu a > div > span > span {
  font-size: 11px;
  font-size: 0.6875rem;
  line-height: 12.1px;
  line-height: 0.75625rem;
}

main .contents .menu a > .image:after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 50%;
  bottom: 0;
  left: 0;
  z-index: 2;
  background: -moz-linear-gradient(transparent, rgba(0, 0, 0, 0.5));
  background: -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.5));
  background: -ms-linear-gradient(transparent, rgba(0, 0, 0, 0.5));
}

.sp main .contents .menu a > .image:after {
  height: 70%;
}

main .contents .menu a > .image.half_gradation:after {
  height: 25%;
}

.sp main .contents .table .product a {
  padding: 5px;
}

.alternative_area .region1,
.alternative_area .region2,
.alternative_area .region3,
.alternative_area .region4,
.alternative_area .region5,
.alternative_area .region6,
.alternative_area .region7,
.alternative_area .region8,
.alternative_area .region9 {
  display: none;
}

.sp main .contents.products_lv3 > div.background .view_sp div.inner {
  padding-bottom: 0;
}

main .contents .tab + div {
  margin-top: 20px;
}

main .contents .table .product img {
  width: 100%;
  max-width: 120px;
  min-width: 100px;
}

main .contents .column > .text {
  margin-top: 0;
}

main .contents .slide > div > ul.anchor li {
  position: relative;
  display: inline-block;
  padding-right: 30px;
  margin: 10px 0 0 30px;
  font-size: 15px;
  font-size: 0.9375rem;
  line-height: 19.5px;
  line-height: 1.21875rem;
}

.sp main .contents .slide > div > ul.anchor li {
  display: block;
  padding-right: 0;
}

main .contents .slide > div > ul.anchor li:before {
  content: "";
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  left: -30px;
  top: 50%;
  margin-top: -10px;
  background: url(assets/img/anchor.png) no-repeat center center;
}

main .contents > div.gotolist {
  margin-top: 20px;
  padding: 0;
}

.gotolist {
  margin-top: 20px;
  text-align: right;
}

.gotolist a {
  position: relative;
  margin-right: 30px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  color: #000000;
  position: relative;
  display: inline-block;
}

.gotolist a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.15em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #000000;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

.gotolist a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

.gotolist a:after {
  content: "";
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  right: -30px;
  top: 50%;
  margin-top: -10px;
  background: url(assets/img/totop.png) no-repeat center center;
}

main .contents .table > table.product .lineuptitle {
  margin-bottom: 0.5rem;
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 24.2px;
  line-height: 1.5125rem;
}

main .contents .table > table.product .lineupimg {
  padding: 0;
}

main .contents .table > table.product .lineupimg img {
  display: block;
  margin: auto;
}

main .contents .column.col2 > *:nth-of-type(2n + 1) {
  clear: both;
}

main .contents .column.col3 > *:nth-of-type(3n + 1) {
  clear: both;
}

.tablet main .contents .text .image.floatright,
.tablet main .contents .text .image.floatleft {
  float: none;
  width: auto !important;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0px;
}

in .contents .imagebox > .image img.border {
  border: 1px solid #dbdbdb;
}

.anchor {
  margin-top: -10px;
}

.anchor li {
  position: relative;
  display: inline-block;
  padding-right: 30px;
  margin: 20px 0 0 30px;
  font-size: 15px;
  font-size: 0.9375rem;
  line-height: 19.5px;
  line-height: 1.21875rem;
}

.sp .anchor li {
  display: block;
  padding-right: 0;
}

.anchor li:before {
  content: "";
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  left: -30px;
  top: 50%;
  margin-top: -10px;
  background: url(assets/img/anchor.png) no-repeat center center;
}

.anchor li.ex {
  margin-left: 0;
  padding-left: 30px;
}

.anchor li.ex:before {
  display: none;
}

.anchor li + .ex {
  border-left: 1px solid #707070;
}

.anchor.link li {
  display: inline-block;
  margin: 20px 30px 0 0;
}

.anchor.link li:before {
  right: 0;
  left: auto;
  background: url(assets/img/arrow.png) no-repeat center center;
}

.sp .anchor.link li {
  padding-right: 30px;
}

.text + .anchor {
  margin-top: 20px;
}

.anchor + .news {
  margin-top: 30px;
}

main .contents .text ol li > * {
  display: inline-block;
  vertical-align: top;
}

main .contents .update {
  text-align: right;
}

.faq p {
  margin-left: 1.4rem;
  text-indent: -1.4rem;
}

.button {
  font-size: 0px;
}

.sp .button {
  text-align: center;
}

.button > div {
  display: inline-block;
  vertical-align: middle;
}

.sp .button > div {
  display: block;
}

.button > div + div {
  margin-left: 20px;
}

.sp .button > div + div {
  margin-top: 20px;
  margin-left: 0px;
}

.button a {
  display: table;
  width: 170px;
  max-width: 100%;
  margin: auto;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  color: #ffffff;
  background: #004295;
  border-radius: 5px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

.button a:hover {
  opacity: 0.7;
}

.button a > span {
  display: table-cell;
  vertical-align: middle;
  padding: 10px 30px 10px 10px;
  text-align: left;
  background: url(assets/img/ico_button.png) no-repeat center right 10px;
  background-size: 20px 20px;
}

.button a > span.contact {
  background: url(assets/img/action_ico04.png) no-repeat center right 10px;
  background-size: 20px 20px;
}

.button a > span.site {
  background: url(assets/img/blankwhite.png) no-repeat center right 10px;
  background-size: 20px 20px;
}

.button a > span.pdf {
  background: url(assets/img/pdficon.png) no-repeat center right 10px;
  background-size: 20px 20px;
}

.button a > span.pdf:after {
  display: none;
}

.button a > span.pdf_white {
  background: url(assets/img/ico_pdf.png) no-repeat center right 10px;
  background-size: 20px 20px;
}

.button a > span.pdf_white:after {
  display: none;
}

.button a > span.blank {
  background: url(assets/img/blankwhite.png) no-repeat center right 10px;
  background-size: 20px 20px;
}

.button a > span.blank:after {
  display: none;
}

.tablet .button a > span.blank {
  background-size: 14px 14px;
}

.sp .button a > span.blank {
  background-size: 20px 20px;
}

.button a > span.download {
  background: url(assets/img/download_iconwhite.png) no-repeat center right 10px;
  background-size: 20px 20px;
}

.button a > span.download:after {
  display: none;
}

.button a.download > span span {
  position: relative;
  display: inline-block;
  padding-left: 30px;
}

.button a.download > span span:before {
  content: url(assets/img/download.png);
  display: inline-block;
  position: absolute;
  width: 22.5px;
  height: 30px;
  left: 0px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.button.left {
  text-align: left;
}

.button.left a {
  margin-left: 0;
}

.button.center {
  text-align: center;
}

.button.right {
  text-align: right;
}

.button.right a {
  margin-right: 0;
}

.sp .button.sp_center {
  text-align: center;
}

.sp .button.sp_center a {
  margin: auto;
}

.sp .button.sp_left {
  text-align: left;
}

.sp .button.sp_left a {
  margin: 0;
}

.button.white a {
  color: #004295;
  background: #ffffff;
}

.button.white a > span {
  background: url(assets/img/ico_button_white.png) no-repeat center right 10px;
}

h1.level3 {
  font-size: 46px;
  font-size: 2.875rem;
  line-height: 59.8px;
  line-height: 3.7375rem;
  max-width: 1220px;
  padding: 0 20px;
  margin: 60px auto 40px;
}

.sp h1.level3 {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 36.4px;
  line-height: 2.275rem;
  padding: 10px;
  margin: 30px auto 20px;
}

#categorylabel + #breadcrumbs {
  border: none;
}

#wwn_map {
  position: relative;
  background: url(../../businesses/wwnetwork/images/bg_map.png) center center #004295 no-repeat;
  height: 441px;
  padding-top: 50px;
}

.tablet #wwn_map {
  display: none;
}

#wwn_map p {
  position: absolute;
  left: 20px;
  top: 20px;
  color: #fff;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 26px;
  line-height: 1.625rem;
}

#wwn_map ul {
  position: relative;
  width: 734px;
  height: 343px;
  margin: 0 auto;
}

#wwn_map ul li {
  position: absolute;
  width: 180px;
}

#wwn_map ul li a {
  display: block;
  text-align: center;
  background: #fff;
  color: #004295;
  padding: 10px 5px;
  border: 1px solid #fff;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
}

#wwn_map ul li a.ac {
  background: #004295;
  color: #fff;
}

#wwn_map ul li.region1 {
  left: 38%;
  top: 24%;
}

#wwn_map ul li.region2 {
  left: 5%;
  top: 24%;
}

#wwn_map ul li.region3 {
  left: 5%;
  top: 68%;
}

#wwn_map ul li.region4 {
  left: 70%;
  top: 24%;
}

#wwn_map ul li.region5 {
  left: 54%;
  top: 46%;
}

#wwn_map ul li.region6 {
  left: 22%;
  top: 46%;
}

#wwn_map ul li.region7 {
  left: 38%;
  top: 68%;
}

#wwn_map ul li.region8 {
  left: 53%;
  top: 3%;
}

#wwn_map ul li.region9 {
  left: 70%;
  top: 68%;
}

#wwn_content {
  padding-top: 40px;
}

#wwn_content > div:not(:first-child) {
  display: none;
}

.tablet #wwn_content > div:not(:first-child) {
  display: block;
}

.tablet #wwn_content > div:not(:first-child) h2 {
  margin-top: 20px;
}

.button.wide {
  margin: -20px 0 0 -20px;
}

.sp .button.wide {
  margin: 0;
}

.button.wide.back {
  margin: 40px 0 0 0;
}

.sp .button.wide.back {
  margin-top: 30px;
}

.button.wide.back a span {
  background: url(assets/img/ico_button_back.png) no-repeat center right 10px;
}

.button.wide.back > div {
  margin: 0;
}

.button.wide.prevnext > .prev {
  margin-left: 0;
}

.button.wide.prevnext > .prev a span {
  background: url(assets/img/ico_button_back.png) no-repeat center right 10px;
}

.button.wide.prevnext > .next {
  margin-left: 0;
}

.button.wide.prevnext > div + .next {
  margin-left: 20px;
}

.button.wide > div {
  margin: 20px 0 0 20px;
}

.sp .button.wide > div {
  margin-left: 0;
}

.button.wide > div a {
  width: auto;
  min-width: 170px;
}

.button.wide > div a span {
  padding: 10px 40px 10px 10px;
}

main .contents > div.button.wide {
  margin: -20px 0 0 -20px;
  width: auto;
  max-width: none;
}

main .contents h2.small {
  font-size: 30px;
  font-size: 1.875rem;
  line-height: 39px;
  line-height: 2.4375rem;
}

.design {
  overflow-x: auto;
  overflow-y: hidden;
}

.design table {
  width: 100%;
  border-spacing: 0;
  empty-cells: show;
  border-collapse: separate;
}

.design table caption {
  font-size: 10px;
  text-align: right;
}

.design table th,
.design main .contents .format > table td,
main .contents .design .format > table td {
  background: #004295;
  color: #fff;
  font-weight: normal;
}

.design table th,
.design main .contents .format > table td,
main .contents .design .format > table td,
.design table td {
  padding: 3px 5px 3px 5px;
  border: solid 1px #cdcdcd;
  border-collapse: collapse;
  font-size: 12px;
  text-align: left;
}

.design table table {
  width: auto;
  margin: 0 auto;
}

.design table table th,
.design main .contents .format > table table td,
main .contents .design .format > table table td,
.design table table td {
  border: none;
}

.bgBlue {
  background: #004295;
  color: #fff;
}

.bgSky {
  background: #00a4cf !important;
  text-shadow: 1px 1px 0px #fff;
}

.design table .center {
  text-align: center;
}

.design table .right {
  text-align: right;
}

.categorymenu {
  padding: 30px 0;
  background: #dbdbdb;
}

.sp .categorymenu {
  padding: 0;
}

.categorymenu div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 0px 20px 0px;
}

.sp .categorymenu div {
  padding: 0px 10px 0px;
}

.sp .categorymenu div {
  padding: 0;
  border: none;
}

.categorymenu div .title {
  text-align: center;
  margin-bottom: 10px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 30.6px;
  line-height: 1.9125rem;
}

.sp .categorymenu div .title {
  display: none;
}

.categorymenu a.spmenu {
  display: none;
}

.sp .categorymenu a.spmenu {
  position: relative;
  display: none;
  padding: 10px;
  height: 50px;
  line-height: 25px;
  border: 1px solid #ececec;
  text-decoration: none;
  color: #000000;
}

.sp .categorymenu a.spmenu:before {
  content: "";
  position: absolute;
  background: #004295;
  height: 40px;
  width: 40px;
  right: 5px;
  top: 3px;
  pointer-events: none;
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5);
}

.sp .categorymenu a.spmenu:after {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  right: 16px;
  top: 18px;
  border-style: solid;
  border-width: 12px 8px 0 8px;
  border-color: #ffffff transparent transparent transparent;
  pointer-events: none;
}

.sp .categorymenu a.spmenu.open:after {
  border-width: 0 8px 12px 8px;
  border-color: transparent transparent #ffffff transparent;
}

.categorymenu ul {
  margin: -20px 0 0 -20px;
  text-align: center;
  letter-spacing: -1rem;
}

.categorymenu ul:after {
  content: "";
  display: block;
  clear: both;
}

.sp .categorymenu ul {
  margin: 0;
}

.categorymenu ul li {
  font-size: 16px;
  font-size: 1rem;
  line-height: 17.6px;
  line-height: 1.1rem;
  display: inline-block;
  margin: 20px 0 0 20px;
  letter-spacing: normal;
}

.sp .categorymenu ul li {
  display: block;
  padding: 0;
  margin: 0;
  border-bottom: 1px solid #ececec;
}

.categorymenu ul li.br {
  margin-left: 0 !important;
  display: inline;
}

.sp .categorymenu ul li.br {
  display: none;
}

.categorymenu ul li.br:before {
  content: "\A";
  white-space: pre;
}

.categorymenu ul li a {
  display: block;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  color: #000000;
}

.categorymenu ul li a:hover {
  opacity: 0.7;
}

.sp .categorymenu ul li a {
  display: block;
  width: 100%;
  padding: 13px;
  text-align: left;
  text-decoration: none;
}

.categorymenu ul li.current a {
  color: #004295;
}

main .contents .column.col2 > .servicebox {
  width: 50%;
  margin: 0;
}

main .contents .column.col2 > .servicebox > div {
  width: calc((100% - 10px * 3 - 2px) * 2 / 3);
  margin: auto;
}

.sp main .contents .column.col2 > .servicebox > div {
  width: 100%;
}

main .contents .text p.sub_title {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
  font-weight: bold;
}

.used_map {
  width: 100%;
  padding: 0 0 40px 0;
  background: #004295;
}

.tablet .used_map {
  padding: 0;
  background: none;
}

.used_map p {
  padding: 30px 20px;
  color: #fff;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 26px;
  line-height: 1.625rem;
}

.tablet .used_map p {
  padding: 15px 0;
  color: #000;
}

.used_map ul {
  position: relative;
  padding: 0 20px;
  width: 100%;
  height: 343px;
  background: url(assets/img/used01.png) no-repeat center center #004295;
  background-size: contain;
}

.tablet .used_map ul {
  display: none;
}

.used_map ul li {
  position: absolute;
  display: table;
  width: 22%;
  max-width: 220px;
  height: 38px;
  table-layout: fixed;
}

.used_map ul li a {
  display: table-cell;
  color: #004295;
  padding: 0 5px;
  border: 1px solid #fff;
  vertical-align: middle;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 15.4px;
  line-height: 0.9625rem;
  background: url(assets/img/blank.png) no-repeat right 5px center #fff;
}

.used_map ul li a.ac {
  background: #004295;
  color: #fff;
}

.used_map ul li.place_a {
  top: 0;
  left: 20px;
}

.used_map ul li.place_b {
  top: 52px;
  left: 20px;
}

.used_map ul li.place_c {
  bottom: 104px;
  left: 20px;
}

.used_map ul li.place_d {
  bottom: 52px;
  left: 20px;
}

.used_map ul li.place_e {
  bottom: 0;
  left: 20px;
}

.used_map ul li.place_f {
  top: 0;
  right: 20px;
}

.used_map ul li.place_g {
  top: 52px;
  right: 20px;
}

.used_map ul li.place_h {
  top: 104px;
  right: 20px;
}

.used_map ul li.place_i {
  top: 156px;
  right: 20px;
}

.used_map ul li.place_j {
  bottom: 0;
  right: 20px;
}

#fullmenu .menu .title.block {
  margin-top: 30px;
}

.slide .button.wide {
  padding: 30px 0;
}

.error_mes {
  color: #ef3340;
  margin-top: 20px;
}

main + .button.wide.back {
  position: relative;
  margin-top: -40px;
  z-index: 10;
}

.sp main + .button.wide.back {
  margin-top: 0;
}

#spmenu .menu > ul > li {
  position: relative;
}

#spmenu .menu > ul > li > a {
  z-index: 10;
}

main .contents .background.about02 > .inner .menu.esgmenu a {
  opacity: 1;
}

main .contents .background.about02 > .inner .menu.esgmenu a .image:after {
  display: none;
}

main
.contents
.background.about02
> .inner
.menu.esgmenu
.esg_block
p
a:before {
  display: none;
}

#spmenu .utility .search .gsc-input-box .gsib_a,
.gsc-search-box-tools .gsc-search-box .gsc-input {
  height: 40px;
}

#productresoures_modal {
  display: none;
  position: fixed;
  z-index: 2000;
  top: -5px;
  width: 100%;
  height: calc(100% + 5px);
  background-color: rgba(0, 0, 0, 0.6);
}

#productresoures_modal > div {
  position: absolute;
  width: 90%;
  height: 400px;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  background: #fff;
  padding: 20px;
}

.sp #productresoures_modal > div {
  height: 90%;
  padding: 10px;
}

#productresoures_modal > div .title {
  text-align: center;
  font-weight: bold;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
}

.sp #productresoures_modal > div .title {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

#productresoures_modal > div .scroll_area {
  margin-top: 20px;
  border: 1px solid #333;
}

.sp #productresoures_modal > div .scroll_area {
  margin-top: 10px;
  height: 80%;
  height: calc(100% - 200px);
}

#productresoures_modal > div .scroll_area > div {
  overflow-y: scroll;
  height: 250px;
  padding: 20px;
}

.sp #productresoures_modal > div .scroll_area > div {
  height: 100%;
  padding: 10px;
}

#productresoures_modal > div .scroll_area > div p {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 15.6px;
  line-height: 0.975rem;
}

#productresoures_modal > div .scroll_area > div * + p {
  margin-top: 15px;
  line-height: 1.4;
}

#productresoures_modal > div .button {
  margin-top: 20px;
}

#productresoures_modal > div .button span {
  text-align: center;
}

.sp main .contents .productslink .text {
  position: relative;
  z-index: 10;
}

main .contents .box .text .title {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 36.4px;
  line-height: 2.275rem;
  font-weight: bold;
}

.sp main .contents .box .text .title {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 28.6px;
  line-height: 1.7875rem;
}

main .contents .box .text .title + p {
  margin-top: 10px;
}

sup {
  white-space: nowrap;
}

main .contents .table > table.spec th:last,
main .contents .table > table.spec .format > table td:last,
main .contents .format > table .table > table.spec td:last {
  border-right: none;
}

main .contents .table > table.spec th:last-child,
main .contents .table > table.spec .format > table td:last-child,
main .contents .format > table .table > table.spec td:last-child {
  border-right: none;
}

main .contents .table > table.spec th::before,
main .contents .table > table.spec .format > table td::before,
main .contents .format > table .table > table.spec td::before {
  display: none;
}

main .contents .table > table.spec > tbody > tr > th,
main .contents .format.table > table.spec > tbody > tr > td {
  border-left: none;
}

main .contents .table > table.spec.service th img,
main .contents .table > table.spec.service .format > table td img,
main .contents .format > table .table > table.spec.service td img {
  margin-right: 10px;
  vertical-align: middle;
}

main .contents .text ul.full {
  margin-left: 0;
  margin-right: 0;
}

main .contents .date {
  text-align: right;
}

main .contents .date + h2 {
  margin-top: 40px;
}

#fullmenu .menu li .blank_w:after {
  margin: 0 0 0 8px;
}

main .contents .table > table.spec > tbody > tr > th.normal,
main .contents .format.table > table.spec > tbody > tr > td.normal {
  font-weight: normal;
}

main .contents .table > table.product .r_border:before {
  display: block !important;
}

.mf_finder_searchBox_items {
  padding: 0 !important;
}

.mf_finder_organic_wrapper {
  padding-top: 20px;
}

.mf_finder_organic_pager_wrapper {
  padding-top: 20px;
}

.mf_finder_zubaken_wrapper {
  padding-top: 30px;
}

.region_disp > div {
  display: none;
}

.region_disp > div.region1 {
  display: block;
}

.region2 .region_disp > div.region1,
.region3 .region_disp > div.region1,
.region4 .region_disp > div.region1,
.region5 .region_disp > div.region1,
.region6 .region_disp > div.region1,
.region7 .region_disp > div.region1,
.region8 .region_disp > div.region1,
.region9 .region_disp > div.region1 {
  display: none;
}

.region1 .region_disp > div.region1,
.region2 .region_disp > div.region2,
.region3 .region_disp > div.region3,
.region4 .region_disp > div.region4,
.region5 .region_disp > div.region5,
.region6 .region_disp > div.region6,
.region7 .region_disp > div.region7,
.region8 .region_disp > div.region8,
.region9 .region_disp > div.region9 {
  display: block;
}

.recruit_result {
  margin-top: 40px;
}

.recruit_result .result {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 28px;
  line-height: 1.75rem;
  text-align: center;
}

.recruit_result .result span {
  padding: 0 0.5rem;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 36.4px;
  line-height: 2.275rem;
  color: #ff0000;
}

.faq dt {
  position: relative;
  padding: 0 0 15px 2.5rem;
  margin-bottom: 15px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
  font-weight: bold;
  border-bottom: 1px dotted #000;
}

.faq dt:before {
  position: absolute;
  content: "Q";
  display: inline-block;
  padding: 0.2rem 0.5rem;
  top: -0.1em;
  left: 0px;
  text-align: center;
  color: #ffffff;
  background: #004295;
}

.faq dd {
  position: relative;
  padding-left: 2.5rem;
  margin: 0 0 30px 0;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

.faq dd:before {
  position: absolute;
  content: "A";
  display: inline-block;
  padding: 0.2rem 0.5rem;
  top: 0;
  left: 0px;
  text-align: center;
  color: #ffffff;
  background: #00b0d2;
}

main .contents .text dl.recruit_time {
  border-bottom: 1px solid #707070;
  overflow: hidden;
}

.sp main .contents .text dl.recruit_time {
  margin-bottom: 20px;
}

main .contents .text dl.recruit_time dt,
main .contents .text dl.recruit_time dd {
  float: left;
  margin: 0 0 20px 0;
  padding-top: 20px;
  border-top: 1px solid #707070;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

.sp main .contents .text dl.recruit_time dt,
.sp main .contents .text dl.recruit_time dd {
  float: none;
  width: auto;
  margin-bottom: 10px;
  padding-top: 10px;
}

main .contents .text dl.recruit_time dt {
  width: 7em;
  clear: both;
}

main .contents .text dl.recruit_time dt:before {
  content: "";
  display: inline-block;
  margin-right: 10px;
  width: 1.5rem;
  height: 1.5rem;
  background: url(assets/img/ico_clock.png) no-repeat;
  background-size: cover;
  vertical-align: bottom;
}

main .contents .text dl.recruit_time dd {
  width: calc(100% - 7em);
}

.sp main .contents .text dl.recruit_time dd {
  padding-top: 0;
  border-top: none;
}

main .contents .column > a.text_block {
  pointer-events: none;
}

main .contents .column > a.text_block .title {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 20.4px;
  line-height: 1.275rem;
}

.ico_spec {
  margin-top: 0.5rem;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 20.4px;
  line-height: 1.275rem;
}

.ico_spec > span {
  display: inline-block !important;
  vertical-align: top;
  margin-right: 1rem;
}

.ico_spec > span:first-child {
  padding: 0 10px;
  width: 6rem;
  border: 1px solid #000;
  text-align: center;
}

.ico_spec > span + span {
  width: calc(100% - 7rem - 20px);
}

.ico_spec.auto > span {
  width: auto;
}

.ico_spec.white > span:first-child {
  background: #fff;
}

.ico_spec + .ico_spec {
  margin-top: 10px !important;
}

.ico_spec.large > span:first-child {
  width: auto;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

main .contents .table > table > tr.subtable > td:last-child:before,
main .contents .table > table > * > tr.subtable > td:last-child:before {
  display: block;
}

main .contents .text p.ico_spec {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 20.4px;
  line-height: 1.275rem;
}

main .contents .table table .ico_spec > span {
  margin-right: 0;
}

main .contents .products_h3 > div {
  text-align: center;
}

main .contents .products_h3 > div h3 {
  margin-bottom: 0;
}

.sp main .contents .products_h3 > div h3 {
  margin-bottom: 10px;
}

main .contents .products_h3 > div > * {
  display: inline-block;
}

main .contents .products_h3 > div .button {
  margin-left: 20px;
  vertical-align: top;
}

main .contents .products_h3 > div .button a {
  min-width: 270px;
}

main .contents .products_h3 ul {
  text-align: center;
  margin-bottom: 6px;
}

.sp main .contents .products_h3 ul {
  margin-top: 20px;
}

main .contents .products_h3 ul li {
  display: inline-block;
}

.sp main .contents .products_h3 ul li {
  display: block;
}

main .contents .products_h3 ul li a {
  position: relative;
  display: inline-block;
  padding-right: 30px;
}

main .contents .products_h3 ul li a:after {
  content: "";
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  right: 0;
  top: 50%;
  margin-top: -10px;
  background: url(assets/img/next.png) no-repeat center center;
}

main .contents .products_h3 ul li + li {
  margin-left: 50px;
}

.sp main .contents .products_h3 ul li + li {
  margin: 20px 0 0 0;
}

main .contents .products_h3 ul li img {
  vertical-align: middle;
  margin-right: 10px;
}

.sp main .contents .products_h3 ul li img {
  display: block;
  margin-bottom: 5px;
}

* + .tab.newold {
  margin-top: 40px;
}

.tab.newold ul li + li {
  border-left: 1px solid #fff;
}

.attention {
  color: #f00;
}

main .contents .jirei_area {
  margin-top: 35px;
}

main .contents .jirei_box ul {
  margin: -0.2rem 0 0 -0.2rem;
}

main .contents .jirei_box ul li {
  display: inline-block;
  margin: 0.2rem 0 0 0.2rem;
  padding: 0 0.2rem;
  text-indent: 0;
  border: 1px solid #ccc;
  color: #ccc;
}

main .contents .jirei_box ul li.on {
  border: 1px solid #000;
  color: #000;
}

main .contents .jirei_box ul li:before {
  display: none;
}

main .contents .jirei_box .column {
  margin-top: 10px;
}

main .contents .jirei_box .column > div:first-child {
  width: calc(100% - 210px);
}

.tablet main .contents .jirei_box .column > div:first-child {
  width: calc(100% - 20px);
}

.tablet main .contents .jirei_box .column > div {
  float: none;
}

.tablet main .contents .jirei_box .column > div .button.wide > div {
  margin-top: 10px;
}

main .contents ul.year_list {
  margin: -0.5rem 0 0 -0.5rem;
  letter-spacing: -1em;
}

main .contents ul.year_list li {
  display: inline-block;
  margin: 0.5rem 0 0 0.5rem;
  text-indent: 0;
  letter-spacing: normal;
}

main .contents ul.year_list li:before {
  display: none;
}

main .contents ul.year_list li:after {
  content: "/";
  display: inline;
  padding-left: 0.5rem;
}

main .contents ul.year_list li:last-child:after {
  display: none;
}

main .contents .product_lifecycle_box {
  margin-top: 60px;
}

.sp main .contents .product_lifecycle_box {
  margin-top: 30px;
}

main .contents .product_lifecycle_box.img_right .image,
main .contents .product_lifecycle_box.img_left .text {
  margin-left: auto;
  margin-right: 0;
}

.sp main .contents .product_lifecycle_box.img_right .image,
.sp main .contents .product_lifecycle_box.img_left .text {
  margin: auto;
}

main .contents .product_lifecycle_box.img_left .text .number {
  text-align: right;
}

.sp main .contents .product_lifecycle_box.img_left .text .number {
  text-align: left;
}

.sp main .contents .product_lifecycle_box.img_left .image {
  margin: auto;
}

main .contents .product_lifecycle_box > div {
  width: 55%;
}

.sp main .contents .product_lifecycle_box > div {
  width: 100%;
}

main .contents .product_lifecycle_box > div.image {
  position: relative;
  z-index: 1;
}

main .contents .product_lifecycle_box > div.text {
  position: relative;
  margin-top: -10rem;
  color: #fff;
  z-index: 10;
}

.sp main .contents .product_lifecycle_box > div.text {
  margin-top: 0;
}

main .contents .product_lifecycle_box > div.text .number {
  font-size: 60px;
  font-size: 3.75rem;
  line-height: 78px;
  line-height: 4.875rem;
  color: #b5b5b5;
}

.sp main .contents .product_lifecycle_box > div.text .number {
  font-size: 36px;
  font-size: 2.25rem;
  line-height: 46.8px;
  line-height: 2.925rem;
}

main .contents .product_lifecycle_box > div.text > div {
  padding: 20px;
  background: #004295;
}

.sp main .contents .product_lifecycle_box > div.text > div {
  padding: 10px;
}

main .contents .product_lifecycle_box > div.text > div h3 {
  margin-bottom: 20px;
}

.sp main .contents .product_lifecycle_box > div.text > div h3 {
  margin-bottom: 10px;
}

.rikunabi {
  display: block;
  padding: 30px 0;
  margin-bottom: 40px;
  background: #f9f9f9;
}

.sp .rikunabi {
  padding: 20px 0;
}

.rikunabi p {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
  text-align: center;
  color: #000;
}

.sp .rikunabi p {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
}

.rikunabi p img {
  padding: 0 20px;
  width: 20%;
  max-width: 177px;
  vertical-align: middle;
}

.sp .rikunabi p img {
  display: block;
  margin: auto;
  width: auto;
  padding-top: 20px;
}

.rikunabi + div {
  padding-bottom: 0 !important;
}

main .contents > div.recruit_contact {
  padding: 0 20px;
}

.sp main .contents > div.recruit_contact {
  padding: 0 10px;
}

.recruit_action {
  padding: 20px 0;
  margin-bottom: 80px;
  border-top: 1px solid #dbdbdb;
  border-bottom: 1px solid #dbdbdb;
}

.sp .recruit_action {
  padding: 0;
}

.recruit_action > div {
  display: table;
  position: relative;
  width: 100%;
  max-width: 1220px;
  padding: 0 20px;
  margin: auto;
}

.recruit_action > div > div {
  display: table-cell;
  width: 33.33%;
  padding: 30px 0;
  vertical-align: top;
  text-align: center;
}

.sp .recruit_action > div > div {
  display: block;
  width: 100%;
  padding: 15px 0;
}

.recruit_action > div > div + div {
  border-left: 1px solid #dbdbdb;
}

.sp .recruit_action > div > div + div {
  border-left: none;
  border-top: 1px solid #dbdbdb;
}

.column.recruit_menu .image {
  position: relative;
}

.column.recruit_menu .image > div {
  position: absolute;
  width: 90%;
  padding: 10px 10px 0 0;
  text-align: center;
  bottom: 0;
  left: 0;
  background: #fff;
  z-index: 10;
}

.sp .column.recruit_menu .image > div {
  position: static;
  width: 100%;
  padding: 0;
}

.column.recruit_menu .image > div .type {
  margin-bottom: 10px;
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 28.6px;
  line-height: 1.7875rem;
  font-weight: bold;
}

.sp .column.recruit_menu .image > div .type {
  margin: 10px 0;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

.column.recruit_menu .image > div .name {
  margin-top: 0;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
  font-weight: bold;
}

.sp .column.recruit_menu .image > div .name {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

.column.recruit_menu .image > div p {
  margin-top: 0;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

.sp .column.recruit_menu .image > div p {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 20.4px;
  line-height: 1.275rem;
}

.column.recruit_menu .image + .recruit_menu {
  margin-top: 0 !important;
}

main .contents .background > .inner {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 40px 20px;
}

.sp main .contents .background > .inner {
  padding: 20px 10px;
}

main .contents .background.employee_profiles {
  margin: 0 0 80px 0;
  background: rgba(0, 66, 149, 0.2);
}

.sp main .contents .background.employee_profiles {
  margin: 20px 0 40px 0;
}

main .contents .background.gemba {
  margin: 0 0 60px 0;
  background: #e9eff5;
}

.sp main .contents .background.gemba {
  margin: 30px 0 40px 0;
}

main .contents .profiles {
  position: relative;
  z-index: 1;
}

main .contents .profiles .image img {
  width: 100%;
}

main .contents .profiles.left .lead {
  left: 0;
  right: auto;
}




main .contents .profiles .lead {
  position: absolute;
  padding: 5rem 3rem;
  right: 0;
  bottom: 0;
  background: #fff;
  z-index: 10;
}

.sp main .contents .profiles .lead {
  position: static;
  padding: 0;
  margin-top: 10px;
}

main .contents .profiles .lead p {
  font-size: 32px;
  font-size: 2rem;
  line-height: 48px;

  line-height: 3rem;
  font-weight: bold;
}

.sp main .contents .profiles .lead p {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 33px;
  line-height: 2.0625rem;
}

main .contents .column.col2.image_type01 > *:first-child {
  width: calc((100% - 20px * 2 - 4px) * 0.3333);
}

main .contents .column.col2.image_type01 > *:last-child {
  width: calc((100% - 20px * 2 - 4px) * 0.6666);
}

main .contents .column.col2.image_type01 > * {
  margin-bottom: 0;
}

main .contents .column.col2.image_type02 > *:first-child {
  width: calc((100% - 20px * 2 - 4px) * 0.75);
}

main .contents .column.col2.image_type02 > *:last-child {
  width: calc((100% - 20px * 2 - 4px) * 0.25);
}

main .contents .column.col2.image_type03 > *:first-child {
  width: calc((100% - 20px * 2 - 4px) * 0.1666);
}

main .contents .column.col2.image_type03 > *:last-child {
  width: calc((100% - 20px * 2 - 4px) * 0.8333);
}

main .contents .column.col2.image_type04 > *:first-child {
  width: calc((100% - 20px * 2 - 4px) * 0.25);
}

main .contents .column.col2.image_type04 > *:last-child {
  width: calc((100% - 20px * 2 - 4px) * 0.75);
}

main .contents .column.col2.image_type05 > *:first-child {
  width: calc((100% - 20px * 2 - 4px) * 0.56);
}

main .contents .column.col2.image_type05 > *:last-child {
  width: calc((100% - 20px * 2 - 4px) * 0.44);
}

main .contents .column.spcol1 {
  margin-bottom: 0 !important;
}

.sp main .contents .column.spcol1 > * {
  float: none;
}

.sp main .contents .column.spcol1 > * + * {
  margin-top: 10px;
}

main .contents .text.employee_profiles_box .title {
  margin-top: 40px !important;
  padding-bottom: 20px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
  font-weight: bold;
  border-bottom: 1px solid #000;
}

.sp main .contents .text.employee_profiles_box .title {
  margin-top: 20px !important;
  padding-bottom: 10px;
}

.sp main .contents .text.employee_profiles_box p {
  margin-top: 10px !important;
}

main .contents .text.job_profiles_box {
  margin-top: -80px;
}

.sp main .contents .text.job_profiles_box {
  margin-top: -60px;
}

.bottom_section {
  margin-bottom: 80px !important;
}

.sp .bottom_section {
  margin-bottom: 40px !important;
}

.bottom_stack {
  margin-bottom: 0 !important;
}

.bottom_paragraph {
  margin-bottom: 20px !important;
}

.sp .factory_top {
  margin-top: -20px !important;
}

.factory_tab {
  margin: 40px 0 -5px 16.5%;
  padding: 0.8rem 2px 0;
  overflow: hidden;
  text-align: center;
}

.factory_tab:after {
  content: "";
  display: block;
  clear: both;
}

.sp .factory_tab {
  margin-left: 0;
  margin-top: 20px;
}

.factory_tab li {
  float: left;
  margin: 0 2px -1px 2px;
  width: 40%;
}

.sp .factory_tab li {
  width: calc(50% - 4px);
}

.factory_tab a {
  display: table;
  width: 100%;
  padding: 0 5px 1px 5px;
  height: 3rem;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  text-align: center;
  background: #004295;
  color: #fff;
}

.factory_tab a span {
  display: table-cell;
  vertical-align: middle;
}

.factory_tab .current a {
  color: #000000;
  height: 3.5rem;
  margin-top: -0.5rem;
  background: #fff;
  box-shadow: 0 0 3px 3px rgba(0, 0, 0, 0.2);
  transition: 0.2s;
}

.factory_tab .current a:after {
  width: 100%;
}

.button.common a {
  width: auto;
  min-width: 12rem;
}

.button.common a span {
  padding: 10px 40px 10px 10px;
  white-space: nowrap;
}

.button.common a span.break {
  white-space: normal;
}

.button.common.back {
  margin: 40px 0 0 0;
}

.sp .button.common.back {
  margin-top: 30px;
}

.button.common.back a span {
  background: url(assets/img/ico_button_back.png) no-repeat center right 10px;
}

.button.common.back > div {
  margin: 0;
}

.button.map a {
  width: 30%;
  height: 6.5rem;
  min-width: 170px;
  text-align: center;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 30.6px;
  line-height: 1.9125rem;
}

.sp .button.map a {
  width: auto;
  height: auto;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

.button.map a span {
  padding: 10px 10px 10px 50px;
  background: url(assets/img/ico_map.png) no-repeat center left 20px;
  background-size: 30px 30px;
  text-align: center;
}

.sp .button.map a span {
  background-size: 20px 20px;
}

main .contents .factory_link_area {
  padding: 5px 0;
  margin: 0 0 80px 0;
  border-top: 1px solid #dbdbdb;
  border-bottom: 1px solid #dbdbdb;
}

.sp main .contents .factory_link_area {
  padding: 0;
  margin: -20px 0 40px 0;
}

main .contents .factory_link_area .col2_area {
  display: table;
  width: 100%;
  table-layout: fixed;
}

.sp main .contents .factory_link_area .col2_area {
  display: block;
}

main .contents .factory_link_area .col2_area > div {
  display: table-cell;
  width: 50%;
  padding: 10px;
  border-left: 1px solid #dbdbdb;
  vertical-align: middle;
}

main .contents .factory_link_area .col2_area > div .text .tel {
  margin-top: 20px;
  font-size: 32px;
  font-size: 2rem;
  line-height: 41.6px;
  line-height: 2.6rem;
}

.sp main .contents .factory_link_area .col2_area > div .text .tel {
  margin-top: 10px;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 36.4px;
  line-height: 2.275rem;
}

main .contents .factory_link_area .col2_area > div .text + .text {
  padding-top: 20px;
  border-top: 1px solid #dbdbdb;
}

.sp main .contents .factory_link_area .col2_area > div {
  display: block;
  width: 100%;
  padding: 20px 10px;
  border-left: none;
}

main .contents .factory_link_area .col2_area > div:last-child {
  border-right: 1px solid #dbdbdb;
}

.sp main .contents .factory_link_area .col2_area > div:last-child {
  border-top: 1px solid #dbdbdb;
  border-right: none;
}

main .contents .factory_link_area .col3_area {
  display: table;
  width: 100%;
  table-layout: fixed;
}

.sp main .contents .factory_link_area .col3_area {
  display: block;
}

main .contents .factory_link_area .col3_area > div {
  display: table-cell;
  width: 33.33%;
  padding: 10px;
  border-left: 1px solid #dbdbdb;
  vertical-align: middle;
}

main .contents .factory_link_area .col3_area > div > a {
  position: relative;
  display: block;
}

main .contents .factory_link_area .col3_area > div .text {
  text-align: center;
}

main .contents .factory_link_area .col3_area > div .text .title {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 30.6px;
  line-height: 1.9125rem;
}

main .contents .factory_link_area .col3_area > div .text .title:before {
  content: "";
  display: inline-block;
  width: 25px;
  height: 37.5px;
  margin-right: 10px;
  background: url(assets/img/ico_tell.png) no-repeat center center;
  background-size: cover;
  vertical-align: middle;
}

.sp main .contents .factory_link_area .col3_area > div .text .title {
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

main .contents .factory_link_area .col3_area > div .text .tel {
  display: block;
  margin-top: 0.5rem;
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 44px;
  line-height: 2.75rem;
}

.sp main .contents .factory_link_area .col3_area > div .text .tel {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 30.6px;
  line-height: 1.9125rem;
}

.sp main .contents .factory_link_area .col3_area > div {
  display: block;
  width: 100%;
  padding: 20px 10px;
  border-left: none;
}

.sp main .contents .factory_link_area .col3_area > div:nth-of-type(1) {
  width: 50%;
  float: left;
  padding: 20px 5px 20px 0;
}

.sp main .contents .factory_link_area .col3_area > div:nth-of-type(2) {
  width: 50%;
  float: left;
  padding: 20px 0 20px 5px;
}

main .contents .factory_link_area .col3_area > div:last-child {
  border-right: 1px solid #dbdbdb;
}

.sp main .contents .factory_link_area .col3_area > div:last-child {
  border-top: 1px solid #dbdbdb;
  border-right: none;
}

main .contents .factory_link_area .button a {
  width: auto;
  min-width: 50%;
}

main .contents .factory_link_area .text .title {
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 31.2px;
  line-height: 1.95rem;
}

.sp main .contents .factory_link_area .text .title {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
}

main .contents .factory_link_area .text .title span {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
}

.sp main .contents .factory_link_area .text .title span {
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

main .contents .background.factory_link_area .inner {
  padding: 0 20px;
}

.sp main .contents .background.factory_link_area .inner {
  padding: 0 10px;
}

main .contents .background.factory_link_area .inner .column {
  padding: 10px 0;
}

main .contents .background.factory_link_area .inner .column > * {
  float: none;
  display: inline-block;
  margin-bottom: 0;
}

.factory_select {
  position: relative;
  overflow: hidden;
}

.factory_select ul {
  position: relative;
  margin: auto;
  width: 100%;
  text-align: center;
}

.factory_select ul:after {
  content: "";
  display: block;
  clear: both;
}

.factory_select ul li {
  position: relative;
  display: table;
  float: left;
  padding: 10px 0;
}

.factory_select ul li > a {
  display: table-cell;
  width: 100%;
  height: 100%;
  padding: 5px;
  color: #004295;
  background: #fff;
  border: 2px solid #004295;
  border-radius: 10px;
  vertical-align: bottom;
  opacity: 0.35;
}

.factory_select ul li > a:hover {
  opacity: 0.35;
}

.tablet .factory_select ul li > a {
  vertical-align: middle;
}

.factory_select ul li > a span {
  display: block;
  margin-top: 0.5rem;
}

.sp .factory_select ul li > a span {
  font-size: 9px;
  font-size: 0.5625rem;
  line-height: 11.7px;
  line-height: 0.73125rem;
}

.factory_select ul li > a .image {
  display: table;
  width: 100%;
  height: 70%;
}

.tablet .factory_select ul li > a .image {
  display: block;
  height: auto;
}

.factory_select ul li > a .image img.on {
  display: none;
}

.factory_select ul li > a .image > span {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}

.tablet .factory_select ul li > a .image > span {
  display: block;
}

.factory_select ul li.on a {
  color: #fff;
  opacity: 1;
  background: #004295;
}

.factory_select ul li.on a .image img {
  display: none;
}

.factory_select ul li.on a .image img.on {
  display: block;
}

.factory_select ul li + li {
  margin-left: 3%;
}

.factory_select ul li.list01 {
  padding-right: 3%;
  margin-left: 1.5%;
  width: 23%;
  border-right: 1px dotted #707070;
}

.factory_select ul li.list01.on a {
  background: #00a4cf;
  border: 2px solid #00a4cf;
}

.factory_select ul li.list01 > a .image {
  height: 50%;
}

.tablet .factory_select ul li.list01 > a .image {
  height: auto;
}

.tablet .factory_select ul li.list01 {
  width: 100%;
  padding-right: 0;
  border: none;
  margin-left: 0;
}

.tablet .factory_select ul li.list01 .image {
  display: inline-block;
  width: auto;
  vertical-align: middle;
}

.tablet .factory_select ul li.list01 .image span {
  display: inline-block;
  margin: 0;
}

.tablet .factory_select ul li.list01 a > span {
  display: inline-block;
  margin: 0;
  padding-left: 10px;
  vertical-align: middle;
}

.factory_select ul li.list02 {
  width: 20%;
}

.factory_select ul li.list02 > a .image {
  height: 50%;
}

.tablet .factory_select ul li.list02 > a .image {
  height: auto;
}

.tablet .factory_select ul li.list02 {
  width: 100%;
  margin-left: 0;
}

.tablet .factory_select ul li.list02 .image {
  display: inline-block;
  width: auto;
  vertical-align: middle;
}

.tablet .factory_select ul li.list02 .image span {
  display: inline-block;
  margin: 0;
}

.tablet .factory_select ul li.list02 a > span {
  display: inline-block;
  margin: 0;
  padding-left: 10px;
  vertical-align: middle;
}

.factory_select ul li.list03 {
  width: 10%;
}

.tablet .factory_select ul li.list03 {
  width: 23.5%;
  margin-left: 0;
}

.tablet .factory_select ul li.list03 .image {
  display: inline-block;
  width: 30%;
  vertical-align: middle;
}

.tablet .factory_select ul li.list03 .image span {
  display: inline-block;
  margin: 0;
}

.tablet .factory_select ul li.list03 a > span {
  display: inline-block;
  margin: 0;
  padding-left: 10px;
  vertical-align: middle;
}

.factory_select ul li.list04 {
  width: 10%;
}

.tablet .factory_select ul li.list04 {
  width: 23.5%;
  margin-left: 2%;
}

.tablet .factory_select ul li.list04 .image {
  display: inline-block;
  width: 30%;
  vertical-align: middle;
}

.tablet .factory_select ul li.list04 .image span {
  display: inline-block;
  margin: 0;
}

.tablet .factory_select ul li.list04 a > span {
  display: inline-block;
  margin: 0;
  padding-left: 10px;
  vertical-align: middle;
}

.factory_select ul li.list05 {
  width: 10%;
}

.tablet .factory_select ul li.list05 {
  width: 23.5%;
  margin-left: 2%;
}

.tablet .factory_select ul li.list05 .image {
  display: inline-block;
  width: 30%;
  vertical-align: middle;
}

.tablet .factory_select ul li.list05 .image span {
  display: inline-block;
  margin: 0;
}

.tablet .factory_select ul li.list05 a > span {
  display: inline-block;
  margin: 0;
  padding-left: 10px;
  vertical-align: middle;
}

.factory_select ul li.list06 {
  width: 10%;
}

.tablet .factory_select ul li.list06 {
  width: 23.5%;
  margin-left: 2%;
}

.tablet .factory_select ul li.list06 .image {
  display: inline-block;
  width: 30%;
  vertical-align: middle;
}

.tablet .factory_select ul li.list06 .image span {
  display: inline-block;
  margin: 0;
}

.tablet .factory_select ul li.list06 a > span {
  display: inline-block;
  margin: 0;
  padding-left: 10px;
  vertical-align: middle;
}

.sp .factory_select ul li.list06 a > span {
  width: 70%;
}

.factory_select ul li.list06 a > span br {
  display: none;
}

.tablet .factory_select ul li.list06 a > span br {
  display: inline-block;
}

.factory_select .title {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 30px;
  line-height: 1.875rem;
  font-weight: bold;
  text-align: center;
}

dl.factory {
  border-bottom: 1px solid #dbdbdb;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

dl.factory:after {
  content: "";
  display: block;
  clear: both;
}

dl.factory dt {
  float: left;
  padding: 10px 0 10px 20px;
  width: 7rem;
  border-top: 1px solid #dbdbdb;
}

dl.factory dd {
  float: left;
  margin: 0;
  padding: 10px 20px;
  width: calc(100% - 7rem);
  border-top: 1px solid #dbdbdb;
}

dl.factory .current a {
  color: #707070;
}

.gm-style-iw-d p.title {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 10px;
}

.gm-style-iw-d p.detail {
  margin-bottom: 10px;
}

.gm-style-iw-d ul li {
  display: inline-block;
  padding: 3px 5px;
  border: 1px solid #ccc;
  color: #ccc;
}

.gm-style-iw-d ul li + li {
  margin-left: 5px;
}

.gm-style-iw-d ul li.on {
  border: 1px solid #000;
  color: #000;
}

.gm-style-iw-d .button + ul {
  margin-top: 15px;
}

.relate .slick-slide img {
  background: #fff;
}

main .contents .logbook_block {
  position: relative;
  z-index: 10;
  background: url(../../company/images/bg_logbook_block.png) repeat-x bottom;
}

main .contents .logbook_block:before {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 60px;
  top: 0;
  left: 0;
  z-index: 2;
  background: -moz-linear-gradient(rgba(0, 164, 207, 0.2), rgba(255, 255, 255, 0));
  background: -webkit-linear-gradient(rgba(0, 164, 207, 0.2), rgba(255, 255, 255, 0));
  background: -ms-linear-gradient(rgba(0, 164, 207, 0.2), rgba(255, 255, 255, 0));
}

main .contents .logbook_block .inner {
  position: relative;
  z-index: 10;
}

main .contents .logbook_block .imagebox .text > div {
  display: table;
  width: 100%;
}

main .contents .logbook_block .imagebox .text > div > div {
  display: table-cell;
}

.sp main .contents .logbook_block .imagebox .text > div > div {
  display: block;
  padding-left: 0;
  margin-top: 20px;
  width: 100%;
}

main .contents .logbook_block .imagebox .text .link {
  width: 60%;
  padding-left: 20px;
  vertical-align: middle;
}

main .contents .logbook_block .imagebox .text .link .button > * {
  display: inline-block;
  vertical-align: middle;
}

.sp main .contents .logbook_block .imagebox .text .link .button > * {
  display: block;
}

main .contents .logbook_block .imagebox .text .link ul {
  margin: 0 0 0 1.5rem;
}

.sp main .contents .logbook_block .imagebox .text .link ul {
  margin: 20px 0 0 0;
  text-align: center;
}

main .contents .logbook_block .imagebox .text .link ul li {
  margin-left: 0;
  text-indent: 0;
}

main .contents .logbook_block .imagebox .text .link ul li:before {
  display: none;
}

main .contents .logbook_block .imagebox .text .link ul li a {
  position: relative;
  margin-right: 30px;
  min-width: 0;
  background: none;
}

main .contents .logbook_block .imagebox .text .link ul li a:before {
  display: none;
}

main .contents .logbook_block .imagebox .text .link ul li a:after {
  content: "";
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  right: -30px;
  top: 50%;
  margin-top: -10px;
  background: url(assets/img/ico_button_white.png) no-repeat center center;
}

main .contents .logbook_block .text .title {
  margin-bottom: 20px;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 33.8px;
  line-height: 2.1125rem;
}

.sp main .contents .logbook_block .text .title {
  margin-bottom: 20px;
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
}

.product_new {
  font-weight: bold;
  color: #f00;
}

main .contents .wallpaper h2 {
  margin: 0 0 30px 0;
}

.sp main .contents .wallpaper h2 {
  margin-bottom: 15px;
}

main .contents .wallpaper .button {
  margin-top: 20px;
}

.sp main .contents .wallpaper .button {
  margin-top: 10px;
}

main .contents .wallpaper h3 {
  margin: 30px 0;
}

.sp main .contents .wallpaper h3 {
  margin: 15px;
}

main .contents .wallpaper .col3 .col2 .button.common a {
  min-width: 9rem;
}

.tablet main .contents .wallpaper .tabletcol1 > * {
  width: calc((100% - 10px * 1 - 4px) / 1) !important;
}

.sp main .contents .wallpaper .column > *:first-child {
  margin-bottom: 0;
}

.auto_slide .slick-slide {
  height: auto !important;
  border: none;
}

.auto_slide .slick-slide img {
  position: static;
  -webkit-transform: none;
  transform: none;
}

main .contents .basic {
  margin-top: 10px;
}

main .contents .basic .image > a {
  max-width: 580px;
}

.reception_block {
  margin-top: 40px;
  border-bottom: 1px solid #dbdbdb;
}

.sp .reception_block {
  margin-top: 20px;
}

.reception_block p {
  padding: 20px;
  text-align: center;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 47.6px;
  line-height: 2.975rem;
}

.sp .reception_block p {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 37.4px;
  line-height: 2.3375rem;
}

.reception_block p.title {
  background: #dbdbdb;
}

main .contents .text ul.line_list li {
  display: inline-block;
  padding-right: 20px;
}

main .contents .text p.meister_name {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 47.6px;
  line-height: 2.975rem;
}

.sp main .contents .text p.meister_name {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 37.4px;
  line-height: 2.3375rem;
}

.hellonet_box {
  padding: 20px;
  margin-top: 20px;
  text-align: center;
  background: #f3f3f3;
}

.hellonet_box > * {
  display: inline-block !important;
  vertical-align: middle;
}

.hellonet_box > * + * {
  margin-left: 3rem;
}

.sp .hellonet_box > * {
  display: block !important;
}

.sp .hellonet_box > * + * {
  margin-left: 0;
  margin-top: 10px;
}

main .contents .news .newslist.hellonet li div .link a > * {
  vertical-align: middle;
}

.sp main .contents .news .newslist.hellonet li div .link a > * .pdf {
  display: block;
  margin-top: 10px;
  text-align: center;
}

main .contents .news .newslist.hellonet li div .link a > * .pdf:after {
  display: none;
}

.sp main .contents .news .newslist.hellonet li div .link a > * .pdf:after {
  display: inline-block;
}

ul.guide_list li div {
  display: inline-block;
  vertical-align: top;
}

.sp ul.guide_list li div {
  display: block;
}

.factory_ico {
  display: table;
  height: 36px;
  margin: auto;
}

.factory_ico > span {
  display: table-cell;
  vertical-align: bottom;
}

.factory_ico > span img {
  margin: 0 !important;
  display: block;
}

.message_name {
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 33.8px;
  line-height: 2.1125rem;
}

.sp .message_name {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
}

.accordion {
  position: relative;
  cursor: pointer;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

.accordion:hover {
  opacity: 0.7;
}

.accordion:before {
  content: "";
  display: block;
  position: absolute;
  right: 10px;
  width: 1.2rem;
  height: 2px;
  background-color: #e30000;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  -ms-border-radius: 4px;
  -moz-border-radius: 4px;
  -o-border-radius: 4px;
  top: 50%;
  transform: rotate(0deg);
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -ms-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transition: all 0.4s;
}

.accordion:after {
  content: "";
  display: block;
  position: absolute;
  right: 10px;
  width: 1.2rem;
  height: 2px;
  background-color: #e30000;
  border-radius: 4px;
  top: 50%;
  transform: rotate(90deg);
  -webkit-transform: rotate(90deg);
  -moz-transform: rotate(90deg);
  -ms-transform: rotate(90deg);
  -o-transform: rotate(90deg);
  transition: all 0.4s;
}

.accordion.open:before {
  display: none;
}

.accordion.open:after {
  transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
}

.accordion + div {
  display: none;
}

.lyd_block {
  display: table;
  margin-top: -40px;
}

.sp .lyd_block {
  margin-top: 0;
}

.lyd_block > div {
  display: table-cell;
  width: 50%;
}

.lyd_block > div.lyd_block_right {
  background: url(../../company/images/lyd02.jpg) no-repeat center center;
  background-size: cover;
}

.lyd_block .lead_s {
  padding-bottom: 20px;
}

.sp .lyd_block .lead_s {
  padding-bottom: 0;
}

#gallery_scroll {
  position: relative;
  width: 100%;
  max-width: none;
  height: 348px;
  padding: 0;
  overflow: hidden;
}

.tablet #gallery_scroll {
  height: 232px;
}

.sp #gallery_scroll {
  height: 174px;
}

#gallery_scroll > div {
  position: absolute;
}

#gallery_scroll > div > div {
  display: table;
}

#gallery_scroll > div > div > div {
  display: table-cell;
  vertical-align: top;
}

#gallery_scroll > div > div > div > ul:after {
  content: "";
  display: block;
  clear: both;
}

#gallery_scroll > div > div > div > ul > li {
  float: left;
  height: 348px;
  line-height: 0;
}

.tablet #gallery_scroll > div > div > div > ul > li {
  height: 232px;
}

.sp #gallery_scroll > div > div > div > ul > li {
  height: 174px;
}

#gallery_scroll > div > div > div > ul > li img {
  height: 348px;
  width: auto;
}

.tablet #gallery_scroll > div > div > div > ul > li img {
  height: 232px;
}

.sp #gallery_scroll > div > div > div > ul > li img {
  height: 174px;
}

main .contents .background.lyd .inner {
  padding: 6rem 20px;
  margin-top: -80px;
  max-width: 1100px;
}

.sp main .contents .background.lyd .inner {
  padding: 40px 20px;
  margin-top: 0;
}

main .contents .background.lyd .image {
  vertical-align: middle;
}

main .contents .background.lyd .image img {
  width: 66%;
}

.sp main .contents .background.lyd .image img {
  min-width: 220px;
}

.sp main .contents .background.lyd {
  padding: 0;
}

main .contents .background.lyd .text {
  vertical-align: middle;
  max-width: none;
}

.sp main .contents .background.lyd .text {
  padding-top: 20px;
}

main .contents .background.lyd .text p {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

.sp main .contents .background.lyd .text p {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 20.4px;
  line-height: 1.275rem;
}

main .contents .imagebox.recruit {
  background: #004295;
  color: #fff;
}

main .contents .imagebox.recruit > div {
  vertical-align: middle;
}

main .contents .imagebox.recruit .text {
  padding: 20px !important;
}

.telnumber {
  cursor: text !important;
  color: #000000;
}

.telnumber:hover {
  opacity: 1 !important;
}

.tablet .telnumber {
  cursor: pointer !important;
  color: #0000ee;
}

main .contents .service_toparea {
  background: url(../../service/images/service_toparea_bg.jpg) no-repeat center center;
  background-size: cover;
}

main .contents .service_toparea .inner {
  padding: 40px 20px 0 20px;
}

.sp main .contents .service_toparea .inner {
  padding: 20px 10px 0 10px;
  margin-bottom: 30px;
}

main .contents .service_toparea .lead p {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 28.6px;
  line-height: 1.7875rem;
}

.sp main .contents .service_toparea .lead p {
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

main .contents .service_toparea h3 {
  padding: 0.5rem 1rem;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
  background: #fff;
  border-radius: 2rem;
  text-align: center;
  font-weight: normal;
}

.sp main .contents .service_toparea h3 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

main .contents .service_toparea h4 {
  margin-bottom: 10px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
  font-weight: normal;
}

.sp main .contents .service_toparea h4 {
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

main .contents .service_toparea .text {
  margin-top: 20px;
  text-align: center;
}

.sp main .contents .service_toparea .text {
  text-align: left;
}

main .contents .service_toparea .text p {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

.sp main .contents .service_toparea .text p {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 20.4px;
  line-height: 1.275rem;
}

main .contents .service_toparea .col2 .col3 .image img {
  border: 2px solid #fff;
  border-radius: 50%;
  overflow: hidden;
}

.service_toparea2 {
  margin-top: 40px;
  background: url(../../service/images/service2.jpg) no-repeat center center;
}

.service_toparea2 .inner {
  padding: 0 !important;
}

.pc .service_toparea2 .inner {
  padding: 0 20px !important;
  background: #fff;
}

.pagedown {
  position: relative;
  padding-right: 30px;
  margin-top: 20px;
  text-align: right;
}

.pagedown:after {
  content: "";
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  right: 0;
  bottom: 0;
  margin-top: -10px;
  background: url(assets/img/anchor.png) no-repeat center center;
}

main .contents .pack_logo > * {
  display: inline-block;
  vertical-align: middle;
}

main .contents .pack_logo h4 {
  margin: 0;
}

main .contents .pack_logo .image img {
  height: 2.1125rem;
}

.sp main .contents .pack_logo .image img {
  height: 1.625rem;
}

main .contents .image img.pack_ico {
  height: 2.2rem;
}

main .contents .pack_box h4 {
  padding: 10px;
  margin-bottom: 0;
}

main .contents .pack_box h4 .image img {
  height: 1rem;
}

.sp main .contents .pack_box h4 .image img {
  height: 1rem;
}

main .contents .pack_box .text {
  padding: 10px;
}

main .contents .pack_box.bg01 {
  border: 1px solid #00adee;
}

main .contents .pack_box.bg01 h4 {
  background: #00adee;
}

main .contents .pack_box.bg02 {
  border: 1px solid #2463af;
}

main .contents .pack_box.bg02 h4 {
  background: #2463af;
}

main .contents .pack_box.bg03 {
  border: 1px solid #98843a;
}

main .contents .pack_box.bg03 h4 {
  background: #98843a;
}

main .contents .pack_point .imagebox {
  padding: 10px 10px;
  height: 100%;
  background: #f2f2f2;
}

main .contents .pack_point .imagebox > * {
  vertical-align: middle;
}

main .contents .pack_point .imagebox .text {
  padding-left: 10px;
}

.border_block {
  border-top: 1px solid #dbdbdb;
  border-bottom: 1px solid #dbdbdb;
}

main .contents .border_block .column.col2.image_type02 > div {
  margin-bottom: 0;
  display: table;
}

main .contents .border_block .column.col2.image_type02 > div > * {
  display: table-cell;
  vertical-align: middle;
}

.auto_slide .sc_left {
  position: absolute;
  width: 30px;
  height: 30px;
  top: calc(50% - 15px);
  left: 10px;
  background: #004295;
  border-radius: 50%;
  cursor: pointer;
  z-index: 100;
}

.auto_slide .sc_left.slick-disabled {
  background: #aaa;
  cursor: auto;
}

.auto_slide .sc_left:before {
  content: "";
  width: 8px;
  height: 8px;
  border: 0px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  -ms-transform: rotate(215deg);
  -webkit-transform: rotate(215deg);
  transform: rotate(215deg);
  position: absolute;
  top: 50%;
  left: 12px;
  margin-top: -4px;
}

.auto_slide .sc_right {
  position: absolute;
  width: 30px;
  height: 30px;
  top: calc(50% - 15px);
  right: 10px;
  background: #004295;
  border-radius: 50%;
  cursor: pointer;
  z-index: 100;
}

.auto_slide .sc_right.slick-disabled {
  background: #aaa;
  cursor: auto;
}

.auto_slide .sc_right:before {
  content: "";
  width: 8px;
  height: 8px;
  border: 0px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  -ms-transform: rotate(45deg);
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  position: absolute;
  top: 50%;
  right: 12px;
  margin-top: -4px;
}

.slide_img.groupimglist > div:not(:first-child) {
  display: none;
}

main .contents .hello_box h3 {
  padding: 10px;
  color: #fff;
  background: #3fa9f5;
}

main .contents .text p.address {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 47.6px;
  line-height: 2.975rem;
}

.sp main .contents .text p.address {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 37.4px;
  line-height: 2.3375rem;
}

main .contents .blue_back {
  margin: 10px 0;
  padding: 10px;
  background: #f1f7fb;
}

main .contents .blue_back.mt-0 {
  margin-top: 0;
}

main .contents .blue_back h3 {
  margin-bottom: 20px;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 31.2px;
  line-height: 1.95rem;
}

.sp main .contents .blue_back h3 {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 26px;
  line-height: 1.625rem;
}

.top_border {
  padding-top: 30px !important;
  margin-top: 30px !important;
  border-top: 1px solid #dbdbdb;
}

main .contents .text.factory_box {
  padding: 10px;
  margin-top: 10px;
  border: 1px solid #707070;
}

main .contents .text.factory_box p {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
  color: #707070;
}

.sp main .contents .text.factory_box p {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 20.4px;
  line-height: 1.275rem;
}

main .contents .news .newslist li div.button {
  display: block;
  width: auto;
}

main .contents .news .newslist li div.button a {
  width: auto;
  color: #fff;
}

main .contents .news .newslist li .text ul > li {
  border: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

main .contents dl.application_guideline dt {
  float: left;
  width: 6rem;
}

main .contents dl.application_guideline dd {
  padding-left: 6rem;
  margin: 0;
}

.background_top_stack {
  margin-top: -80px !important;
}

.sp .background_top_stack {
  margin-top: -40px !important;
}

#breadcrumbs + section {
  margin-top: 40px;
}

.sp #breadcrumbs + section {
  margin-top: 20px;
}

.sp main .contents .column.col3.spcol2 > :nth-of-type(3n + 1) {
  clear: none;
}

main .contents .background.pack {
  margin-top: -80px;
}

main .contents .background.pack h2 {
  color: #fff;
}

main .contents .background.pack .box {
  padding: 0;
  height: 100%;
  border: none;
  background: rgba(255, 255, 255, 0.7);
}

main .contents .background.pack .box h3 {
  padding: 10px;
  margin-bottom: 0;
  background: #fff;
}

main .contents .background.pack .box .text {
  padding: 10px;
}

main .contents h2 .image img.pack_ico {
  height: 3rem;
}

.sp main .contents h2 .image img.pack_ico {
  height: auto;
}

main .contents h2.pack_h2 {
  display: table;
  margin-bottom: 10px;
  width: 100%;
  height: 5rem;
  padding: 0 10px;
  table-layout: fixed;
}

main .contents h2.pack_h2 > * {
  display: table-cell;
  width: 100%;
  height: 100%;
  vertical-align: middle;
}

main .contents h2.pack_h2.bg01 {
  background: #00a4cf;
}

main .contents h2.pack_h2.bg02 {
  background: #1f497d;
}

main .contents h2.pack_h2.bg02_2 {
  position: relative;
  background: #1f497d;
}

.sp main .contents h2.pack_h2.bg02_2 {
  padding: 10px;
}

main .contents h2.pack_h2.bg02_2:after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 10px;
  background: #98843a;
  left: 0;
  bottom: -10px;
}

main .contents h2.pack_h2.bg02_2 .image.center > * {
  display: inline-block;
  vertical-align: middle;
}

main .contents h2.pack_h2.bg02_2 .image.center > * + * {
  margin-left: 1rem;
  color: #fff;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 28.6px;
  line-height: 1.7875rem;
}

.sp main .contents h2.pack_h2.bg02_2 .image.center > * + * {
  font-size: 22px;
  font-size: 1.375rem;
  line-height: 24.2px;
  line-height: 1.5125rem;
}

main .contents h2.pack_h2.bg03 {
  background: #dadec3;
}

.bg_gray {
  padding: 20px;
  background: #f2f2f2;
}

.bg_gold {
  padding: 20px;
  background: #98843a;
}

main .contents .bg_gray .column {
  margin-bottom: -20px;
}

main .contents .bg_gold.text ul {
  margin: 0;
  color: #fff;
}

main .contents .bg_gold.text ul li {
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 44.2px;
  line-height: 2.7625rem;
}

.sp main .contents .bg_gold.text ul li {
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 34px;
  line-height: 2.125rem;
}

main .contents .bg_gold.text ul li:before {
  background: #fff;
}

main .contents .imagebox.plan {
  padding: 10px;
  background: #fff;
  color: #000;
}

main .contents .imagebox.plan > .image {
  width: 15%;
}

main .contents .imagebox.plan > .text {
  padding-left: 1rem;
}

main .contents .imagebox.plan > .text p span {
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 42px;
  line-height: 2.625rem;
}

.sp main .contents .imagebox.plan > .text p span {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 27px;
  line-height: 1.6875rem;
}

main .contents .pack .linkarea {
  height: calc(7rem + 40px);
}

.sp main .contents .pack .linkarea {
  height: calc(5rem + 40px);
}

main .contents .column.spcol1 a.hosyou {
  position: absolute;
  content: "";
  width: calc((100% - 20px * 2 - 4px) / 2 - 30px) !important;
  height: auto !important;
  right: 30px;
  bottom: calc(1.5rem + 54px);
}

.sp main .contents .column.spcol1 a.hosyou {
  width: calc((100% - 20px * 2 - 4px) / 1) !important;
  height: auto !important;
  right: 20px;
  bottom: calc(2rem + 20px);
}

main .contents .merit .text p {
  font-size: 25px;
  font-size: 1.5625rem;
  line-height: 37.5px;
  line-height: 2.34375rem;
}

.sp main .contents .merit .text p {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 27px;
  line-height: 1.6875rem;
}

main .contents .merit .image {
  width: 7%;
}

.sp main .contents .merit .image {
  width: 60px;
}

/* IE11 */
_:-ms-lang(x)::-ms-backdrop,
main .contents .table > table > * > tr > td {
  border-right: 1px solid #dbdbdb;
}

_:-ms-lang(x)::-ms-backdrop,
main .contents .table > table > * > tr > td:first-child {
  border-left: none;
}

_:-ms-lang(x)::-ms-backdrop,
main .contents .table > table > * > tr > td:last-child {
  border-right: none;
}

_:-ms-lang(x)::-ms-backdrop,
main .contents .table > table > * > tr.subtable > td:last-child {
  border-right: 1px solid #dbdbdb;
}

_:-ms-lang(x)::-ms-backdrop,
main .contents .table > table > * > tr > td:before {
  display: none !important;
}

_:-ms-lang(x)::-ms-backdrop,
main .contents .table > table.product .r_border {
  border-right: 1px solid #dbdbdb;
}

_:-ms-lang(x)::-ms-backdrop,
main .contents .table > table.product .r_border:before {
  display: none !important;
}

_:-ms-lang(x)::-ms-backdrop,
main .contents .news .newslist li div .link a .icon {
  width: 70px;
  border-left: 1px solid #535353;
}

_:-ms-lang(x)::-ms-backdrop,
main .contents .news .newslist li div .link a .icon {
  background-position: center center !important;
}

_:-ms-lang(x)::-ms-backdrop,
main .contents .news .newslist li div .link a > div:first-child {
  padding-right: 15px;
}

/* IE11 */
.apli_faq > .item {
  box-shadow: 0px 10px 10px -5px rgba(0, 0, 0, 0.3);
}

.apli_faq > .item + .item {
  margin-top: 20px;
}

.apli_faq > .item > .label {
  position: relative;
  padding: 0px 15px;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

.apli_faq > .item > .label:hover {
  opacity: 0.7;
}

.apli_faq > .item > .label > .title {
  color: #004295;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 26.4px;
  line-height: 1.65rem;
  font-weight: bold;
  line-height: 60px;
}

.apli_faq > .item > .label > .btn {
  position: absolute;
  width: 60px;
  height: 60px;
  background: #004295;
  right: 0;
  top: 0;
}

.apli_faq > .item > .label > .btn:before,
.apli_faq > .item > .label > .btn:after {
  content: "";
  position: absolute;
  left: 15px;
  top: 30px;
  width: 30px;
  height: 2px;
  background-color: #fff;
}

.apli_faq > .item > .label > .btn:after {
  -moz-transform: rotateZ(90deg);
  -webkit-transform: rotateZ(90deg);
  transform: rotateZ(90deg);
}

.apli_faq > .item > .label > .btn.open:after {
  display: none;
}

.apli_faq > .item > .accordion_area {
  display: none;
  padding: 15px;
}

.apli_faq > .item > .accordion_area > div {
  background: #e9eff5;
  padding: 15px;
}

.apli_faq > .item > .accordion_area > div + div {
  margin-top: 10px;
}

.apli_faq > .item > .accordion_area > div .title {
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 19.8px;
  line-height: 1.2375rem;
  font-weight: bold;
}

.apli_faq > .item > .accordion_area > div .tx {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 21px;
  line-height: 1.3125rem;
  margin-top: 10px;
}

.gemba_visual .bg_area {
  background: url(../../service/gembadesupport/images/main_bg.jpg) no-repeat center center;
  background-size: cover;
}

.sp .gemba_visual .bg_area {
  background: url(../../service/gembadesupport/images/main_bg_sp.jpg) no-repeat top center;
  background-size: cover;
}

.gemba_visual .bg_area .inner {
  position: relative;
  width: 100%;
  max-width: 1220px;
  padding: 0 20px 10px;
  margin: auto;
}

.gemba_visual .bg_area .inner p {
  color: #fff;
}

.sp .gemba_visual .bg_area .inner p.note_text {
  position: relative;
  z-index: 20;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 18px;
  line-height: 1.125rem;
}

.gemba_visual .bg_area .inner h1 img {
  width: 60%;
}

.sp .gemba_visual .bg_area .inner h1 img {
  width: 100%;
}

.gemba_visual .bg_area .inner .gemba_logo {
  padding: 11rem 0 6rem 0;
}

.sp .gemba_visual .bg_area .inner .gemba_logo {
  padding: 10px 0 260px 0;
}

.gemba_visual .bg_area .inner .gemba_logo p {
  font-size: 32px;
  font-size: 2rem;
  line-height: 48px;
  line-height: 3rem;
}

.sp .gemba_visual .bg_area .inner .gemba_logo p {
  text-align: center;
  font-size: 16px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.5rem;
}

.gemba_visual .bottom_area {
  background: #2260d0;
}

.gemba_visual .bottom_area .inner {
  position: relative;
  width: 100%;
  max-width: 1220px;
  padding: 0 20px;
  margin: auto;
}

.gemba_visual .bottom_area .inner ul {
  position: relative;
  padding-top: 20px;
  width: 100%;
  letter-spacing: -1rem;
  z-index: 10;
}

.sp .gemba_visual .bottom_area .inner ul {
  text-align: center;
}

.gemba_visual .bottom_area .inner ul li {
  display: inline-block;
  letter-spacing: normal;
  vertical-align: middle;
  padding-bottom: 20px;
  max-width: 20%;
}

.sp .gemba_visual .bottom_area .inner ul li {
  max-width: 50%;
}

.gemba_visual .bottom_area .inner ul li + li {
  margin-left: 15px;
}

.gemba_visual .bottom_area .inner ul li + li:nth-of-type(3) {
  margin-left: 45px;
}

.sp .gemba_visual .bottom_area .inner ul li + li:nth-of-type(3) {
  margin-left: 15px;
}

.gemba_visual .bottom_area .inner ul li img {
  max-width: 100%;
}

.gemba_visual .bottom_area .inner .download {
  position: absolute;
  width: 35%;
  bottom: 0px;
  right: 20px;
  z-index: 2;
}

.sp .gemba_visual .bottom_area .inner .download {
  bottom: 88px;
  right: 10px;
  width: auto;
}

.gemba_visual .bottom_area .inner .download .image {
  position: relative;
}

.gemba_visual .bottom_area .inner .download .image img {
  max-width: 100%;
  vertical-align: bottom;
}

.gemba_visual .bottom_area .inner .download .image p {
  position: absolute;
  color: #fff;
  top: 3.2rem;
  left: 3rem;
  font-size: 16px;
  font-size: 1rem;
  line-height: 24px;
  line-height: 1.5rem;
}

.sp .gemba_visual .bottom_area .inner .download .image p {
  top: 42px;
  left: 12px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 21px;
  line-height: 1.3125rem;
}

.contents .onlySp {
  display: none;
}

main .contents.gemba_block .imagebox img {
  box-shadow: 0px 5px 8px 1px rgba(0, 0, 0, 0.1);
}

.contents .gemba-topPc {
  width: 100%;
  max-width: 100% !important;
  padding: 0 !important;
  box-sizing: border-box;
}

.contents .gemba-topSp {
  display: none;
}

.contents .gemba-topPc .gemba-topPcZone {
  display: flex;
  flex-direction: column;
  width: 100% !important;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

.contents .gemba-topPcImg {
  margin-bottom: -170px;
  background-color: #2260d0;
  box-sizing: border-box;
  z-index: 100;
}

.contents .gemba-topPcImg img {
  width: 100%;
  height: auto;
}

.contents .gemba-topBox {
  display: flex;
  justify-content: flex-start;
  align-items: baseline;
  width: 100%;
  margin-left: 39vh;
  box-sizing: border-box;
  z-index: 120;
}

.contents .gemba-topBoxSp {
  display: none;
}

.contents .gemba-topBox div:nth-child(2) {
  margin-right: 30px;
}

.contents .gemba-topBox div {
  margin-left: 20px !important;
}

.contents .listMenuBtn ul {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0;
}

.contents .listMenuBtn ul li {
  margin-left: 20px;
}

.contents .listMenuBtn ul li a {
  position: relative;
  display: block;
  width: 380px;
  margin: 0 auto;
  padding: 25px;
  text-align: center;
  font-size: 1.3rem;
  line-height: 1.4875rem;
  color: #ffffff;
  background-color: #2260d0;
  box-shadow: 0px 5px 5px 1px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
}

.contents .listMenuBtn ul li a span::after {
  content: url(../../service/gembadesupport/images/arrow.png);
  display: block;
  width: 100%;
  margin-top: 10px;
  text-align: center;
}

main .contents.gemba_block .youtube {
  padding: 40px 20px !important;
}

.sp main .contents.gemba_block .youtube {
  padding: 20px 10px !important;
}

.contents .backh2 {
  color: #ffffff;
  background: url(../../service/gembadesupport/images/genba-h2_img.jpg) no-repeat center center;
}

.contents .backh2 h2 {
  margin: 10px auto !important;
}

.contents .gemba-h3 {
  display: flex;
  width: 100%;
  max-width: 1220px;
  align-items: center;
  margin: 0 auto;
  padding-bottom: 15px;
  border-bottom: 1px solid #707070;
}

.contents .gemba-h3 .gemba-01 {
  content: url(../../service/gembadesupport/images/genba-h3_01.png);
  display: inline-block;
  width: 50px;
  height: 50px;
  margin-right: 10px;
}

.contents .gemba-h3 .gemba-02 {
  content: url(../../service/gembadesupport/images/genba-h3_02.png);
  display: inline-block;
  width: 50px;
  height: 50px;
  margin-right: 10px;
}

.contents .gemba-h3 .gemba-03 {
  content: url(../../service/gembadesupport/images/genba-h3_03.png);
  display: inline-block;
  width: 50px;
  height: 50px;
  margin-right: 10px;
}

.contents .gemba-h3 .gemba-04 {
  content: url(../../service/gembadesupport/images/genba-h3_04.png);
  display: inline-block;
  width: 50px;
  height: 50px;
  margin-right: 10px;
}

.contents .gemba-h3 .gemba-05 {
  content: url(../../service/gembadesupport/images/genba-h3_05.png);
  display: inline-block;
  width: 50px;
  height: 50px;
  margin-right: 10px;
}

.contents .gemba-dlh2 {
  margin: 0 auto !important;
  padding: 0 !important;
}

.contents .gemba-caution {
  display: block;
  width: 100%;
  max-width: 1220px;
  padding: 20px !important;
  background-color: #e9eff5;
  box-sizing: border-box;
}

.contents .gemba-caution ul li {
  list-style: none;
  font-size: 1rem;
  line-height: 1.7rem;
}

.contents .gemba-caution ul li::before {
  content: "※";
  margin-right: 10px;
}

.gemba-dlZone {
  width: 100%;
  margin: 0 auto 40px 0;
  padding: 40px 0;
  color: #ffffff;
  background-color: #2260d0;
  box-sizing: border-box;
}

.gemba-dlZone h4 {
  font-size: 1.25rem;
  text-align: center;
}

.gemba-dlZone .gemba-dlBox {
  display: flex;
  justify-content: center;
  align-items: baseline;
  width: 100% !important;
  margin: 0 auto;
  box-sizing: border-box;
}

.gemba-dlZone .gemba-dlBox div:first-child {
  margin-right: 30px;
  padding-right: 30px;
  border-right: 1px dotted #ffffff;
}

.gemba-dlZone .gemba-dlBox div img {
  margin-bottom: 15px;
}

.gemba-dlZone .contents .text .gemba-dlCaution {
  text-align: center;
}

.gemba-dlZone .contents .text .gemba-dlCaution li::before {
  display: none;
}

.gemba-dlZone .contents .text .gemba-dlCaution li {
  font-size: 0.9rem;
  line-height: 1.3rem;
}

.gemba_link {
  display: flex;
  align-items: center;
  border: 1px solid #b5b5b5;
  color: #000000;
  padding: 20px;
}

.sp .gemba_link {
  display: block;
  padding: 10px;
}

.gemba_link > .image {
  width: 50%;
  padding-right: 20px;
}

.sp .gemba_link > .image {
  width: auto;
  text-align: center !important;
  padding-right: 0;
}

.sp .gemba_link > .image img {
  margin-right: auto !important;
}

.gemba_link > .tx {
  width: 50%;
  padding-left: 20px;
}

.sp .gemba_link > .tx {
  width: auto;
  padding-left: 0;
  margin-top: 15px;
}

.gemba_link > .tx > div {
  display: inline-block;
  text-align: center;
}

.sp .gemba_link > .tx > div {
  display: block;
}

.gemba_link > .tx h3 {
  margin: 0 0 10px !important;
}

/* FAQ  - START*/
.contents .apli_faq .item {
  box-shadow: 0px 3px 8px 2px rgba(0, 0, 0, 0.1) !important;
}

.contents .apli_faq .item .label .title {
  color: #2260d0 !important;
}

.contents div div div div.label div.btn {
  background: #2260d0 !important;
  box-shadow: 0px 3px 5px 1px rgba(0, 0, 0, 0.13);
}

.contents div div div div.label div.open {
  box-shadow: none;
}

/* FAQ - END */
@media screen and (max-width: 1200px) {
  .contents .gemba-topPcImg {
    margin-bottom: -139px;
  }

  .contents .gemba-topBox {
    width: 50%;
    margin-left: 15vh;
  }
}
@media screen and (max-width: 800px) {
  .contents .gemba-topPcImg {
    margin-bottom: -110px;
  }

  .contents .gemba-topBox {
    width: 50%;
    margin-left: 0;
  }
}
@media screen and (max-width: 600px) {
  .contents .onlySp {
    display: block;
  }

  .contents .noneSp {
    display: none;
  }

  .contents .gemba-topPc {
    display: none;
  }

  .contents .gemba-topSp {
    display: block;
    width: 100%;
    max-width: 100% !important;
    height: auto;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box;
  }

  .contents .gemba-topSp .gemba-topSpImg img {
    width: 100%;
    height: auto;
  }

  .contents .gemba-topBoxSpZone {
    display: block;
    width: 100%;
    margin: 0 auto;
    padding: 15px 15px 40px 15px;
    background-color: #2260d0;
    box-sizing: border-box;
  }

  .contents .gemba-topBoxSp {
    display: flex;
    justify-content: center;
    align-items: baseline;
    width: 100% !important;
    box-sizing: border-box;
  }

  .contents .gemba-topBoxSp div:first-child {
    margin-right: 10px;
  }

  .contents .listMenuBtn {
    margin: 0 auto !important;
    padding: 0 !important;
  }

  .contents .listMenuBtn ul {
    display: block;
    width: 90%;
    margin: 0 auto;
  }

  .contents .listMenuBtn ul li {
    margin-left: 0;
  }

  .contents .listMenuBtn ul li a {
    display: block;
    width: 100%;
    margin: 20px auto;
    padding: 0;
    font-size: 1.4rem;
    font-weight: bold;
    color: #2260d0;
    background-color: #ffffff;
    box-shadow: none;
  }

  .contents .listMenuBtn ul li a span::after {
    content: url(../../service/gembadesupport/images/arrowSp.png);
    display: inline-block;
    width: 20px;
    height: 20px;
    margin-left: 5px;
    vertical-align: bottom;
    text-align: center;
  }

  .contents .gemba-h3 {
    width: 90%;
    margin: 10px auto !important;
    padding-top: 15px;
  }

  .contents .gemba-caution {
    width: 90% !important;
  }

  .gemba-dlZone .gemba-dlBox div:first-child {
    margin-right: 15px;
    padding-right: 0;
    border-right: none;
  }

  .gemba-dlZone .gemba-dlBox div img.noneSp {
    display: none;
  }
}
main .contents .formcol2 {
  display: table;
  width: 100%;
}

main .contents .formcol2 > * {
  display: table-cell;
  height: 100%;
  text-align: left;
  vertical-align: middle;
}

.sp main .contents .formcol2 {
  display: block;
}

.sp main .contents .formcol2 > div {
  display: block;
}

main .contents .formcol2 > div .right {
  ta: r;
}

main .contents .form {
  margin-top: 32px !important;
}

main .contents .form + .form {
  border-top: 1px solid #707070;
  padding-top: 20px;
}

main .contents .form h3 {
  margin-bottom: 20px;
}

main .contents .form form {
  margin: 0px;
  padding: 0px;
}

main .contents .form .required {
  color: #ef3340;
  margin-left: 4px;
}

main .contents .form table {
  border-collapse: collapse;
  width: 100%;
}

main .contents .form table.confirm th,
main .contents .form table.confirm .format > table td,
main .contents .format > table .form table.confirm td {
  padding-top: 0px;
}

.sp main .contents .form table.confirm th,
.sp main .contents .form table.confirm .format > table td,
.sp main .contents .format > table .form table.confirm td {
  padding-top: 10px;
}

main .contents .form table.confirm td {
  padding-top: 0px;
}

.sp main .contents .form table.confirm td.required {
  display: none;
}

.sp main .contents .form table {
  display: block;
}

.sp main .contents .form table tbody,
.sp main .contents .form table tr {
  position: relative;
  display: block;
}

main .contents .form table th,
main .contents .form .format > table td {
  width: 16rem;
  padding: 24px 20px 25px 0px;
  font-weight: bold;
  vertical-align: top;
  text-align: left;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

main .contents .form table th span,
main .contents .form .format > table td span {
  margin-left: 3px;
  color: #ff0000;
}

.sp main .contents .form table th,
.sp main .contents .form .format > table td {
  display: block;
  width: auto;
  float: left;
  padding-top: 10px;
  padding-right: 10px;
  padding-bottom: 0px;
}

main .contents .form table td {
  padding-top: 16px;
  padding-bottom: 25px;
  vertical-align: top;
  text-align: left;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  word-break: break-all;
}

.sp main .contents .form table td {
  clear: both;
  display: block;
  padding-top: 10px;
  padding-bottom: 15px;
}

main .contents .form table td.required {
  width: 5rem;
  padding-top: 18px;
  padding-right: 20px;
  color: #ffffff;
}

main .contents .form table td.required span {
  display: block;
  margin-left: 0px;
  padding: 6px 8px;
  text-align: center;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 15.6px;
  line-height: 0.975rem;
  color: #ef3340;
  border: 1px solid #ef3340;
}

.sp main .contents .form table td.required {
  clear: none;
  float: right;
  padding: 0px;
  margin-top: 10px;
}

.sp main .contents .form table td.required span {
  margin-top: 0px;
}

main .contents .form table td span {
  display: inline-block;
}

main .contents .form table td span.label {
  position: absolute;
  width: 4em;
  margin-left: 10px;
  padding-top: 10px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 15.6px;
  line-height: 0.975rem;
  color: #646464;
  pointer-events: none;
}

main .contents .form table tr:last-child > * {
  padding-bottom: 0px;
}

.sp main .contents .form table tr:last-child > th,
.sp main .contents .form .format > table tr:last-child > td {
  padding-bottom: 10px;
}

main .contents .form textarea {
  width: 100%;
  height: 160px;
  padding: 8px 16px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  border: 1px solid #707070;
  outline: none;
}

main .contents .form input[type="text"],
main .contents .form input[type="email"],
main .contents .form input[type="tel"],
main .contents .form input[type="url"] {
  width: 100%;
  height: 34px;
  padding: 0px 16px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 32px;
  border: 1px solid #707070;
  outline: none;
}

main .contents .form input[type="text"].withlabel,
main .contents .form input[type="email"].withlabel,
main .contents .form input[type="tel"].withlabel,
main .contents .form input[type="url"].withlabel {
  padding-left: 2rem;
}

main .contents .form br + input[type="text"],
main .contents .form br + input[type="email"],
main .contents .form br + input[type="tel"],
main .contents .form br + input[type="url"] {
  margin-top: 20px;
}

main .contents .form select {
  width: 100%;
  padding: 5px 16px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  border: 1px solid #707070;
}

main .contents .form input.focus,
main .contents .form textarea.focus,
main .contents .form select.focus {
  background-color: #fff3b8;
}

main .contents .form input.inputed,
main .contents .form textarea.inputed,
main .contents .form select.inputed {
  border: 1px solid #707070;
  background-color: #d7e7ff;
}

main .contents .form input.w_fix,
main .contents .form textarea.w_fix,
main .contents .form select.w_fix {
  width: 200px;
}

main .contents .form input[data-input="zenkaku"],
main .contents .form textarea[data-input="zenkaku"],
main .contents .form select[data-input="zenkaku"] {
  ime-mode: active;
}

main .contents .form input[data-input="hankaku"],
main .contents .form textarea[data-input="hankaku"],
main .contents .form select[data-input="hankaku"] {
  ime-mode: disabled;
}

main .contents .form .side {
  margin: 15px -5px -10px -25px;
}

main .contents .form .side.center {
  text-align: center;
}

main .contents .form .side li {
  display: inline-block;
  margin-left: 25px;
  margin-bottom: 10px;
}

main .contents .form .side + p {
  margin-top: 20px;
}

main .contents .form .ib_input li {
  display: inline-block;
  width: 32%;
  vertical-align: top;
}

main .contents .form .ib_input.col3 li {
  width: 32%;
}

main .contents .form .note {
  margin-top: 8px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

main .contents .form label {
  position: relative;
  display: block;
  padding: 4px 0px 4px 25px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
  cursor: pointer;
}

.sp main .contents .form label {
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 18.2px;
  line-height: 1.1375rem;
}

main .contents .form label input[type="radio"],
main .contents .form label input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  top: 6px;
  left: 0px;
}

main .contents .form label input[type="radio"]:focus + span:before,
main .contents .form label input[type="checkbox"]:focus + span:before {
  -webkit-transform: scale(1.2);
  transform: scale(1.2);
}

main .contents .form label input[type="radio"] + span:before {
  content: "";
  display: block;
  position: absolute;
  top: 0.9rem;
  left: 0px;
  margin-top: -8px;
  background: #ffffff;
  border-radius: 50%;
  -webkit-transition: 200ms;
  transition: 200ms;
}

main .contents .form label input[type="checkbox"] + span:before {
  content: "";
  display: block;
  position: absolute;
  width: 16px;
  height: 16px;
  top: 0.9rem;
  left: 0px;
  margin-top: -8px;
  border-radius: 5px;
  -webkit-transition: 200ms;
  transition: 200ms;
}

main .contents .form label input[type="checkbox"] + span:after {
  content: "";
  display: block;
  position: absolute;
  width: 16px;
  height: 16px;
  top: 0.9rem;
  left: 0px;
  margin-top: -8px;
  background: url(assets/img/check.png) no-repeat center center;
  background-size: 100% auto;
  -webkit-transform: scale(0);
  transform: scale(0);
  -webkit-transition: 200ms;
  transition: 200ms;
}

main .contents .form label input[type="checkbox"]:checked + span:after {
  -webkit-transform: scale(1);
  transform: scale(1);
}

main .contents .form .button {
  font-size: 0px;
}

.sp main .contents .form .button {
  text-align: center;
}

main .contents .form .button > div {
  display: inline-block;
}

.sp main .contents .form .button > div {
  display: block;
}

main .contents .form .button > div + div {
  margin-left: 20px;
}

.sp main .contents .form .button > div + div {
  margin-top: 20px;
  margin-left: 0px;
}

main .contents .form .button button,
main .contents .form .button input[type="submit"] {
  position: relative;
  display: inline-block;
  padding: 0px 40px 0px 40px;
  height: 40px;
  font-size: 13px;
  font-size: 0.8125rem;
  line-height: 40px;
  color: #000000;
  text-align: left;
  border: 1px solid #c8c8c8;
  background: none;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

main .contents .form .button button:hover,
main .contents .form .button input[type="submit"]:hover {
  opacity: 0.7;
}

main .contents .form .button button:before,
main .contents .form .button input[type="submit"]:before {
  content: "";
  display: block;
  position: absolute;
  width: 40px;
  height: 40px;
  right: 0px;
  top: 0px;
  background: url(assets/img/linkicon2.png) no-repeat center center;
}

main .contents .form .button button.ng {
  pointer-events: none;
}

main .contents .form .button button.ok {
  display: none;
}

main .contents .form .button button.center {
  text-align: center;
}

main .contents .form .button.center {
  text-align: center;
}

main .contents .form .alert {
  margin-top: 10px;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 21px;
  line-height: 1.3125rem;
  color: #ef3340;
}

/* Top
---------------------------------------*/
#topslider .slider-item img {
  width: 100%;
  height: auto;
}

#topslider {
  display: none;
}

#topslider.slick-initialized {
  display: block;
}

#topslider .slick-dots {
  bottom: 15px;
}

#topslider .slick-dots li button:before {
  font-size: 14px;
  color: #aaaaaa;
  opacity: 1;
}

#topslider .slick-dots li button:hover:before,
#topslider .slick-dots li.slick-active button:before {
  color: #ffffff;
  opacity: 1;
}

#topvideo {
    width: 100%;
    height: 650px; 
    margin: 0 auto;
    overflow: hidden;
    position: relative;
}

    /* video.js のラッパーを強制的に全画面化 */
#topvideo .video-js {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
}

    /* 実際の video 要素 */
#topvideo video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
    object-position: 50% 50%;
}

#topfeaturedcontent > div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 40px 20px 80px;
}

.sp #topfeaturedcontent > div {
  padding: 20px 10px 40px;
}

.sp #topfeaturedcontent > div {
  padding-top: 40px;
}

#topfeaturedcontent h2 {
  margin: 0px 0px 40px;
  padding: 32px 0px 0px;
  font-size: 32px;
  font-size: 2rem;
  line-height: 41.6px;
  line-height: 2.6rem;
  font-weight: 600;
  text-align: center;
  border-top: 4px solid #004295;
}

.sp #topfeaturedcontent h2 {
  padding-top: 16px;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 33.8px;
  line-height: 2.1125rem;
}

#topfeaturedcontent .menu {
  margin: 0px -5px 0px -20px;
  overflow: hidden;
}

.sp #topfeaturedcontent .menu {
  margin: 0px;
  padding-bottom: 20px;
  border-bottom: 4px solid #004295;
}

#topfeaturedcontent .menu a {
  position: relative;
  float: left;
  display: block;
  margin-left: 20px;
  width: calc((100% - 85px) / 4);
  border-bottom: 4px solid #004295;
}

.sp #topfeaturedcontent .menu a {
  float: none;
  width: 100%;
  min-height: 76px;
  margin-left: 0px;
  border-bottom: 0;
}

.sp #topfeaturedcontent .menu a + a {
  margin-top: 40px;
}

.sp #topfeaturedcontent .menu a + a:before {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  top: -20px;
  left: 0px;
  background: #707070;
}

#topfeaturedcontent .menu a.popin .image span {
  top: 100%;
}

.sp #topfeaturedcontent .menu a.popin .image span {
  top: 0px;
}

#topfeaturedcontent .menu a:hover .image span {
  transform: scale(1.1) rotate(0.0001deg);
}

#topfeaturedcontent .menu a:hover .info {
  top: -15px;
}

.sp #topfeaturedcontent .menu a:hover .info {
  top: 0px;
}

#topfeaturedcontent .menu a .image {
  position: relative;
  display: block;
  padding-top: 100%;
  background: #004295;
  overflow: hidden;
}

.sp #topfeaturedcontent .menu a .image {
  position: absolute;
  width: 76px;
  padding-top: 76px;
  left: 0px;
  top: 0px;
}

#topfeaturedcontent .menu a .image span {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: none no-repeat center center;
  background-size: cover;
  -webkit-transition: -webkit-transform 0.4s, top 0.6s;
  transition: transform 0.4s, top 0.6s;
  backface-visibility: hidden;
}

#topfeaturedcontent .menu a .info {
  display: block;
  position: relative;
  top: 0px;
  width: calc(100% - 40px);
  margin: -5em auto 30px;
  padding: 15px 10px 0px;
  color: #000000;
  background: #ffffff;
  -webkit-transition: top 0.5s 0.15s;
  transition: top 0.5s 0.15s;
}

.sp #topfeaturedcontent .menu a .info {
  width: calc(100% - 86px);
  margin: 0px 0px 0px 86px;
  padding: 0px;
}

#topfeaturedcontent .menu a .info .title {
  display: block;
  padding: 0px 5px 20px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
  font-weight: bold;
  text-align: center;
}

.sp #topfeaturedcontent .menu a .info .title {
  padding: 0 0 5px 0;
  text-align: left;
}

#topfeaturedcontent .menu a .info .text {
  display: block;
  font-size: 16px;
  font-size: 1rem;
  line-height: 22.4px;
  line-height: 1.4rem;
}

.sp #topfeaturedcontent .menu a .info .text {
  display: none;
}

#topproducts {
  position: relative;
}

#topproducts h2 {
  margin: 0px 0px 20px;
  padding: 0px;
  font-size: 32px;
  font-size: 2rem;
  line-height: 41.6px;
  line-height: 2.6rem;
  font-weight: 600;
  text-align: center;
}

.sp #topproducts h2 {
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 33.8px;
  line-height: 2.1125rem;
}

#topproducts .products {
  margin: 0px -5px 0px 0px;
  overflow: hidden;
}

.sp #topproducts .products {
  margin-left: -1px;
}

#topproducts .products a {
  position: relative;
  float: left;
  display: block;
  width: calc((100% - 5px) / 2);
  height: 19.27083333333333vw;
}

.sp #topproducts .products a {
  width: calc((100% - 7px) / 2);
  height: 37.33333333333333vw;
  margin-left: 1px;
  margin-bottom: 1px;
}

#topproducts .products a.popin .image span {
  top: 100%;
}

.sp #topproducts .products a.popin .image span {
  top: 0px;
}

#topproducts .products a:hover .image span {
  transform: scale(1.1) rotate(0.0001deg);
}

#topproducts .products a:hover .title span {
  top: 50%;
}

#topproducts .products a .image {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  background: #004295;
  overflow: hidden;
}

#topproducts .products a .image span {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: none no-repeat center center;
  background-size: cover;
  -webkit-transition: -webkit-transform 0.4s, top 0.6s;
  transition: transform 0.4s, top 0.6s;
  backface-visibility: hidden;
}

#topproducts .products a .title {
  position: absolute;
  display: block;
  width: 100%;
  height: 37.83783783783784%;
  bottom: 0px;
  left: 0px;
  background: -moz-linear-gradient(top, transparent 0%, black 100%);
  background: -webkit-linear-gradient(top, transparent 0%, black 100%);
  background: linear-gradient(to bottom, transparent 0%, black 100%);
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#000000',GradientType=0 );
}

.sp #topproducts .products a .title {
  height: 50%;
}

#topproducts .products a .title span {
  position: absolute;
  display: block;
  width: 100%;
  top: 60%;
  padding: 0px 10px;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 31.2px;
  line-height: 1.95rem;
  color: #ffffff;
  font-weight: 600;
  text-align: center;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  -webkit-transition: top 0.5s 0.15s;
  transition: top 0.5s 0.15s;
}

.sp #topproducts .products a .title span {
  font-size: 13px;
  font-size: 0.8125rem;
  line-height: 16.9px;
  line-height: 1.05625rem;
}

#topproducts .others {
  margin: 20px -5px 0px 0px;
  padding-top: 40px;
  overflow: hidden;
}

.sp #topproducts .others {
  margin: 10px 0 0 0;
  padding-top: 0;
  border-top: 1px solid #707070;
}

#topproducts .others a {
  position: relative;
  float: left;
  display: block;
  width: calc((100% - 5px) / 4);
  padding-top: 3em;
}

.sp #topproducts .others a {
  float: none;
  width: 100%;
  padding-top: 0px;
  border-bottom: 1px solid #707070;
}

#topproducts .others a.popin .image span {
  top: 100%;
}

.sp #topproducts .others a.popin .image span {
  top: 0px;
}

#topproducts .others a:hover .image span {
  transform: scale(1.1) rotate(0.0001deg);
}

#topproducts .others a .image {
  position: relative;
  display: block;
  width: 100%;
  padding-top: 9.89583333333333vw;
  background: #004295;
  overflow: hidden;
}

.sp #topproducts .others a .image {
  position: absolute;
  width: 60px;
  height: 100%;
  left: 0px;
  top: 0px;
}

#topproducts .others a .image span {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: none no-repeat center center;
  background-size: cover;
  -webkit-transition: -webkit-transform 0.4s, top 0.6s;
  transition: transform 0.4s, top 0.6s;
  backface-visibility: hidden;
}

#topproducts .others a .title {
  position: absolute;
  display: block;
  width: 100%;
  bottom: calc(9.89583333333333vw + 15px);
  left: 0px;
}

.sp #topproducts .others a .title {
  position: static;
  display: table;
  height: 60px;
}

#topproducts .others a .title span {
  display: block;
  padding: 0px 10px;
  font-size: 28px;
  font-size: 1.75rem;
  line-height: 36.4px;
  line-height: 2.275rem;
  color: #000000;
  font-weight: 600;
  text-align: center;
}

.sp #topproducts .others a .title span {
  display: table-cell;
  padding: 5px 40px 5px 70px;
  vertical-align: middle;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
  text-align: left;
  background: url(assets/img/next.png) no-repeat right 10px center;
}

#toppanelmenu {
  position: relative;
  overflow: hidden;
}

.sp #toppanelmenu {
  margin-top: 40px;
}

#toppanelmenu .bg {
  position: absolute;
  width: 100%;
  height: 100vh;
  background: url(assets/img/panelbg.jpg) no-repeat center center;
  background-size: cover;
}

.spc #toppanelmenu .bg {
  height: 80vh;
}

.sp #toppanelmenu .bg {
  height: 60vh;
}

#toppanelmenu .bg:after {
  content: "";
  display: block;
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: rgba(0, 66, 149, 0.5);
}

#toppanelmenu .main {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 0px 20px;
}

.sp #toppanelmenu .main {
  padding: 0px 10px;
}

.sp #toppanelmenu .main {
  padding: 0px;
}

#toppanelmenu .main div {
  position: relative;
  margin-right: -5px;
  overflow: hidden;
}

.sp #toppanelmenu .main div {
  margin-left: -1px;
}

#toppanelmenu .main div:before {
  content: "";
  display: block;
  position: absolute;
  right: 0px;
  top: 0px;
  width: 1px;
  height: 100%;
  background: #ffffff;
}

.sp #toppanelmenu .main div:before {
  display: none;
}

#toppanelmenu .main div a {
  position: relative;
  float: left;
  width: calc((100% - 5px) / 3);
  height: 33.89830508474576vw;
  max-height: 400px;
  font-size: 24px;
  font-size: 1.5rem;
  line-height: 31.2px;
  line-height: 1.95rem;
  font-weight: 600;
  color: #ffffff;
  -webkit-transition: background 0.2s;
  transition: background 0.2s;
}

.sp #toppanelmenu .main div a {
  font-size: 0.8125rem;
}

/* .sp #toppanelmenu .main div a {
  width: calc((100% - 7px) / 2);
  height: 37.33333333333333vw;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
  border-left: 1px solid #ffffff;
  border-bottom: 1px solid #ffffff;
} */
#toppanelmenu .main div a:hover {
  background: rgba(0, 66, 149, 0.2);
}

#toppanelmenu .main div a:before {
  content: "";
  display: block;
  position: absolute;
  left: 0px;
  top: 0px;
  width: 1px;
  height: 100%;
  background: #ffffff;
}

#toppanelmenu .main div a:after {
  content: "";
  display: block;
  position: absolute;
  left: 0px;
  top: 20%;
  width: 100%;
  height: 40%;
  background: none no-repeat center center;
  background-size: 50px;
}

.sp #toppanelmenu .main div a:after {
  background-size: 30px;
}

#toppanelmenu .main div a.panelmenu01:after {
  background-image: url(assets/img/icon-company.png);
}

#toppanelmenu .main div a.panelmenu02:after {
  background-image: url(assets/img/icon-greeting.png);
}

#toppanelmenu .main div a.panelmenu03:after {
  background-image: url(assets/img/icon-manual.png);
}

#toppanelmenu .main div a .title {
  position: absolute;
  display: block;
  width: 100%;
  top: 60%;
  left: 0px;
  padding: 0px 10px;
  text-align: center;
}

#banner_area {
  position: relative;
  margin-top: 80px;
  overflow: hidden;
}

.sp #banner_area {
  margin-top: 40px;
}

#banner_area > div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 0px 20px;
}

.sp #banner_area > div {
  padding: 0px 10px;
}

.sp #banner_area > div {
  padding: 0px;
}

#banner_area > div .banner {
  overflow: hidden;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.pc #banner_area > div .banner {
  display: block;
}

#banner_area > div .banner a {
  position: relative;
  display: block;
  width: 560px;
  height: 280px;
}

#banner_area > div .banner a + a {
  margin-left: 20px;
}

.pc #banner_area > div .banner a + a {
  margin-left: auto;
  margin-top: 20px;
}

.pc #banner_area > div .banner a {
  margin-left: auto;
  margin-right: auto;
  width: auto;
  max-width: 560px;
}

.sp #banner_area > div .banner a {
  height: 200px;
}

#banner_area > div .banner a.popin .image span {
  top: 100%;
}

.sp #banner_area > div .banner a.popin .image span {
  top: 0px;
}

#banner_area > div .banner a:hover .image span {
  transform: scale(1.1) rotate(0.0001deg);
}

#banner_area > div .banner a .image {
  position: absolute;
  display: block;
  width: 560px;
  height: 250px;
  background: #004295;
  overflow: hidden;
}

.sp #banner_area > div .banner a .image {
  width: 100%;
  height: 170px;
}

#banner_area > div .banner a .image span {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: no-repeat center center;
  background-size: cover;
  transition: transform 0.4s, top 0.6s;
  backface-visibility: hidden;
}

.sp #banner_area > div .banner a .image span {
  background: no-repeat center center;
  background-size: cover;
}

#banner_area > div .banner a .title {
  width: 100%;
  position: absolute;
  top: 255px;
  display: block;
  margin-top: 5px;
}

.sp #banner_area > div .banner a .title {
  top: 175px;
}

#banner_area > div .banner a .title span {
  display: block;
  width: 100%;
  color: #000000;
  text-align: center;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 23.4px;
  line-height: 1.4625rem;
}

.sp #banner_area > div .banner a .title span {
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
}

#topproducts > div,
#topnews > div,
#topir > div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 80px 20px;
  padding-bottom: 0;
}

.sp #topproducts > div,
.sp #topnews > div,
.sp #topir > div {
  padding: 40px 10px;
}

.sp #topproducts > div,
.sp #topnews > div,
.sp #topir > div {
  padding-bottom: 20px;
}

#topcompany h2,
#topnews h2,
#topir h2 {
  margin: 0px 0px 40px;
  padding: 0px;
  font-size: 32px;
  font-size: 2rem;
  line-height: 41.6px;
  line-height: 2.6rem;
  font-weight: 600;
  text-align: center;
}

.sp #topcompany h2,
.sp #topnews h2,
.sp #topir h2 {
  margin-bottom: 20px;
  font-size: 26px;
  font-size: 1.625rem;
  line-height: 33.8px;
  line-height: 2.1125rem;
}

#topnews .more,
#topir .more {
  text-align: right;
  margin-top: 20px;
}

#topnews .more .rss,
#topir .more .rss {
  display: inline-block;
  vertical-align: bottom;
}

#topnews .more .rss a,
#topir .more .rss a {
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  display: block;
  width: 30px;
  height: 30px;
  background: #f00;
  background: url(assets/img/ico_rss.png) center center no-repeat #004295;
  background-size: 24px 24px;
  margin-right: 15px;
  /*
  &.default{
  	display: block;
  	
  	.region1 &, .region2 &, .region3 &, .region4 &, .region5 &, .region6 &, .region7 &, .region8 &, .region9 &{
  		display: none;
  	}
  }
  
  .region1 &.Europe{
  	display: block;
  }
  .region2 &.NorthAmerica{
  	display: block;
  }
  .region3 &.CentralSouthAmerica{
  	display: block;
  }
  .region4 &.Asia{
  	display: block;
  }
  .region5 &.MiddleEast{
  	display: block;
  }
  .region6 &.Africa{
  	display: block;
  }
  .region7 &.SouthAfrica{
  	display: block;
  }
  .region8 &.CIS{
  	display: block;
  }
  .region9 &.Oceania{
  	display: block;
  }
  */
}

#topnews .more .rss a:hover,
#topir .more .rss a:hover {
  opacity: 0.7;
}

.sp #topnews .more,
.sp #topir .more {
  display: none;
}

#topnews .more.sp,
#topir .more.sp {
  display: none;
}

.sp #topnews .more.sp,
.sp #topir .more.sp {
  display: block;
  margin-bottom: 20px;
  text-align: center;
}

#topnews .more > a,
#topir .more > a {
  position: relative;
  margin-right: 30px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 20.8px;
  line-height: 1.3rem;
  color: #000000;
  position: relative;
  display: inline-block;
}

#topnews .more > a:before,
#topir .more > a:before {
  content: "";
  display: block;
  position: absolute;
  bottom: calc(0.15em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #000000;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

#topnews .more > a:hover:before,
#topir .more > a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

#topnews .more > a:after,
#topir .more > a:after {
  content: "";
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  right: -30px;
  top: 50%;
  margin-top: -10px;
  background: url(assets/img/next.png) no-repeat center center;
}

.slide li,
.slidenon li {
  display: block;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px dotted #535353;
}

.slide li div,
.slidenon li div {
  position: relative;
  display: table;
  width: 100%;
}

.sp .slide li div,
.sp .slidenon li div {
  display: block;
}

.slide li div .date,
.slidenon li div .date {
  display: table-cell;
  width: 8.75rem;
  padding-top: 0.85rem;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 19.8px;
  line-height: 1.2375rem;
  font-weight: bold;
  vertical-align: top;
  -webkit-transform: translateY(-0.5em);
  transform: translateY(-0.5em);
}

.sp .slide li div .date,
.sp .slidenon li div .date {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 16px;
  font-size: 1rem;
  line-height: 17.6px;
  line-height: 1.1rem;
}

.slide li div .category,
.slidenon li div .category {
  position: relative;
  display: table-cell;
  width: 10rem;
  top: 0.85rem;
  vertical-align: top;
  -webkit-transform: translateY(-10px);
  transform: translateY(-10px);
}

.sp .slide li div .category,
.sp .slidenon li div .category {
  display: inline-block;
  padding-bottom: 5px;
  width: calc(100% - 8.75rem - 10px);
  font-size: 10px;
  font-size: 0.625rem;
  line-height: 20px;
  text-align: right;
}

.slide li div .category span,
.slidenon li div .category span {
  display: inline-block;
  width: 7.5rem;
  height: 20px;
  margin-bottom: 5px;
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 20px;
  color: #ffffff;
  text-align: center;
  background: #535353;
}

.sp .slide li div .category span,
.sp .slidenon li div .category span {
  margin-right: 5px;
}

.slide li div .link,
.slidenon li div .link {
  display: table-cell;
  vertical-align: top;
  font-size: 16px;
  font-size: 1rem;
  line-height: 27.2px;
  line-height: 1.7rem;
}

.sp .slide li div .link,
.sp .slidenon li div .link {
  display: block;
  font-size: 14px;
  font-size: 0.875rem;
  line-height: 23.8px;
  line-height: 1.4875rem;
}

.slide li div .link a,
.slidenon li div .link a {
  position: relative;
  display: table;
  width: 100%;
  color: #000000;
}

.slide li div .link a > div,
.slidenon li div .link a > div {
  width: auto;
}

.slide li div .link a .size,
.slidenon li div .link a .size {
  display: block;
}

.sp .slide li div .link a .size:before,
.sp .slidenon li div .link a .size:before {
  content: "";
  position: relative;
  display: inline-block;
  width: 18px;
  height: 20px;
  top: -1px;
  margin: 0px 5px;
  padding: 0px !important;
  background: url(assets/img/pdficon.png) no-repeat;
  background-size: 18px 20px;
  vertical-align: middle;
  overflow: hidden;
}

.slide li div .link a *,
.slidenon li div .link a * {
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
}

.slide li div .link a:hover *,
.slidenon li div .link a:hover * {
  opacity: 0.7;
}

.slide li div .link a > *,
.slidenon li div .link a > * {
  display: table-cell;
}

.slide li div .link a .icon,
.slidenon li div .link a .icon {
  position: relative;
  width: 120px;
  background: none no-repeat center center;
}

.sp .slide li div .link a .icon,
.sp .slidenon li div .link a .icon {
  display: none;
}

.slide li div .link a .icon:before,
.slidenon li div .link a .icon:before {
  content: "";
  display: block;
  position: absolute;
  width: 1px;
  height: 80%;
  top: 10%;
  left: 40px;
  background: #535353;
}

.sp .slide li div .link a .icon:before,
.sp .slidenon li div .link a .icon:before {
  left: 10px;
}

.slide li div .link a .icon.pdf,
.slidenon li div .link a .icon.pdf {
  background-position: 71.25px center;
  background-image: url(assets/img/pdficon.png);
}

.sp .slide li div .link a .icon.pdf,
.sp .slidenon li div .link a .icon.pdf {
  background-position: 25px center;
}

.slide li div .link a .icon.blank,
.slidenon li div .link a .icon.blank {
  background-position: 71.25px center;
  background-image: url(assets/img/blank.png);
}

.slide li div .link a .icon.blank:after,
.slidenon li div .link a .icon.blank:after {
  display: none;
}

.sp .slide li div .link a .icon.blank,
.sp .slidenon li div .link a .icon.blank {
  background-position: 25px center;
}

.news-date {
  text-align: right;
  margin-bottom: 15px;
}

#topbanner > div {
  position: relative;
  width: 100%;
  max-width: 1220px;
  margin: auto;
  padding: 80px 20px;
}

.sp #topbanner > div {
  padding: 40px 10px;
}

#topbanner ul {
  margin: -20px -5px 0px -20px;
  overflow: hidden;
}

.sp #topbanner ul {
  margin-top: -10px;
}

#topbanner ul li {
  float: left;
  width: calc((100% - 85px) / 4);
  margin-left: 20px;
  margin-top: 20px;
}

.sp #topbanner ul li {
  width: calc(100% - 25px);
  margin-top: 10px;
}

#topbanner a {
  display: block;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
}

#topbanner a:hover {
  opacity: 0.7;
}

#topbanner a img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: auto;
}

.top_alert {
  position: absolute;
  width: 100%;
  top: 80px;
  padding: 16px 20px;
  background: rgba(219, 219, 219, 0.7);
  opacity: 1;
  transition: 0.2s;
  z-index: 2;
}

.sp .top_alert {
  top: 60px;
  padding: 16px 10px;
}

.headermove .top_alert,
.menuopen .top_alert,
.searchopen .top_alert {
  opacity: 0;
  visibility: hidden;
}

.top_alert > div {
  position: relative;
  width: 100%;
  max-width: 1180px;
  margin: auto;
}

.top_alert > div p {
  position: relative;
  display: inline-block;
  padding-left: 3.2rem;
  font-size: 16px;
  font-size: 1rem;
  line-height: 22.4px;
  line-height: 1.4rem;
  color: #c90000;
}

.top_alert > div p:before {
  content: "";
  position: absolute;
  display: block;
  margin-left: -3.2rem;
  width: 2rem;
  height: 1.75rem;
  top: -0.2rem;
  background: url(assets/img/ico_aleat.png) no-repeat;
  background-size: cover;
}

.top_alert > div p a {
  color: #c90000;
}

.top_alert > div p a.pdf {
  position: relative;
  padding-right: 25px;
}

.top_alert > div p a.pdf:after {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  right: 0;
  background: url(assets/img/pdficon.png) no-repeat;
  background-size: 20px 20px;
}

.top_alert > div p a.blank {
  position: relative;
  padding-right: 25px;
}

.top_alert > div p a.blank:after {
  content: "";
  position: absolute;
  width: 20px;
  height: 20px;
  right: 0;
  top: 0;
  margin: 0;
  background: url(assets/img/blank.png) no-repeat;
  background-size: 20px 20px;
}

.top_alert > div p + p {
  margin-top: 20px;
}

.bottom_links {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.bottom_links a {
  position: relative;
  font-size: 1rem;
  line-height: 1.3rem;
  color: #000000;
  display: inline-block;
}

.bottom_links a:before,
.bottom_links a:after {
  content: "";
  display: block;
  position: absolute;
}

.bottom_links a:before {
  bottom: calc(0.15em - 5px);
  left: 0px;
  width: 100%;
  height: 1px;
  background: #000000;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  -webkit-transform: scale(0);
  transform: scale(0);
}

.bottom_links a:hover:before {
  -webkit-transform: scale(1);
  transform: scale(1);
}

.bottom_links a.next_link:after,
.bottom_links a.prev_link:after {
  width: 20px;
  height: 20px;
  top: 50%;
  margin-top: -10px;
}

.bottom_links a.prev_link {
  margin-right: 30px;
}

.bottom_links a.prev_link:after {
  right: -30px;
  background: url(assets/img/next.png) no-repeat center center;
}

.bottom_links a.next_link {
  margin-left: 30px;
}

.bottom_links a.next_link:after {
  left: -30px;
  background: url(assets/img/prev.png) no-repeat center center;
}

/* Print
---------------------------------------*/
@media print {
  html {
    font-size: 50% !important;
  }

  body {
    width: 1000px;
  }

  header {
    position: static;
  }

  #tools,
  #headoption,
  #fullmenu,
  #searchpanel,
  footer > div,
  footer > div.utility ul,
  #head_bg,
  main + section,
  main + section + section,
  .button.back,
  main .contents .action_area {
    display: none;
  }

  #categorylabel > div {
    height: auto;
    background: none !important;
  }

  footer > div.utility {
    display: block;
  }
}
