@charset "utf-8";
/*
Theme Name: OXIDE
Theme URI: https://www.opt-oxide.com
Description: OXIDEtheme
Version: 1.0.7
Author: OXIDE
Author URI: https://www.opt-oxide.com
*/

/* ==========================================================================*/
/*【全般設定】*/
/* ==========================================================================*/
html {
  background: #fff;
  font-size: 62.5%;
  /* 20241115 add */
  overflow-x: hidden;
}

body {
  background: #f8f8f8;
  color: #242424;
  font-family: "メイリオ", "ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro",Helvetica,Arial,Verdana,sans-serif;
  font-size: 1.6rem;
  line-height: 1.75;
  text-align: center;
  -webkit-text-size-adjust: 100%;
}

fieldset {
  border: none;
}

select,
textarea,
input {
  border: 1px solid #aaa;
  max-width: 100%;
  padding: .2em;
}

select,
textarea {
  font-family: "メイリオ","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro",Helvetica,Arial,Verdana,sans-serif;
  font-size: 1.4rem;
  padding: .5rem .75rem;
}

select {
  appearance: auto;
  -moz-appearance: auto;
  -webkit-appearance: auto;
}

input[type="text"],
input[type="email"],
input[type="url"] {
  font-size: 1.6rem;
  max-width: 100%;
  padding: .5rem .75rem;
  width: auto;
}

dd {
	margin-bottom: 1em;
}

sub {
  line-height: 1;
}

input.formButton {
	font-size: .8em;
	padding: 1px;
}

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

  input,
  select,
  textarea {
    font-size: 16px;
  }

}

p {
	margin :1.2em 0;
}

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

iframe {
  max-width: 100%;
}

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

  iframe {
    height: auto;
  }

  iframe[src*="youtube"],
  iframe[src*="youtu.be"] {
    aspect-ratio: 16/9;
  }

}

th,
td {
  border: solid 1px #242424;
  padding: .5rem;
}

th {
  background: #666;
  color: #fff;
  font-weight: normal;
  text-align: left;
  white-space: nowrap;
}

td {
  background: #fff;
}

.hidden {
  display: none;
}

.alignleft {
	float: left;
	margin-right: 1.5rem;
}

.alignright {
	float: right;
	margin-left: 1.5rem;
}

.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

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

  .alignleft,
  .alignright {
    max-width: 50%;
  }

}

.clear-r {
	clear:right;
}


.banner{
	margin-bottom:10px;
}

.bannerb{
	margin-top: 25px;
	margin-right:60px;
	text-align: right;
}

.waku{
	border:solid 1px #aaa;
	background:#EFEBF1;
	background:#fff;
	padding:10px;
}

.waku-border {
	border: solid 1px #D1D1D1;
	background: #fff;
	padding: 10px;
}

strong {
	color: #9f0b0e;
	font-weight: bold;
}

hr{
	clear:both;
	border-style: dotted none none none;
	border-top-width: 1px;
	border-top-color: #ccc;
	height: 1px; 
	margin:0;
}

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

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


/* ==========================================================================*/
/*【リンクの設定】*/
/* ==========================================================================*/

a {
	color:#0076a3;
	text-decoration: none;
}

a,
a::before,
a::after {
  transition: background .1s ease-out, color .1s ease-out, opacity .1s ease-out;
}

a:hover {
  color:#9f0B0e;
  opacity: .85;
  text-decoration: none;
}


/* ==========================================================================*/
/*【見出しの設定】*/
/* ==========================================================================*/
/*
h1 {
	margin-top:0;
	padding:8px;
	font-size:1.2em;
	margin:0;
	background:#434343;
	color:#fff;
	font-weight:normal;
}

h1 a{
	color:#fff;
	text-decoration:none;
}

h1 a:visited{
	color:#fff;
	text-decoration:none;
}

h1 a:hover {
	color:#fff;
	text-decoration:underline;
}
*/

@media (max-width:1px) {

  h2{
      font-size:1.2em;
      margin:1.0em 0;
      padding:8px;
      color:#9F0B0E;
      background:#fff;
      background-image:url(images/h2bg.gif);
      background-position:bottom left;
      background-repeat:repeat-x;
      border:solid 1px #ddd;
      font-weight:normal;
  }

  h2 a{
      color:#9F0B0E;
      text-decoration:none;
  }

  h2 a:visited{
  /*	color:#9F0B0E;*/
      text-decoration:none;
  }

  h2 a:hover{
  /*	color:#9F0B0E;*/
      text-decoration:underline;
  }
  
}

h3 {
	font-size:1em;
	font-weight:normal;
	margin:1.6em 0;
	padding:2px 10px;
	color:#242424;
	border:solid 1px #242424;
}


h4 {
	font-size:1.0em;
	margin:0;
	color:#242424;
	background:#fff;
}


h5 {}

h6 {}


/* === renewal === */

h1,
.title-primary {
  background: none;
/*  background: linear-gradient(-5deg, #a00e15 19%, rgba(168, 6, 6, 0) 20%, rgba(168, 6, 6, 0) 80%, #a00e15 81%);*/
  border: none;
  color: #242424;
  font-size: 3.6rem;
  font-weight: normal;
  line-height: 1;
  margin: 1.5rem auto 3.5rem;
  padding: 0;
  width: 100%;
}

h1::after,
.title-primary::after {
  background: #242424;
  content: '';
  display: block;
  height: .3rem;
  margin: 2.5rem auto 0;
  width: 7.5rem;
}

.el-subtitle {
  display: block;
  font-size: clamp(1.5rem, .6em, 2.4rem);
  margin: 1rem auto;
}

.flex-container-main .title-primary {
  margin-bottom: 7.5rem;
}

h2:not(.title-liner):not(.main-section-title),
.title-secondary {
  background: none;
  border: none;
  color: #242424;
  font-size: 2rem;
  font-weight: bold;
  margin: 2rem 0 2.5rem;
  padding: 1rem 1.5rem .75rem 2.5rem;
  position: relative;
  text-align: left;
}

h2:not(.title-liner):not(.main-section-title) a,
.title-secondary a {
  color: #242424;
}

h2:not(.title-liner):not(.main-section-title)::before,
.title-secondary::before {
  background: #a00e15;
  content: '';
  display: inline-block;
  height: 90%;
  left: 0;
  margin-right: .5em;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: .75em;
}

h2:not(.title-liner):not(.main-section-title)::after,
.title-secondary::after {
/*
  border-color: transparent transparent #d2d2d2 transparent;
  border-style: solid;
  border-width: 0 0 5rem 3.5rem;
  content: '';
  height: 0;
  left: 8.5rem;
  position: absolute;
  top: 1rem;
  transform: rotate(-135deg);
  width: 0;
  z-index: -1;
*/
}

/*h2,*/
h2[style*="center"],
.title-liner {
  align-items: center;
  background: none;
  border: none;
  color: #242424;
  display: flex;
  font-size: 2.2rem;
  font-weight: bold;
  justify-content: center;
  letter-spacing: .1rem;
  margin: 2.5rem auto 1.25rem;
  padding: 0;
  text-align: left;
  text-shadow: none;
  width: 100%;
}

/*h2 a,*/
h2[style*="center"] a,
.title-liner a {
  color: #242424;
  display: block;
  line-height: 1;
  padding: 1rem 0;
}

/*h2::before,*/
/*h2::after,*/
h2[style*="center"]::before,
h2[style*="center"]::after,
.title-liner::before,
.title-liner::after {
  background: #242424;
  border: none;
  content: '';
  display: block;
  flex-basis: 7.5rem;
  height: .2rem;
  margin: 0;
  position: static;
  transform: none;
}

h2[style*="center"]::before,
.title-liner::before {
  margin-right: 1.5rem;
}

h2[style*="center"]::after,
.title-liner::after {
  margin-left: 1.5rem;
}

@media screen and (max-width:767px) {
  
  h2[style*="center"]::before,
  h2[style*="center"]::after,
  .title-liner::before,
  .title-liner::after {
    flex-basis: 5rem;
  }
  
}

/* === renewal === */


/* ==========================================================================*/
/*【リストの設定】*/
/* ==========================================================================*/
li {
  text-align: left;
}

.content-wrapper ul,
.content-wrapper ol {
	margin-left: 1.5rem;
	padding-left: 1.5rem;
}

.content-wrapper li {
	margin: .2em 0;
}

.content-wrapper ul > li {
	list-style-type: square;
}

.content-wrapper ol > li {
	list-style-type: decimal;
}

dl.bulletin {
	width:305px;
}

dl.bulletin dt{
	width:60px;
	float:left;
	margin:0;
	padding:0;
}

dl.bulletin dd {
	padding:8px 0;
	margin-left:60px;
	font-size:0.9em;
	line-height:1.4;
}


/* ==========================================================================*/
/*【ヘッダーの設定】*/
/* ==========================================================================*/

header {
  background-color: #fff;
  box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .1);
  height: 7.5rem;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 9999;
}

header + * {
  margin-top: 7.5rem;
}

.header-container {
  align-items: center;
  display: flex;
  justify-content: space-between;
  height: 7.5rem;
  margin: auto;
  max-width: 120rem;
}

.header-container-logo {
  flex-grow: 0;
  padding: 1rem;
  min-width: 12rem;
  width: 15.5rem;
}

.header-container-logo h1 {
  font-size: inherit;
  margin: 0;
}

.header-container-logo h1::after {
  content: none;
}

.header-container-logo img {
  width: 13.5rem;
}

@media screen and (max-width:767px) {
  
  header {
    height: 6.5rem;
  }

  header + * {
    margin-top: 6.5rem;
  }

  .header-container {
    background: #fff;
    height: 6.5rem;
    padding: 0;
    transition: .5s;
  }

  .header-container-logo {
    flex: 1;
    text-align: left;
  }

  .header-container-logo a {
    align-items: center;
    display: flex;
    padding: 1rem 2.5rem;
  }

  body:not(.js_scrollLock) .js-short {
    height: 0 !important;
  }

  body:not(.js_scrollLock) .js-short .header-container {
    height: 0 !important;
    transform: rotateX(90deg) !important;
  }
  
}


/* === [SP] menu toggle === */
.header-container-menu-toggle {
  margin-left: 1.8rem;
}

.btn-menu-toggle {
  align-items: center;
  background: linear-gradient(180deg, #414141, #242424);
  border: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  height: 8rem;
  justify-content: center;
  padding: .5rem 1.5rem;
  width: 8rem;
}

.js_active .btn-menu-toggle {
/*  background: rgba(255, 255, 255, .1);*/
  border: solid .1rem #fff;
}

.header-container-menu-toggle-ico {
  margin-top: .5rem;
  max-width: 2.6rem;
}

.header-container-menu-toggle-label {
  color: #fff;
  font-size: 1rem;
}

@media screen and (max-width:767px) {
  
  .header-container-menu-toggle {
    margin-left: 5vw;
  }
  
  .btn-menu-toggle {
    height: 6.5rem;
    width: 6.5rem;
  }

  .header-container-menu-toggle-label {
  }

  body.js_scrollLock {
    overflow: hidden !important;
  }
  
}

/* === [SP] menu toggle === */


/* === mainmenu === */
.header-container-menu {
  display: flex;
  flex: 1;
  height: 100%;
  justify-content: space-between;
  padding-right: 15.5rem;
}

@media screen and (max-width:767px) {
  
  .header-container-menu {
    background: linear-gradient(0deg, #535353, #242424);
    color: #fff;
    display: block;
    font-size: 1.4rem;
    font-weight: bold;
    height: calc(100vh - 6.5rem);
    right: -100%;
    overflow-y: auto;
    padding: 3.5rem 2.5rem 2.5rem;
    position: absolute;
    top: 6.5rem;
    transition: .15s;
    width: 95%;
  }
  
  .js_active .header-container-menu {
    right: 0;
  }

  .js_active .header-container-menu::before {
    background: rgba(0, 0, 0, .25);
    bottom: 0;
    content: '';
    display: block;
    height: 100%;
    left: 0;
    position: fixed;
    width: 100%;
    z-index: -1;
  }
  
}

.header-container-main {
  flex: 1;
  margin: 0 2vw;
  white-space: nowrap;
}

.menu-first {
  display: flex;
  font-size: 1.6rem;
  height: 100%;
  justify-content: space-around;
  margin: 0;
  min-width: 35rem;
  padding: 0;
}

.header-container-main li {
  height: 100%;
  list-style-type: none;
}

.header-container-main a {
  color: #242424;
  display: block;
  padding: .5rem;
}

.header-container-main .header-container-main-menu-wrapper {
  position: relative;
}

.header-container-main-menu-wrapper > a {
  align-items: center;
  display: inline-flex;
  height: 100%;
  justify-content: center;
  min-width: 9rem;
  text-align: center;
}

.header-container-main-menu-wrapper > a:hover,
.el-current > a {
  background: rgba(0, 0, 0, .1);
}

.header-container-main-menu-wrapper > a:hover::after,
.el-current > a::after {
  bottom: 0;
  border: solid 1.5rem transparent;
  border-bottom-color: #242424;
  content: '';
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
}

.el-current > a::after {
  border-bottom-color: #544e4e;
}

.header-container-main-menu-wrapper__nochild > a:hover::after,
.el-current.header-container-main-menu-wrapper__nochild > a::after {
  display: none;
}

.menu-second-wrap {
  background: #242424;
  box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .1);
  display: none;
  left: 0;
  padding: 1.5rem;
  position: fixed;
  width: 100vw;
}

.menu-second {
  display: flex;
  flex-wrap: wrap;
  font-size: 1.3rem;
  margin: auto;
  max-width: 1280px;
  justify-content: center;
  white-space: nowrap;
}

.menu-second li {
}

.menu-second > li:not(:last-child) {
  border-right: solid 1px #fff;
}

.menu-second a {
  border-radius: .5rem;
  color: #fff;
  display: block;
  font-size: 1.35rem;
  line-height: 1.4;
  padding: .5rem 1rem;
}

.menu-second a:hover {
  background: rgba(0, 0, 0, .5);
}

.header-container-main-menu-wrapper:not(.el-current):hover .menu-second-wrap,
.header-container-bottom > .menu-second-wrap {
  display: flex;
}

.header-container-main-menu-wrapper .menu-second-wrap::before {
  content: '';
  height: 2.5rem;
  left: 0;
  position: absolute;
  top: -3rem;
}

.header-container-bottom > .menu-second-wrap {
  background: #544e4e;
  position: static;
  width: 100%;
}

@media screen and (max-width:960px) and (min-width:768px) {
  
  .menu-first {
    font-size: 1.6vw;
    justify-content: flex-start;
  }

  .header-container-main-menu-wrapper {
    margin: 0 .5em;
  }
  
  .header-container-main-menu-wrapper > a {
    min-width: auto;
    padding: 1rem 1em;
  }
  
}

@media screen and (max-width:767px) {
  
  .header-container-main {
    flex: none;
    line-height: 1.25;
    margin: 0;
    width: 100%;
  }
  
  .menu-first {
    display: block;
    min-width: auto;
  }
  
  .header-container-main li {
    font-size: 2.4rem;
    font-weight: bold;
    margin: 1rem 0 1.5rem;
  }

  .header-container-main a {
    color: #fff;
    padding: .5rem 2.5rem;
  }
  
  .header-container-main-menu-wrapper > a {
    display: inline-block;
    text-align: left;
  }

  .header-container-main-menu-wrapper:not(.el-current):hover .menu-second-wrap {
    display: none;
  }

  .el-current > a::after,
  .header-container-main-menu-wrapper > a:hover::after {
    display: none;
  }

  .header-container-bottom .menu-second-wrap {
    overflow-x: auto;
    padding: 1.5rem 1rem 1rem;
    position: relative;
    /* js:scroll short */
    transition: padding .15s;
    width: 100%;
    /* ff */
    scrollbar-color: #fff #242424;
    scrollbar-width: thin;
  }

  body:not(.js_scrollLock) .js-short .header-container-bottom .menu-second-wrap {
    padding: 1rem 1rem .5rem;
  }

  .header-container-bottom .menu-second-wrap::-webkit-scrollbar {
    height: 1rem;
  }
  
  .header-container-bottom .menu-second-wrap::-webkit-scrollbar-track {
    background: #242424;
  }
  
  .header-container-bottom .menu-second-wrap::-webkit-scrollbar-thumb {
    background: #999;
    border: none;
    border-radius: .5rem;
  }
  
  .header-container-bottom .menu-second-wrap::-webkit-scrollbar-thumb:hover {
    background: #ccc;
  }
  

  .menu-second {
    flex-wrap: nowrap;
  }

  .header-container-main li {
    margin: 0;
    padding: .25rem .5rem;
  }

  .header-container-main a {
    padding: 0 .25rem;
  }

}
/* === mainmenu === */

/* === side links === */
.side-links-container {
  position: fixed;
  right: 0;
  top: 17.5rem;
}

.side-link-item {
  align-items: center;
  color: #fff;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  font-size: 1rem;
  height: 8.2rem;
  justify-content: center;
  padding: 1rem;
  text-align: center;
  width: 8.2rem;
}

.side-link-item:hover {
  color: #fff;
}

.side-link-item__contact {
  background: linear-gradient(-135deg, #d41620, #a00e15);
}

.side-link-item__youtube {
  background: #fff;
  color: #181818;
}

.side-link-item__youtube:hover {
  color: #181818;
}

.side-link-item__twitter {
  background: #1da1f2;
}

.side-link-item__twitter_x {
  background: #000;
}

.side-link-item > * {
  width: 100%;
}

.side-link-ico {
  width: 3.2rem;
}

.side-link-item__twitter_x .side-link-ico {
  width: 2.8rem;
}

.side-link-label {
  margin-top: .5rem;
}

@media screen and (max-width:767px) {
 
  .side-links-container {
    margin-top: 5rem;
    position: static;
  }

  .side-link {
    margin-bottom: 1.5rem;
  }

  .side-link-item {
    flex-direction: row;
    height: auto;
    justify-content: flex-start;
    width: 100%;
  }

  .side-link-item > * {
    width: auto;
  }

  .side-link-ico {
    margin: 0 1.5rem;
    width: 2.4rem;
  }

  .side-link-item__twitter_x .side-link-ico {
    width: 2.2rem;
  }

  .side-link-label {
    flex: 1;
    font-size: 1.8rem;
    margin: 0;
  }

}

/* === /side links === */

/* === social === */
@media screen and (max-width:767px) {
  
  .header-container-social {
    margin: 2.5vw auto;
    width: 100%;
  }
  
  .header-container-social a {
    align-items: center;
    color: #fff;
    display: flex;
    font-size: 1.6rem;
    justify-content: center;
    margin: auto;
    padding-right: 1.5rem;
    width: 60%;
  }
  
}

/* === social === */

/* === contact === */
.header-container-contact {
  margin-left: 1.25vw;
}

.header-container-contact a {
  align-items: center;
  display: flex;
  flex-direction: column;
  height: 8rem;
  justify-content: center;
  padding: 1.5rem;
  width: 8rem;
}

.header-container-contact-ico {
  margin-top: .5rem;
}

@media screen and (max-width:767px) {
  
  .header-container-contact {
    margin: 2.5vw auto;
    width: 100%;
  }
  
  .header-container-contact a {
    flex-direction: row;
    height: 5rem;
    margin: auto;
    padding: 0 1.25rem 0 0;
    width: 60%;
  }

  .header-container-contact-ico {
    margin: 0 1rem;
  }
  
  .header-container-contact-label {
    font-size: 1.6rem;
    margin: 0;
  }
  
}
/* === contact === */


/* === language === */
.header-container-lang {
  padding: 1rem;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
}

#qtranslate-chooser {}

.qtranxs_language_chooser {
  display: flex;
  justify-content: center;
}

.qtranxs_text {
  background: #eee;
  color: transparent;
  display: block;
  font-size: 1rem;
  height: 3.5rem;
  position: relative;
  width: 5.5rem;
}

.qtranxs_text:hover {
  background: #242424;
  color: transparent;
}

.qtranxs_text:hover::after {
  color: #fff;
}

.qtranxs_text::after {
  color: #8a8a8a;
  font-size: 1.4rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}

.active > .qtranxs_text {
  background: #242424;
}

.active > .qtranxs_text::after {
  color: #fff;
}

.qtranxs_text_ja {
  border-radius: 1rem 0 0 1rem;
}

.qtranxs_text_en {
  border-radius: 0 1rem 1rem 0;
}

.qtranxs_text_ja::after {
  content: 'JP';
}

.qtranxs_text_en::after {
  content: 'EN';
}

@media screen and (max-width:767px) {
  
  .header-container-lang {
    margin-top: 2.5rem;
    position: static;
    transform: none;
  }
  
}

/* === language === */


/* === old === */

#header{
/*
	margin:0;
	padding:0;
	width:100%;
	background:#fff;
	background-image:url(images/bg.gif);
	background-position:top left;
	background-repeat:repeat-x;
*/
}

#header-inner{
	margin:0 auto;
	padding:0;
	width:960px;
	text-align:left;
}

#logo {
	width:400px;
	float:left;
}

#logo img{
	vertical-align:middle;
}


#language{
	width:500px;
	text-align:right;
	float:right;
	margin-top:4px;
}


#inquiry{
	width:500px;
	text-align:right;
	float:right;
	margin-top:20px;
	font-size:1.6em;
}

.screen-reader-text{
	display:none;
}

#kanban-top{
	margin:0;
	height:200px;
	background-image:url(images/kanbanbg-top.gif);
	background-position:bottom left;
	background-repeat:repeat-x;
	text-align:center;
	overflow:hidden;
}

#kanban{
	margin:0;
	height:120px;
/*	background-image:url(images/kanbanbg.gif);*/
	background-position:top left;
	background-repeat:repeat-x;
	text-align:center;
}

#gb{
	margin:0;
	padding: 20px 0 0;
	background-image:url(images/kanbanbg.gif);
	background-position:top left;
	background-repeat:repeat-x;
}

/* === old === */

/* === renewal === */
/* ==========================================================================*/
/*【トップページ】*/
/* ==========================================================================*/

.body-frontpage {
  background: #fff;
  overflow-x: hidden;
}

.body-frontpage .main-container {
  overflow: hidden;
}

.main-container {
  width: 100%;
}

.main-container * {
  box-sizing: border-box;
}

.main-visual {
  background-image: url(images/main-visual-bg.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  height: 40vw;
  position: relative; /* add 20210301(movie update) */
  width: 100%;
}

.main-visual img {
  margin: 5.5vw auto 0;
}

@media screen and (max-width:767px) {
  
  .main-visual {
    height: 90vw;
  }
  
  .metaslider {
    transform: scale(2.5) translateY(30%);
  }
  
  .ul.slides > li {
    transform: scale(1.1) translateY(1.5vw);
  }
  
}

.main-diagonal-wrapper {
  position: relative;
  width: 100%;
}

.main-diagonal-container {
  position: relative;
  z-index: 8;
}

.main-visual + .main-diagonal-wrapper {
  margin-top: 5vw;
}

.main-diagonal-wrapper + .main-diagonal-wrapper {
  margin-top: 10vw;
  z-index: 0;
}

.main-diagonal-wrapper::before {
  content: '';
  right: 0;
  position: absolute;
  top: -10vw;
  transform: rotate(-5deg);
  transform-origin: right top;
  width: 150%;
  z-index: 1;
}

.main-diagonal-wrapper::before,
.main-diagonal-wrapper::after {
  height: calc(100% + 10vw);
  width: 150%;
}

.main-diagonal-wrapper:nth-child(even)::before {
  background: #eee;
}

.main-diagonal-wrapper:nth-child(odd)::before {
  background: #fff;
}

.main-visual + .main-diagonal-wrapper::before {
  content: '';
  left: 0;
  position: absolute;
/*  top: calc(50% + 10rem);*/
  top: -10vw;
  transform: rotate(5deg);
  transform-origin: left top;
  z-index: 4;
}

.main-visual + .main-diagonal-wrapper::after {
  background: #a00e15;
  content: '';
  right: 0;
  position: absolute;
/*  top: calc(50% - 10rem);*/
  top: -10vw;
  transform: rotate(-5deg);
  transform-origin: right top;
  z-index: 2;
}

.main-diagonal-container {
  min-height: 36.5rem;
  margin: auto;
  max-width: 120rem;
  padding: 2.5rem 2.5rem 5rem;
}

/*h2*/
.main-section-title {
  background: none;
  border: none;
  color: #242424;
  font-size: 3.6rem;
  font-weight: normal;
  line-height: 1;
  margin: 2.5rem auto;
  padding: 0;
}

/* 汎用 : ボタン */
/*
.main-btn-more {
  align-items: center;
  background: url(images/ico_arrow__bg.png), linear-gradient(15deg, #a30f16, #d21620);
  background-position: 10%;
  background-repeat: no-repeat;
  color: #fff;
  display: inline-flex;
  font-size: 1.4rem;
  height: 5rem;
  justify-content: center;
  padding: 0 1rem 0 5rem;
  position: absolute;
  right: 0;
  top: -7rem;
  width: 20rem;
}
*/

.main-btn-more {
  align-items: center;
  background: url(images/ico_arrow__bg_black.png);
  background-position: 10%;
  background-repeat: no-repeat;
  border-radius: .25rem;
  color: #242424;
  display: inline-flex;
  font-size: 1.4rem;
  font-weight: bold;
  height: 5rem;
  justify-content: center;
  padding: .5rem 1.5rem .5rem 7.5rem;
  position: absolute;
  right: 0;
  text-align: right;
  top: -5rem;
}

/*
.main-btn-more:hover {
  background-position: 15%;
  padding: 0 1rem 0 calc(2.5rem + 5%);
  transition: .1s;
}
*/

.main-btn-more:hover {
  background-color: rgba(0, 0, 0, .1);
}

@media screen and (max-width:767px) {
  
  .main-btn-more {
    bottom: -5rem;
    top: inherit;
  }
  
}

/* 汎用 : リスト */
.main-section-lists-wrapper {
  margin: 0 auto 2.5rem;
  max-width: 90rem;
  position: relative;
}

.content-wrapper .main-section-lists,
.main-section-lists {
  border-top: dotted .1rem #242424;
  font-size: 1.4rem;
  margin: 0;
  padding: 0;
}

.content-wrapper .main-section-lists > li,
.main-section-lists > li {
  border-bottom: dotted .1rem #242424;
  list-style-type: none;
  padding: 1rem 0;
}

.content-wrapper .main-section-lists a,
.main-section-lists a {
  color: #242424;
}

@media screen and (max-width:767px) {
  
  .main-section-lists-wrapper {
    margin-bottom: 7.5rem;
  }
  
}

/* 汎用 : シンボル */
.main-symbol-hyphen {
  margin: 0 .5em;
}

.main-symbol-arrow {
  margin: 0 1em;
}

/* - line ups - */
.main-lineups-attensions {
  /* align-items: center; */
  display: flex;
  justify-content: space-around;
  margin: 4.5rem 0;
}

.main-lineups-item {
  max-width: 26rem;
  width: 30%;
}
  
.main-lineups-item + .main-lineups-item {
  margin-left: 3.25rem;
}

.main-lineups-inner {
  border: solid .1rem #a00e15;
  display: block;
  height: 26.5vw;
  margin-bottom: 2rem;
  max-height: 26rem;
  position: relative;
}

.main-lineups-inner:hover img {
  transform: translate(-50%, -50%) scale(1.1);
  transition: .2s;
}

.main-lineups-inner + * {
  position: relative;
  z-index: 16;
}

.main-lineups-label {
  background: #242424;
  border: solid .1rem #fff;
  color: #fff;
  display: inline-block;
  font-size: 1.6rem;
  left: 50%;
  padding: .75rem 2.5rem;
  position: absolute;
  top: -2.1rem;
  transform: translateX(-50%);
  white-space: nowrap;
  z-index: 16;
}

.main-lineups-image-wrapper {
  border-radius: 50%;
  box-shadow: 0 0 0 1.5rem #eee;
  height: 100%;
  overflow: hidden;
  position: relative;
  transform: scale(calc(28/26));
}

body:not(.body-frontpage) .main-lineups-image-wrapper {
  box-shadow: 0 0 0 1.5rem #f8f8f8;
}

.main-lineups-image-wrapper img {
  border-radius: 50%;
  display: block;
  height: 28rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 28rem;
}

.main-lineups-btn {
  align-items: center;
  background: url(images/ico_arrow__bg.png), linear-gradient(15deg, #a30f16, #d21620);
  background-position: 17.5%;
  background-repeat: no-repeat;
  border: none;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-size: 1.6rem;
  justify-content: center;
  max-width: 30rem;
  min-height: 6rem;
  padding: 0 2rem 0 5.5rem;
  width: 100%;
}

.main-lineups-btn:hover {
  background: url(images/ico_arrow__bg.png), rgba(0, 0, 0, .85);
  background-position: 17.5%;
  background-repeat: no-repeat;
  color: #fff;
}

.main-lineups-btn:hover + .main-lineups-wavelength-container,
.main-lineups-wavelength-container:hover {
  display: block;
}

.main-lineups-wavelength-container {
  background: rgba(0, 0, 0, .85);
  box-shadow: 0 .75rem .75rem rgba(0, 0, 0, .5);
  color: #fff;
  display: none;
  left: 0;
  overflow: auto;
  padding: 6.5rem 7.5rem;
  position: absolute;
  max-width: 120rem;
  width: 100%;
  z-index: 32;
}

@media screen and (max-width:767px) {
  
  .main-lineups-attensions {
    flex-direction: column;
  }
  
  .main-lineups-item {
    max-width: none;
    width: auto;
  }
  
  .main-lineups-item + .main-lineups-item {
    margin-left: 0;
  }
  
  .main-lineups-item:not(:last-child) {
    margin-bottom: 10.5rem;
  }
  
  .main-lineups-inner {
    height: 60vw;
    margin-left: auto;
    margin-right: auto;
    max-height: 35rem;
    max-width: 35rem;
    width: 60vw;
  }

  .main-lineups-image-wrapper {
    box-shadow: 0 0 0 2.5vw #eee;
  }
  
  .main-lineups-image-wrapper img {
    height: auto;
    width: 100%;
  }
  
  .main-lineups-inner:hover img {
    transform: translate(-50%, -50%) scale(1);
  }
  
  .main-lineups-wavelength-container {
    padding: 4.5rem;
  }

  
}

/* - 波長表 - */

.table-wavelength {
  border: solid .1rem #959595;
  border-collapse: collapse;
  min-width: 92rem;
  width: 100%;
}

.table-wavelength th {
  background: inherit;
  border: solid .1rem #959595;
  margin: 0;
  padding: 0
}

.table-wavelength td {
  background: inherit;
  border: solid .1rem #959595;
  border-top: none;
  border-bottom: none;
  margin: 0;
  padding: 1.1rem 0;
  position: relative;
}

.table-wavelength-heads {
  display: flex;
  margin: 0 auto;
  padding: 0;
}

.table-wavelength tr:first-child td:first-child {
  padding: 0;
  width: 14.5rem;
}

.table-wavelength [class^="table-wavelength-heads-"] {
  font-size: 1.4rem;
  padding-bottom: 2.5rem;
  text-align: center;
  width: 9.625%;
}

.table-wavelength-heads-yray {
  box-shadow: 0 -2.5rem #000 inset;
}

.table-wavelength-heads-xray {
  box-shadow: 0 -2.5rem #bfbfbf inset;
}

.table-wavelength-heads-duv {
  box-shadow: 0 -2.5rem #60c inset;
}

.table-wavelength-heads-uv {
  box-shadow: 0 -2.5rem #90c inset;
}

.table-wavelength-heads-visible {
  box-shadow: 0 -2.5rem #090 inset;
}

.table-wavelength-heads-nir {
  box-shadow: 0 -2.5rem #f00 inset;
}

.table-wavelength-heads-telecom {
  box-shadow: 0 -2.5rem #fcc inset;
}

.table-wavelength-heads-midir {
  box-shadow: 0 -2.5rem #c00 inset;
}

.table-wavelength-heads-thz {
  box-shadow: 0 -2.5rem #960 inset;
}

.table-wavelength-firstrow th,
.table-wavelength-firstrow td {
  border-top: solid .1rem #959595;
}

.table-wavelength-firstrow th {
  font-size: 1.3rem;
  padding: .5em;
}

[class^="table-wavelength-label-"] {
  color: #fff;
}

.table-wavelength-rows a {
  display: block;
  font-size: 1.4rem;
  margin: .2rem 0;
  padding: .5rem;
  word-break: break-word;
}

.table-wavelength-rows a sub {
  font-size: 1rem;
  line-height: 0;
}

.table-wavelength-label-purple {
  background: #f6eefd;
  border: solid .2rem #60c;
  color: #60c;
}

.table-wavelength-label-green {
  background: #e8fce8;
  border: solid .2rem #090;
  color: #090;
}

.table-wavelength-label-red {
  background: #ffefef;
  border: solid .2rem #f00;
  color: #f00;
}

.table-wavelength-label-brown {
  background: #f2ebdd;
  border: solid .2rem #f70;
  color: #f70;
}

.table-wavelength-label-black {
  background: #efefef;
  border: solid .2rem #000;
  color: #000;
}

.table-wavelength a,
.table-wavelength span {
  font-size: 1.1rem;
  padding: .5rem 0;
  position: absolute;
  top: .2rem;
  z-index: 16;
}

.table-wavelength span {
  background: #aaa;
  border-color: rgba(0, 0, 0, .5);
}

.table-wavelength .w-1 {
  width: 100%;
}

.table-wavelength .w-2 {
  width: calc(200% + 1px);
}

.table-wavelength .w-25 {
  width: calc(250% + 2px);
}

.table-wavelength .w-26 {
  width: calc(266.6% + 2px);
}

.table-wavelength .w-28 {
  width: calc(283.3% + 3px);
}

.table-wavelength .w-3 {
  width: calc(300% + 2px);
}

.table-wavelength .w-33 {
  width: calc(333.3% + 3px);
}

.table-wavelength .w-35 {
  width: calc(350% + 3px);
}

.table-wavelength .w-4 {
  width: calc(400% + 3px);
}

.table-wavelength .w-45 {
  width: calc(450% + 4px);
}

.table-wavelength .w-5 {
  width: calc(500% + 4px);
}

.table-wavelength .w-55 {
  width: calc(500% + 5px);
}

.table-wavelength .m-0,
.table-wavelength .m-1,
.table-wavelength .m-2,
.table-wavelength .m-3,
.table-wavelength .m-4,
.table-wavelength .m-5,
.table-wavelength .m-6,
.table-wavelength .m-7,
.table-wavelength .m-8 {
  margin-left: 0;
  left: 0;
}

.table-wavelength .m-03,
.table-wavelength .m-23 {
  margin-left: 0;
  left: 34%;
}

.table-wavelength .m-06,
.table-wavelength .m-26 {
  margin-left: 0;
  left: 67%;
}

.table-wavelength .m-05,
.table-wavelength .m-35 {
  margin-left: 0;
  left: 50%;
}

@media screen and (max-width:767px) {
  
  .table-wavelength {
    min-width: 80rem;
  }
  
  .table-wavelength-firstrow th {
    white-space: inherit;
  }
  
  .table-wavelength td {
    padding: .5rem 0;
  }

  .table-wavelength tr:first-child td:first-child {
    width: 10%;
  }
  
  
}

/* - /波長表 - */


/* - lineups sub 1 - */
.main-lineups-sub-lists {
  margin: 7.5rem auto 5rem;
  padding: 0;
}

.main-lineups-sub-lists li {
  list-style: none;
  padding-left: 5rem;
  text-align: left;
  margin: auto;
  max-width: 40rem;
  width: 100%;
}

.main-lineups-sub-item {
  align-items: center;
  background: url(images/ico_arrow__bg_black.png);
  background-position: 2rem;
  background-repeat: no-repeat;
  border: none;
  color: #242424;
  cursor: pointer;
  display: inline-flex;
  font-size: 1.8rem;
  justify-content: flex-start;
  margin: auto;
  min-height: 6rem;
  padding-left: 7.5rem;
}

.main-lineups-sub-inner {
  align-items: center;
  border-radius: 1.25rem;
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.main-lineups-sub-label {
  background: #242424;
  border: solid .1rem #fff;
  bottom: -9%;
  color: #fff;
  font-size: 1.5rem;
  left: 55%;
  line-height: 1.35;
  min-width: 15rem;
  padding: 1.25rem 1rem;
  position: absolute;
}

.main-lineups-sub-inner::after {
  border: solid .1rem #a00e15;
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 3.25rem;
  top: 3.25rem;
  z-index: -1;
}

.main-lineups-sub-image-wrapper {
  background: #bebebe;
  height: calc(17.5rem * 1);
  overflow: hidden;
  position: relative;
  width: calc(30rem * 1);
}

.main-lineups-sub-image-wrapper img {
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: .2s;
  width: 100%;
}

.main-lineups-sub-inner:hover img {
  transform: translate(-50%, -50%) scale(1.1);
}


@media screen and (max-width:767px) {
  
  .main-lineups-sub-lists {
    margin: 5rem auto;
  }
  
  .main-lineups-sub-lists li {
    padding-left: 0;
  }

  .main-lineups-sub-item {
    text-align: left;
  }
  
}

/* - /lineups sub 1 - */


/* - lineups sub 2 - */
.main-lineups-lists {
  margin: 0 auto;
  padding: 0;
}

.main-lineups-lists li {
  list-style-type: none;
}

.main-lineups-lists a {
  align-items: center;
  background: url(images/ico_arrow__bg.png), linear-gradient(15deg, #a30f16, #d21620);
  background-position: 10%;
  background-repeat: no-repeat;
  border: none;
  color: #fff;
  cursor: pointer;
  display: flex;
  font-size: 1.6rem;
  justify-content: center;
  margin: auto;
  max-width: 50rem;
  min-height: 6rem;
  padding: 0 2rem 0 10%;
  width: 100%;
}

.main-lineups-lists a:hover {
  background-position: 10%;
}
/* - /lineups sub 2 - */


/* - application areas - */
.main-areas-lists {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
  padding: 0;
}

.main-areas-lists li {
  list-style-type: none;
}

.main-areas-lists li + li {
  margin-left: 1.5rem;
}

.main-areas-inner {
  display: block;
  margin-top: .6rem;
}

.main-areas-label {
  align-items: center;
  background: #f5f5f5;
  color: #000;
  display: flex;
  font-size: 1rem;
  height: 6rem;
  justify-content: center;
  position: absolute;
  right: -.7rem;
  top: -.6rem;
  width: 10rem;
}

.main-areas-image-wrapper {
  position: relative;
  margin-right: .75rem;
  max-width: 18rem;
  width: 100%;
}

@media screen and (max-width:767px) {
  
  .main-areas-image-wrapper {
    margin: auto;
  }
  
  .main-areas-lists {
    flex-wrap: wrap;
    justify-content: space-around;
    margin: 0 1rem;
  }
  
  .main-areas-lists li {
    flex-basis: 45%;
    margin-bottom: 1.5rem;
  }
  
  .main-areas-lists li + li {
    margin-left: 0;
  }  
  
}

/* - events - */
.main-events-title {
  border: none;
  font-size: 1.6rem;
  line-height: 1.2;
  margin: 0;
  padding: 0;
}

.main-events-detail {
  display: inline-block;
  margin: 0;
}

.main-events-date {
  font-weight: bold;
}

/* - news - */
.main-news-detail {
}

.main-news-date {
  font-weight: bold;
  margin-right: 1em;
}

.main-news-title {
}

.main-news-label-new {
  background: #f7e24e;
  border-radius: .25rem;
  font-size: .85em;
  font-weight: bold;
  line-height: 1;
  margin-left: .5em;
  padding: .125rem .75rem;
}

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

  .main-section-lists .main-news-detail {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
  }
  
  .main-news-title {
    display: block;
    order: 2;
  }
  
  .main-news-label-new {
    align-items: center;
    display: inline-flex;
    line-height: 0;
    margin-left: 1em;
  }
  
}


/* === renewal === */


/* ----- */

.flex-container {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
/*  justify-content: space-between;*/
  margin: 2.5rem auto 5.5rem;
  max-width: 1200px;
  padding-top: 1rem;
}

.flex-container-breadcrumbs {
  display: flex;
  width: 100%;
}

.flex-container-head {
  display: flex;
  flex-wrap: wrap;
  margin-top: 1rem;
  position: relative;
  width: 100%;
}

.flex-container-main {
  background: #fff;
  border-radius: .5rem;
  flex: 1;
  margin: 2rem 0;
  max-width: 88rem;
  padding: 2.5rem 4rem 4rem;
  width: 50%;
  word-break: break-word;
}

.flex-container-head > * {
  width: 100%;
}

.flex-container-main-item {
  padding: 0 .5rem 2.5rem;
  margin-bottom: 4.5rem;
  text-align: left;
}

.flex-container .flex-container-main:last-child {
  max-width: none;
}


.flex-container-sub {
  align-self: flex-start;
  flex: 0;
  flex-basis: 30rem;
  margin-left: 2.5rem;
  margin-top: 2rem;
}

@media screen and (max-width:767px) {
  
  .flex-container {
    margin-left: 1rem;
    margin-right: 1rem;
  }
  
  .flex-container-main {
    flex: none;
    max-width: none;
    padding: 1.5rem 2.5rem;
    width: 100%;
  }
  
  .flex-container-sub {
    flex: none;
    margin-left: 0;
    width: 100%;
  }
  
}


.wavelength-container {
  background: rgba(0, 0, 0, .85);
  color: #fff;
  left: 0;
  overflow: auto;
  padding: 6.5rem 7.5rem;
/*  position: absolute;*/
  max-width: 120rem;
  width: 100%;
  z-index: 32;
}

.wavelength-container-hov {
/*  background: rgba(0, 0, 0, .85);*/
  color: #fff;
  left: 0;
  overflow: auto;
/*  padding: 6.5rem 7.5rem;*/
/*  position: absolute;*/
  max-width: 120rem;
  text-align: left;
  width: 100%;
  z-index: 32;
}

/**/

.products-main-item-inner + .products-wavelength-btn {
  margin-top: 5rem;
  max-width: none;
  width: calc(100% + 3.25rem + .2rem);
}


.products-wavelength-btn {
  align-items: center;
  background: url(images/ico_arrow__bg.png), linear-gradient(15deg, #a30f16, #d21620);
  background-position: 17.5%;
  background-repeat: no-repeat;
  border: none;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-size: 1.6rem;
  justify-content: center;
  max-width: 30rem;
  min-height: 6rem;
  padding: 0 2rem 0 5.5rem;
  width: 100%;
}

.products-wavelength-btn:hover {
  background: url(images/ico_arrow__bg.png), rgba(0, 0, 0, .85);
  background-position: 17.5%;
  background-repeat: no-repeat;
  color: #fff;
}

.products-wavelength-btn:hover + .products-wavelength-container,
.products-wavelength-container:hover {
  display: block;
}

.products-wavelength-container {
  background: rgba(0, 0, 0, .85);
  box-shadow: 0 .75rem .75rem rgba(0, 0, 0, .5);
  color: #fff;
  display: none;
  left: 0;
  overflow: auto;
  padding: 6.5rem 7.5rem;
  position: absolute;
  text-align: center;
  max-width: 120rem;
  width: 100%;
  z-index: 32;
}

@media screen and (max-width:767px) {
  
  .products-wavelength-btn {
    font-size: 1.4rem;
  }
  
}

/**/

/*第二階層の波長表*/
.flex-container-head .wavelength-container,
.flex-container-head .wavelength-container-hov {
  margin: 2rem 0;
}

@media screen and (max-width:767px) {
  
  .wavelength-container,
  .wavelength-container-hov {
    padding: 4.5rem 4rem;
  }
  
  .wavelength-container-hov {
    text-align: center;
  }

  
}

.flex-container-main .table-wavelength th,
.flex-container-main .table-wavelength td {
  color: #242424;
}

/* ----- */

/* ==========================================================================*/
/*【第二】*/
/* ==========================================================================*/

/* - product only - */
.products-lineups-attensions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  margin: 4.5rem 0 7.5rem;
}

.products-lineups-item {
  margin-bottom: 12.5rem;
/*  max-width: 26rem;*/
  width: 100%;
}

.products-lineups-inner {
  border: solid .1rem #a00e15;
  display: block;
  height: 26.5vw;
  margin: 0 auto 2rem;
  max-height: 26rem;
  max-width: 26rem;
  position: relative;
  width: 26.5vw;
}

.products-lineups-inner:hover img {
  transform: translate(-50%, -50%) scale(1.1);
  transition: .2s;
}

.products-lineups-inner + * {
  position: relative;
  z-index: 16;
}

.products-lineups-label {
  background: #242424;
  border: solid .1rem #fff;
  color: #fff;
  display: inline-block;
  font-size: 1.6rem;
  left: 50%;
  padding: .75rem 2.5rem;
  position: absolute;
  top: -2.1rem;
  transform: translateX(-50%);
  white-space: nowrap;
  z-index: 16;
}

.products-lineups-image-wrapper {
  border-radius: 50%;
  box-shadow: 0 0 0 1.5rem #eee;
  height: 100%;
  overflow: hidden;
  position: relative;
  transform: scale(calc(28/26));
}

body:not(.body-frontpage) .products-lineups-image-wrapper {
  box-shadow: 0 0 0 1.5rem #f8f8f8;
}

.products-lineups-image-wrapper img {
  border-radius: 50%;
  display: block;
  height: 28rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 28rem;
}

.products-lineups-wavelength-container {
  background: rgba(0, 0, 0, .85);
  color: #fff;
  overflow: auto;
  padding: 6.5rem 7.5rem;
  margin-bottom: 10rem;
  max-width: 120rem;
  width: 100%;
  z-index: 32;
}

@media screen and (max-width:767px) {
  
  .products-lineups-attensions {
    flex-direction: column;
  }
  
  .products-lineups-item {
    margin-bottom: 5.5rem;
    max-width: none;
    width: auto;
  }
  
  .products-lineups-inner {
    height: 50vw;
    max-height: none;
    width: 50vw;
  }

  .products-lineups-image-wrapper {
    box-shadow: 0 0 0 2.5vw #eee;
  }
  
  .products-lineups-image-wrapper img {
    height: auto;
    width: 100%;
  }
  
  .products-lineups-wavelength-container {
    padding: 4.5rem 4rem;
  }

  
}

.products-main-items {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 5rem 7.5rem 7.5rem;
  padding: 0;
}

.products-main-item {
  list-style: none;
  text-align: center;
}

@media screen and (max-width:767px) {
  
  .products-main-items {
    justify-content: center;
    margin: 2.5rem 3.25rem 10rem 0;
  }
 
  .products-main-item {
/*    width: 100%;*/
  }
  
  .products-main-item + .products-main-item {
    margin-top: 10rem;
  }
  
}

.products-main-item-inner {
  align-items: center;
  border-radius: 1.25rem;
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.products-main-item-image-wrapper {
  background: #bebebe;
  height: 17.5vw;
  max-height: 21.25rem;
  max-width: 27.5rem;
  overflow: hidden;
  position: relative;
  width: 20vw;
}

.products-main-item-inner::after {
  border: solid .1rem #a00e15;
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 3.25rem;
  top: 3.25rem;
  z-index: -1;
}

.products-main-item-image-wrapper img {
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: .2s;
  width: 100%;
}

.products-main-item-inner:hover img {
  transform: translate(-50%, -50%) scale(1.1);
}

.products-main-item-label {
/*  background: #a30f16;*/
  background: #242424;
  border: solid .1rem #fff;
  bottom: -1.75rem;
  color: #fff;
  font-size: 1.5rem;
  right: -1.75rem;
  line-height: 1.35;
  min-width: 15rem;
  padding: 1.25rem 1rem;
  position: absolute;
/*  white-space: nowrap;*/
}

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

  .products-main-item-image-wrapper {
    height: 50vw;
    max-height: none;
    max-width: none;
    width: 60vw;
  }
  
  .products-main-item-label {
    font-size: 1.4rem;
  }

}


.products-sub-items {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  margin: 2.5rem 4.25rem 5rem;
  padding: 0;
}

.products-sub-item {
  list-style: none;
  margin-bottom: 8.25rem;
  margin-left: 1.25rem;
  margin-right: 1.25rem;
  text-align: center;
}

/* justify-content->space-between de shiyo */
/*
.products-sub-items::after {
  content: '';
  display: block;
  max-width: 27.5rem;
  width: 20vw;
}
*/

@media screen and (max-width:767px) {
  
  .products-sub-items {
    justify-content: center;
    margin: 5rem 3.25rem 5rem 0;
  }
 
  .products-sub-item {
/*    width: 100%;*/
  }

/* justify-content->space-between de shiyo */
/*
  .products-sub-items::after {
    max-width: none;
    width: 60vw;
  }
*/
  
  .products-sub-item + .products-sub-item {
    margin-top: 5rem;
  }
  
}

.products-sub-item-inner {
  align-items: center;
  border-radius: 1.25rem;
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 1;
}

.products-sub-item-image-wrapper {
  background: #bebebe;
  height: calc(3rem + 7vw);
  max-height: 14rem;
  max-width: 25rem;
  overflow: hidden;
  position: relative;
  width: calc(4.5rem + 12.5vw);
}

.en.products-sub-items {
  margin: 2.5rem 12.5rem 5rem;
}

.en .products-sub-item-image-wrapper {
  height: calc(5rem + 7vw);
  max-height: 20rem;
  max-width: 30rem;
  width: calc(7.5rem + 12.5vw);
}

.products-sub-item-inner::after {
  border: solid .1rem #a00e15;
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 1.5rem;
  top: 1.5rem;
  z-index: -1;
}

.en .products-sub-item-inner::after {
  left: 3.25rem;
  top: 3.25rem;
}

.products-sub-item-image-wrapper img {
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: .2s;
  width: 100%;
}

.products-sub-item-inner:hover img {
  transform: translate(-50%, -50%) scale(1.1);
}

.products-sub-item-label {
/*  background: #a30f16;*/
  background: #242424;
  border: solid .1rem #fff;
  bottom: -1.25rem;
  color: #fff;
  font-size: 1.3rem;
  right: -1.25rem;
  line-height: 1.35;
  min-width: 15rem;
  padding: 1rem .75rem;
  position: absolute;
/*  white-space: nowrap;*/
}

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

  .products-sub-item-inner::after {
    left: 3.25rem;
    top: 3.25rem;
  }

  .products-sub-item-image-wrapper {
    height: 32.5vw;
    max-height: none;
    max-width: none;
    width: 60vw;
  }
  
  .en.products-sub-items {
    margin: 2.5rem 3.25rem 5rem 0;
  }

  .en .products-sub-item-image-wrapper {
    height: 32.5vw;
    max-height: none;
    max-width: none;
    width: 60vw;
  }
  
  .products-sub-item-label {
    font-size: 1.4rem;
  }

}

/**/
/**/
/**/
/**/
/**/

.archive-post-parents {
  margin: 0;
  padding: 0;
}

.archive-post-parents > li {
  list-style: none;
  margin-bottom: 4.5rem;
}

.archive-post-children {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
}

.archive-post-children > li {
  flex: 0;
  flex-basis: 22.5%;
  list-style: none;
  margin: 0 1.25% 3rem;
  text-align: center;
}

.archive-post-children-inner {
  background: #f2f2ea;
  border-radius: .25rem;
  display: block;
  height: 100%;
  padding: 1rem 1rem calc(1rem + .5em);
  transition: .1s;
}

.archive-post-children-inner:hover {
  background: #e6cecf;
}

.archive-post-children-image-wrapper {
  height: 10vw;
  max-height: 20rem;
  max-width: 100%;
  overflow: hidden;
  position: relative;
  width: auto;
}

.archive-post-children-image-wrapper img {
  height: 10vw;
  left: 50%;
  max-height: 100%;
  max-width: none;
  padding: 1rem 0;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: auto;
}

.archive-post-children-inner p {
  color: #242424;
  font-size: 1.5rem;
  line-height: 1.4;
  margin: auto;
  overflow-wrap: break-word;
}

.archive-desc-container {
}

.desc-arrow-item {
  margin-left: auto;
  max-width: 55rem;
  text-align: left;
}

.desc-arrow-item a {
  align-items: center;
  background: url(images/ico_arrow__bg_black.png);
  background-position: 2rem;
  background-repeat: no-repeat;
  border: none;
  color: #242424;
  cursor: pointer;
  display: inline-flex;
  font-size: 1.8rem;
  justify-content: flex-start;
  margin: auto;
  min-height: 6rem;
  padding-left: 7.5rem;
}

@media screen and (max-width:767px) {
  
  .archive-post-children > li {
    flex-basis: 47.5%;
    margin: 0 1.25% 3rem;
  }
  
  .archive-post-children-image-wrapper {
    height: 25vw;
  }
  
  .archive-post-children-image-wrapper img {
    height: auto;
  }

  .archive-desc-container {
  }

  .desc-arrow-item {
    margin-left: auto;
    max-width: 90%;
  }

  .desc-arrow-item a {
  }
  
}


/* add 20210325 */
/* page children */

.list-page-children,
.content-wrapper .list-page-children {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin: 2.5rem auto 4.5rem;
  max-width: 80rem;
  padding: 0;
}

.list-page-children > li,
.content-wrapper .list-page-children > li {
  flex: 1;
  flex-basis: 45%;
  list-style: none;
  margin: 0 .75rem 1.5rem;
  max-width: calc(50% - 1.5rem);
  min-width: 32rem;
  text-align: center;
}

.list-page-children-inner {
  align-items: center;
  background: #fff;
  border: solid .25rem rgba(140, 132, 128, .25);
  border-radius: .25rem;
  color: #242424;
  display: flex;
  height: 100%;
  justify-content: center;
  line-height: 1.4;
  padding: 2.5rem 6.5rem 2.5rem 5rem;
  position: relative;
  transition: .1s;
  overflow-wrap: break-word;
}

.list-page-children-inner:hover {
  background: #e6cecf;
}

.list-page-children-inner::after {
  content: '\025b6';
  display: inline-block;
  font-size: .85em;
  opacity: .85;
  position: absolute;
  right: 3.5rem;
  top: 50%;
  transform: translateY(-50%);
}


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

  .list-page-children,
  .content-wrapper .list-page-children {
    display: block;
  }

  .list-page-children > li,
  .content-wrapper .list-page-children > li {
    margin: 0 0 1.5rem;
    max-width: none;
    min-width: auto;
  }

  .list-page-children-inner {
    padding: 2rem 4rem 2rem 2rem;
  }

  .list-page-children-inner::after {
    right: 1rem;
  }

}

/* term children */

.list-term-children {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: auto;
  padding: 0;
}

.list-term-children > li {
  flex: 1;
  flex-basis: 15%;
  list-style: none;
  margin: 0 .75rem 1.5rem;
  max-width: calc(35% - 1.5rem);
  min-width: 16rem;
  /* text-align: center; */
}

.list-term-children-inner {
  align-items: center;
  background: #fff;
  border: solid .25rem rgba(140, 132, 128, .25);
  border-radius: .25rem;
  color: #242424;
  display: flex;
  font-size: 1.5rem;
  height: 100%;
  justify-content: center;
  line-height: 1.4;
  padding: 2.5rem 4.5rem 2.5rem 2.5rem;
  position: relative;
  transition: .1s;
  overflow-wrap: break-word;
}

.list-term-children-inner:hover {
  background: #e6cecf;
}

.list-term-children-inner::after {
  content: '\025b6';
  display: inline-block;
  font-size: .85em;
  opacity: .85;
  position: absolute;
  right: 2.5rem;
  top: 50%;
  transform: translateY(-50%);
}


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

  .list-term-children > li {
    flex: none;
    max-width: none;
    width: calc(50% - 3rem);
  }

}


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

  .list-term-children > li {
    width: 80%;
  }

  .list-term-children-inner {
    font-size: 1.4rem;
    padding: 1.5rem 5.5rem 1.5rem 4rem;
  }

}


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

  .list-term-children > li {
    font-size: 1.6vw;
    min-width: 12.5rem;
  }
  
  .list-term-children-inner {
    padding: 2.5rem 3.5rem 2.5rem 2rem;
  }
  
  .list-term-children-inner::after {
    right: 1.5rem;
  }
  
}


/* ==========================================================================*/
/*【サイドメニュー】*/
/* ==========================================================================*/
.submenu-container {
  background: #fff;
  border-radius: .5rem;
  margin-bottom: 2.5rem;
  padding: 3.5rem 2.5rem 4rem;
  word-break: break-word;
}

.submenu-head {
  align-items: center;
  display: flex;
  font-size: 1.4rem;
  font-weight: bold;
  justify-content: center;
  margin: .5rem auto 1.5rem;
}

.submenu-head a {
  color: #242424;
}

.submenu-head::before,
.submenu-head::after {
  background: #242424;
  content: '';
  display: block;
  height: .25rem;
  margin: 0 .25rem;
  width: 2.5%;
}

.submenu-item {
  margin: .5rem 0;
  text-align: left;
}

.submenu-item a {
  border-radius: .25rem;
  color: #242424;
  display: block;
  font-size: 1.4rem;
  padding: .5rem;
}

.submenu-item a.current {
  background: rgba(150, 150, 150, .1);
}

.submenu-item a:hover {
  background: rgba(0, 0, 0, .1);
}

.bl-child-posts-container {
  margin-left: 1rem;
  margin-top: .5rem;
}

.bl-child-posts-container a {
  font-size: .8em;
}

.bl-child-posts-container a::before {
  content: '-';
  padding: 0 .25em;
}

.submenu-head + .submenu-head,
.submenu-item + .submenu-head {
  margin-top: 4.5rem;
}

/* ==========================================================================*/
/*【メニューの設定】*/
/* ==========================================================================*/

#menuouter{
	margin:0 auto;
	width:960px;
	height:60px;
	background:url(images/menubg.gif);
	overflow:hidden;

}

ul.megamenu {
	margin: 0 auto;
	padding:0;
	list-style: none;
	font-size:1.4em;
}

ul.megamenu li.mm-item {
	width:115px;
}

ul.megamenu li {
  list-style: none;
  margin: 0;
  padding: 0;
  float:left;
}

ul.megamenu div.mm-item-content {
	margin:0;
	padding:0;
	position: absolute;
	z-index: 9;
}




/*日本語メニュー*/

.megamenu li.menu01{
	background:url(images/menu001a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.menu02{
	background:url(images/menu002a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.menu03{
	background:url(images/menu003a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.menu04{
	background:url(images/menu004a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.menu05{
	background:url(images/menu005-2a.gif);
	background-repeat:no-repeat;
	background-position:top center;
	border:none;
}
.megamenu li.menu06{
	background:url(images/menu006a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.menu07{
	background:url(images/menu007a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.menu08{
	background:url(images/menu008a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
ul.megamenu li.menu09{
	width:155px;
	background:url(images/menu009a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}



/*英語メニュー*/

.megamenu li.e-menu01{
	background:url(images/e-menu001a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.e-menu02{
	background:url(images/e-menu002a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.e-menu03{
	background:url(images/e-menu003a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.e-menu04{
	background:url(images/e-menu004a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.e-menu05{
	background:url(images/e-menu005-2a.gif);
	background-repeat:no-repeat;
	background-position:top center;
	border:none;
}
.megamenu li.e-menu06{
	background:url(images/e-menu006a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.e-menu07{
	background:url(images/e-menu007a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
.megamenu li.e-menu08{
	background:url(images/e-menu008a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}
ul.megamenu li.e-menu09{
	width:155px;
	background:url(images/e-menu009a.gif);
	background-repeat:no-repeat;
	background-position:top center;
}



.megamenu li img{
	vertical-align:bottom;
}

.megamenu li a{
	display:block;
	line-height:normal;
	text-align:center;
}
.megamenu li a:hover {
	background-color:transparent;
}
.megamenu li a:hover img{
	visibility:hidden;
}


/*メガメニュー*/

/*.mm-item-content{*/
.mega_products{
	width: 960px;
	padding:0;
	overflow:hidden;
	background:#6f6f6f url(images/megabg.png) repeat-y;
	color:#fff;
}
.mega_company{
	width: 160px;
	padding:0;
	overflow:hidden;
	background:#6f6f6f url(images/megabg.png) repeat-y;
	color:#fff;
}
.mega_innovation{
	width: 200px;
	padding:0;
	overflow:hidden;
	background:#6f6f6f;
	color:#fff;
	border-right:solid 1px #999;
}
.mega_innovation .mm-content-base ul{
	width:200px;
}

.mm-content-base ul{
	width:160px;
	margin:0;
	padding:0;
	float:left;
}

.mm-content-base ul li{
	padding:0 6px;
	float:none;
	border-bottom:dotted 1px #999;
}
.mm-content-base ul li span{
	display:block;
	height:1em;
	line-height:1;
	margin:10px 0 0 0;
}

.mm-content-base ul li a{
	color:#fff;
	text-align:left;
	font-size:0.9em;
}
.mm-content-base ul li a:hover{
	color: #000;
}

/* ==========================================================================*/
/*【re_レイアウトの設定】*/
/* ==========================================================================*/

.content-wrapper {
  text-align: left;
}

.content-wrapper p:first-child {
  margin-top: 0;
}

.content-wrapper table {
  display: block;
  max-width: calc(100vw - 10rem);
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}

.content-wrapper tbody {
  display: table;
  width: 100%;
}

.content-wrapper table img:not([width="15"]) {
  max-width: 40rem;
  min-width: 150px;
}

.inner-container-1column {
  margin-bottom: 10rem;
  text-align: left;
}

.inner-container-2column {
  display: flex;
  flex-wrap: wrap;
/*  justify-content: space-around;*/
  margin-bottom: 7.5rem;
  text-align: left;
}

.inner-container-2column > * {
  margin: 0 2% 2.5rem;
  width: 46%;
}

.inner-container-2column .alignnone {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.heightLine {
  margin-bottom: 2.5em;
}

.heightLine::after {
  clear: both;
  content: '';
  display: block;
  width: 100%;
}

@media screen and (max-width:767px) {
  
  .inner-container-2column > * {
    margin: 0 auto;
    width: 100%;
  }
  
  .inner-container-2column > p {
    margin-bottom: 1.2em;
  }
  
}

.content-image-wrapper {
  margin: 2.5rem auto 4.5rem;
  text-align: center;
}

.content-image-wrapper img {
  max-height: 40rem;
  width: auto;
}

/* cookie law */
/* -> style-common */

/*news*/
.post-date {
  font-size: 1.5rem;
  line-height: 1.2em;
  margin-bottom: 1.2em;
  padding: 1rem;
  text-align: right;
}

.flex-container-main__news {
  background: none;
  flex: 5;
  padding: 0 .5rem 0 0;
}

.flex-container-main__news + .flex-container-sub {
  flex: 2;
  width: 15%;
}


.news-container {
  background: #fff;
  border-radius: .5rem;
  margin-bottom: 3.5rem;
  padding: 2.5rem 4rem 5rem;
}

.news-container h1.title-news,
.news-container h2.title-news {
  background: none;
  border: none;
  border-radius: .25rem;
  color: #242424;
  display: flex;
  font-size: 2.4rem;
  font-weight: normal;
  justify-content: center;
  line-height: 1.75;
  margin: 2rem 0 2.5rem;
  padding: 0 1rem 0 2rem;
  position: relative;
  text-align: left;
}

.news-container h1.title-news::before,
.news-container h2.title-news::before {
  background: #a00e15;
  content: '';
  display: inline-block;
  height: 90%;
  left: 0;
  margin-right: .5em;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 1rem;
}

.news-container h1.title-news::after,
.news-container h2.title-news::after {
  display: none;
}

.title-news a {
  color: #242424;
}

/* 20210316 add */
.news-container {
  box-shadow: 0 .15rem 1.25rem rgba(0, 0, 0, .025);
  position: relative;
}

.news-label-new {
  background: rgba(251, 228, 68, .85);
  border-radius: .5rem;
  box-shadow: 0 .25rem .5rem rgba(0, 0, 0, .05), 0 .25rem 2.5rem rgba(0, 0, 0, .05);
  font-size: 1.4rem;
  font-weight: bold;
  line-height: 1;
  margin-left: .5em;
  padding: .85rem 2.5rem .75rem;
  position: absolute;
  right: -.75rem;
  top: -1.5rem;
}

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

  .flex-container-main__news {
    padding-right: 0;
  }

  .flex-container-main__news + .flex-container-sub {
    flex: none;
    width: 100%;
  }

  .news-container {
    padding: 1.5rem 2rem 2.5rem;
  }

  .news-container h1.title-news,
  .news-container h2.title-news {
    font-size: 2rem;
    line-height: 1.25;
    padding-left: 1.5rem;
    padding-right: 0;
  }

  .news-container h1.title-news::before,
  .news-container h2.title-news::before {
    height: calc(100% + .5rem);
    left: -.5rem;
  }

}


/* ==========================================================================*/
/*【レイアウトの設定】*/
/* ==========================================================================*/

#container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 1200px;
  margin:0 auto;
  padding:0;
  text-align:left;
  width: 100%;
}

#content {
  background: #fff;
  flex: 1;
  font-size: 1.4rem;
  margin: 0 0 2.5rem;
  max-width: 940px;
  padding: 2.5rem;
}
#content-products {
	width:735px;
	float:left;
	margin:0;
	margin-right:-15px;
	margin-bottom:10px;
	padding:0;
	font-size:1.4em;
}

#content_blockleft{
    float: left;
    width: 50%;
}
#content_blockright{
    float: right;
    width: 350px;
}

#side {
  font-size: 1.2rem;
  margin: 0;
  padding: 0;
/*  width: 210px;*/
}


.mainlist{
	width:350px;
}

.mainlist-l{
	float:left;
}

.mainlist-r{
	float:right;
}

/*会社概要:TOP社屋部分で使用*20180525* */
.table-linerbox {
  border-collapse: collapse;
  box-sizing: border-box;
  text-align: center;
  width: 100%;
}

.table-linerbox .table-linerbox-img td {
  padding: 1px;
}

.table-linerbox-img img {
  width: 100%;
}

.table-linerbox .table-linerbox-text {
  font-size: 11px;
  height: 35px;
}

.table-linerbox td {
  width: 20%;
}



/* ==========================================================================*/
/*【サイドメニューの設定】*/
/* ==========================================================================*/

.sidetitle {
	margin:0;
	padding:4px;
	background:#1692b0;
	background-image:url(images/rmenu.gif);
	background-position:top left;
	background-repeat:repeat-x;
	border:solid 1px #2dadc3;
	color:#fff;
	font-weight:bold;
	font-size:1.2em;
	line-height:1.2;
}

div.rmenu{
	border:solid 2px #dfdfdf;
	padding:6px;
	background:#fff;
	margin-bottom:10px;
}

ul.rmenu{
	margin:0;
	padding:0.5em 0;
}


ul.rmenu li{
	margin:0;
	padding:0.4em 0;
	padding-left:15px;
	list-style-type:none;
	line-height:1.4;
	background:url(images/rmenulist.gif);
	background-repeat:no-repeat;
	background-position:left center;
}


/* ==========================================================================*/
/*【フッターの設定】*/
/* ==========================================================================*/

/* === renewal === */
footer {
  overflow: hidden;
}

.footer-container {
  background-color: #dedede;
  margin-top: 10vw;
  padding: 2.5rem 0 3rem;
  position: relative;
  width: 100%;
  z-index: 8;
}

.footer-container * {
  position: relative;
  z-index: 4;
}

.footer-container::before,
.footer-container::after {
  height: 100%;
}

.footer-container::before {
  background-color: #dedede;
  content: '';
  display: block;
  left: 0;
  position: absolute;
  top: -10vw;
  transform: rotate(5deg);
  transform-origin: left top;
  width: 150%;
  z-index: 2;
}

.footer-container::after {
  background: #a00e15;
  content: '';
  right: 0;
  position: absolute;
  top: -10vw;
  transform: rotate(-5deg);
  transform-origin: right top;
  width: 50%;
  z-index: 1;
}



.footer-banner-container {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  /*justify-content: space-between;*/
  /*バナーが3つになったらspace-betweenに戻す*/
  margin: auto;
  max-width: 120rem;
  padding: 5rem 0 4.5rem;
}

.footer-banner-container:after {
  content: "";
  display: block;
  width: calc(100% / 3 - 1rem);
  height: 0;
}

.footer-banner-item {
  margin: 0 1rem;
  width: calc(100% / 3 - 2rem);
}

.footer-banner-container img {
  max-width: 390px;
  width: 100%;
}

@media screen and (max-width:767px) {
  
  .footer-banner-container {
/*    margin: 0 1.5rem;*/
    display: block;
  }
  
  .footer-banner-item {
    margin: 1rem auto;
    width: 90%;
  }

}

.footer-name {
  font-size: 2.4rem;
  margin: 7rem auto 1.5rem;
}

.footer-address {
  font-size: 1.2rem;
  font-style: normal;
  margin-bottom: 4.5rem;
}

.footer-address-tel,
.footer-address-fax {
  margin-left: 1.25em;
}

.footer-copyright {
  font-size: 1rem;
}

@media screen and (max-width:767px) {
  
  .footer-address-tel,
  .footer-address-fax {
    display: block;
  }
  
}

/*pagetop*/
.btn-pagetop {
  align-items: center;
  background: #242424;
  border-radius: 50%;
  color: #fff;
  display: flex;
  flex-direction: column;
  font-size: 1.4rem;
  height: 8rem;
  justify-content: center;
  margin: 5rem auto;
  width: 8rem;
}

.btn-pagetop img {
  margin-bottom: .75rem;
}

.btn-pagetop:hover {
  color: #fff;
}

@media screen and (max-width:767px) {
  
  .btn-pagetop {
    font-size: 1.2rem;
  }
  
}


#footerlist{
	clear:both;
	width:960px;
	margin:0 auto;
	text-align:right;
	font-size:1.2em;
}


#footerlist img{
	vertical-align:bottom;
}


.copyright{
	width:960px;
	margin:0 auto;
	padding:15px 0;
	text-align:left;
	color:#fff;
	font-size:1.2em;
}

.foot_inq {
  clear: both;
  display: flex;
  flex-wrap: wrap;
/*  justify-content: space-between;*/
}


/* ==========================================================================*/
/*【パンくずリストの設定】*/
/* ==========================================================================*/

.breadcrumbs {
  background: #f0f0f0;
  font-size: 1.2rem;
  line-height: 1.2em;
  padding: 1rem;
}

.map{
	font-size:1.2em;
	font-weight:bold;
	color:#622287;
}

.news{
	color:#fff;
	font-weight:bold;
	padding:10px;
	background:#57bab5;
	background:url(/images/common/newsbg.gif);
	background-position:left center;
	background-repeat:repeat-x;
}

div.rmenu dl{

}

div.rmenu dt{
	border:solid 1px #ddd;
	padding:6px;
}

div.rmenu dd{
	margin:6px 0;
	padding:0.2em 0;
	padding-left:15px;
	list-style-type:none;
	line-height:1.4;
	background:url(images/rmenulist.gif);
	background-repeat:no-repeat;
	background-position:left center;
}

dl.rmenu dt{
	margin:0;
	padding:4px;
	background:#1692b0;
	background-image:url(images/rmenu.gif);
	background-position:top left;
	background-repeat:repeat-x;
	border:solid 1px #2dadc3;
	color:#fff;
	font-weight:bold;
	font-size:1.2em;
	line-height:1.2;
}

dl.rmenu dt a{
	color:#fff;
}

dl.rmenu dd{
	border:solid 2px #dfdfdf;
	padding:6px;
	background:#fff;
}

dl.rmenu dd ul{
	margin:0;
	padding:0;
}

dl.rmenu dd ul li{
	margin:0;
	padding:0.4em 0;
	padding-left:15px;
	list-style-type:none;
	line-height:1.4;
	background:url(../../images/common/rmenulist.gif);
	background-repeat:no-repeat;
	background-position:left center;
}

.level2menu{
	width:223px;
	float:left;
}


.level2menuinner{
	background:#fff;
	padding:20px 10px;
	margin:10px 10px 10px 0;
}


.cattitle{
	text-align:center;
	/*border:solid 1px #ddd;*/
	padding:15px 0;
	font-weight:bold;
	background-image:url(../../images/common/h2bg.gif);
	background-position:bottom left;
	background-repeat:repeat-x;
	line-height:1.2;
}


.cattitle img{
	margin-top:10px;
	margin-bottom:5px;
}

#aboutus_container_top .level2menu,#development_container_top .level2menu{
	width:335px;
	float:left;
}


#aboutus_container_top .level2menuinner,#development_container_top .level2menuinner{
	padding:20px 5px;
	margin:5px 10px 5px 0;
	background:#fff;
}

#aboutus_container dl{
	border-bottom:dotted 1px #AAAAAA;
	margin-bottom:20px;
}

#aboutus_container dl dt{
	width:10em;
	float:left;
	border-top:dotted 1px #AAAAAA;
	padding:0.8em 0;
}

#aboutus_container dl dd{
	margin:0;
	margin-left:10em;
	border-top:dotted 1px #AAAAAA;
	padding:0.8em 0;
}

em{
	font-weight:bold;
	color:red;
}

.copy{
	font-weight:bold;
	font-size:1.6em;
	line-height:1.2;
}



/* renewal */

.download-table {
  border-collapse: collapse;
  width: 100%;
}

.download-table-title {
}

.download-table-link {
  font-size: 1.4rem;
  min-width: 12rem;
  width: 20%;
}


/* ==========================================================================*/
/*【製品情報の設定】*/
/* ==========================================================================*/
.contract{
	background:#fff;
	background-image:url(images/contract-img.gif);
	background-repeat:no-repeat;
	background-position:left center;
	padding-left:160px;
}

.contract dl{

}

.contract dt{
	width:4em;
	float:left;
	font-size:1.2em;
	color:#9F0B0E;
	border:solid 1px #9F0B0E;
	padding-left:0.5em;
	padding-top:2px;
	line-height:1.2;
}

.contract dd{
	margin-left:6em;
	font-size:1.2em;
	line-height:1.2;
}


/* ==========================================================================*/
/*【製品情報の設定】*/
/* ==========================================================================*/

/* home */
.products-top-list {
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap; 
  justify-content: space-around;
  margin: 0;
  padding: .5em 1.5em;
  text-align: center;
}

.products-top-list li {
  list-style-type: none;
  margin: 1em;
  text-align: center;
/*  width: 30%;*/
  width: 24%;
}

.products-top-list li:nth-child(n+4) {
  width: 22%;
}

.products-top-list a {
  display: block;
  font-size: 1.3em;
}

.products-top-list img {
  border: solid 3px #00aaef;
  height: 102px;
  margin-bottom: .5em;
  width: 205px;
}

.productsmenu {
  display: flex;
  justify-content: space-between;
}


.productsmenu a{
	display:block;
/*	width:116px;*/
	width: 15%;
/*	float:left;*/
	border:solid 1px #ccc;
  font-size: .9em;
/*	margin:0 1px;*/
	text-align:center;
	padding:10px 0;
	background:#429cc5;
	color:#fff;
}
.productsmenu a:hover{
	background:#fff;
	color:#157fab;
}

.pro-menu{
	margin-left:230px;
}

.productstop-child-page{
	word-wrap:break-word;
}

.productstop-child-page a{
	background:#fff url(images/arrowlist.gif) 10px center no-repeat;
	margin:0 0 10px 0;
	padding:15px;
	padding-left:40px;
	display:block;
}
.productstop-child-page a:hover{
	background:#f9f9f4 url(images/arrowlist.gif) 10px center no-repeat;
}

.child-page{
	width:120px;
	float:left;
	word-wrap:break-word;
}

.child-page a{
	border:solid 1px #ccc;
	background:#fff;
	margin:1px;
	padding:8px;
	display:block;
}
.child-page a:hover{
	border:solid 1px #cc9999;
	background:#f9f9f4;
}

.child-page2{
	word-wrap:break-word;
}
.child-page2 a img{
	float:left;
	margin-right:10px;
}
.child-page2 a{
	border:solid 1px #ccc;
	background:#fff;
	margin:1px;
	padding:8px;
	display:block;
	overflow:hidden;
}
.child-page2 a:hover{
	border:solid 1px #cc9999;
	background:#f9f9f4;
}

.products-main{
	width:720px;
}

.product-img{
	float:left;
}
.products-list-contents{
	width:720px;
	margin:10px 0;
}
.products-list-contents p{
	margin:3px 0;
	margin-left:200px;
}

.tec-pagetitle{
	font-size:1.2em;
	font-weight:bold;
	margin-left:200px;
}

.tec-pagetitle2{
	font-size:1.2em;
	font-weight:bold;
}

/* ==========================================================================*/
/*【FAQの設定】*/
/* ==========================================================================*/


#faq_container dl{
	border-bottom:dotted 1px #AAAAAA;
	width:100%;
	position:relative;

}


#faq_container dt{
	padding:4px 0;
	cursor:pointer;
	color:#0076A3;
}


#faq_container dt.active{
	color:#d74646;
	font-weight:bold;
	margin-top:12px;
}

#faq_container dd{
	width:100%;
	margin:0;
	position:relative;
}


/* ==========================================================================*/
/*【CSRにて使用】*20180524追加* */
/* ==========================================================================*/

.red {
  color: #c00;
}

.poster-like {
  background-image: linear-gradient(#fff, #f0ebd5 95%, #d6caa8);
  box-shadow: 0 .1rem .25rem rgba(80, 80, 80, .1);
  font-size: 1.1em;
  line-height: 1.8;
  margin: 5px;
  padding: 7px;
  padding-bottom: 20px;
}

.list-align-left {
  margin-left: 0;
  padding-left: 1.5em;
}


/* ==========================================================================*/
/*【サイトマップ(footer)の設定】*/
/* ==========================================================================*/
.sitemap-container {
  display: flex;
  font-size: 1.4rem;
  gap: 1rem;
  justify-content: center;
  margin: auto;
  overflow-x: auto;
  text-align: left;
}

.sitemap-container a {
  align-items: flex-start;
  border-radius: .25rem;
  color: #242424;
  display: inline-flex;
  gap: .5rem;
  line-height: 1.4;
  margin-bottom: .25em;
  padding: .25rem 1rem;
}

.sitemap-container a:hover {
  text-decoration-line: underline;
}

.sitemap-items {
  margin: 0;
}

.sitemap-item-first {
  font-weight: bold;
}

.sitemap-item-second {
  margin: 0;
  max-width: 24.35rem;
  min-width: 10rem;
}

.sitemap-item-second a::before {
  content: '-';
  display: inline-block;
}

.sitemap-container a[target="_blank"]::after {
  align-self: center;
  background: url(images/ico-newwindow.png);
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  display: inline-block;
  height: .9em;
  margin-left: .25em;
  vertical-align: middle;
  width: .9em;
}

a[target="_blank"].sitemap-item-banner {
  padding: 0 1rem;
}

a[target="_blank"].sitemap-item-banner::after {
  display: none;
}

@media screen and (max-width:767px) {
  
  .sitemap-container {
    flex-wrap: wrap;
    justify-content: flex-start;
    margin: 0 1rem;
  }

  .sitemap-items {
    flex: auto;
    margin-bottom: 1.5em;
    max-width: none;
    width: 100%;
  }
  
  .sitemap-item-first,
  .sitemap-item-second {
    margin-bottom: .25em;
  }

  .sitemap-item-second {
    max-width: none;
    min-width: auto;
  }

  
}


#sitemap{
	font-size:1.2em;
}

.sitemap-column{
	width:320px;
	float:left;
}

.sitemap-column a{
	display:block;
}

.sitemap-column h1{
	margin:10px;
}
.sitemap-column ul{
	margin:0 10px;
	padding:0;
	border-top:dotted 1px #999;
}
.sitemap-column ul li{
	margin:0;
	list-style:none;
	padding:2px;
	border-bottom:dotted 1px #999;
}

/* ==========================================================================*/
/*【会社案内/沿革の設定】*/
/* ==========================================================================*/

.aboutus-child-page{
	width:360px;
	float:left;
	word-wrap:break-word;
}

.aboutus-child-page a{
	background:#fff url(images/arrowlist.gif) 10px center no-repeat;
	margin:0 10px 10px 0;
	padding:20px;
	padding-left:40px;
	display:block;
}
.aboutus-child-page a:hover{
	background:#f9f9f4 url(images/arrowlist.gif) 10px center no-repeat;
}

.enkaku {
  margin-bottom: 2.5rem;
  text-align: left;
  width: 100%;
  max-width: calc(100vw - 10rem);
}

.content-wrapper table.enkaku {
  display: table;
  white-space: normal;
}

.content-wrapper .enkaku tbody {
  display: table-row-group;
  width: auto;
}

.enkaku th {
  background: none;
  border: none;
  border-bottom: dotted 1px #aaa;
  color: #333;
  padding: .75em .25em;
  width: 17.5rem;
}

.enkaku td {
  background: none;
  border: none;
  border-bottom: dotted 1px #aaa;
  padding: .75em .25em;
}

@media screen and (max-width:767px) {
  
  .enkaku th {
    font-size: 1.4rem;
    width: 6.5rem;
  }
  
}


/* ==========================================================================*/
/*【clearfixの設定】*/
/* ==========================================================================*/

.clearfix:after{
	content:".";
	display:block;
	height:0;
	clear:both;
	visibility:hidden;
}

.clearfix{
	overflow: hidden;
	display:inline-block;
}

# * html .clearfix             { zoom: 1; } /* IE6 */  
# *:first-child+html .clearfix { zoom: 1; } /* IE7 */  


/* ==========================================================================*/
/*【展示会の設定】*/
/* ==========================================================================*/

.tenjikai-outer{
	border:solid 2px #dfdfdf;
	padding:6px;
	background:#fff;
	margin-bottom:10px;
}

.tenjikai{
	border-bottom:dotted 1px #666;
	padding:4px 0;
}

.tenjikai_title{
	font-weight:bold;
}

dl.exhi{
	border:solid 1px #ddd;
	background:#fff;
	padding:10px;
	margin:1em 0;
}

dl.exhi dt{
	width:9em;
	float:left;
}

dl.exhi dd{
	margin:0;
	margin-left:9em;

}

.exhi-list-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.exhi-list-container .exhi-list {
  flex-basis: 46.5%;
  margin: 1rem .75%;
}

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

  .exhi-list-container .exhi-list {
    flex-basis: 100%;
    margin: 1rem .75%;
  }
  
}

.exhi-list{
	border:solid 1px #ddd;
	background:#fff;
	padding:10px;
	margin:1em 0;
  text-align: left;
  word-break: break-word;
}

.exhi-list dl {
  display: flex;
  flex-wrap: wrap;
}

.exhi-list dt{
  flex-basis: 16.5%;
  margin-top: 1rem;
}

.exhi-list dd{
  flex-basis: 81%;
  margin: 0;
  margin-left: 2.5%;
  margin-top: 1rem;
}

.exhi-link {
  align-items: center;
  color: #242424;
  display: flex;
  justify-content: center;
  margin: 1.5rem auto 0;
  padding: .5rem 1rem;
}

.exhi-link:hover {
  background: rgba(0, 0, 0, .1);
}

.exhi-link::before {
  background: url(images/ico-tri-right.svg);
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  display: inline-block;
  height: 1em;
  margin-bottom: .1em;
  margin-right: .5em;
  padding: .1em;
  width: 1em;
}

.exhi-link::after {
  background: url(images/ico-newwindow.png);
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  display: inline-block;
  height: .9em;
  margin-left: .5em;
  width: .9em;
}

/* ==========================================================================*/
/*【ニュースリリースの設定】*/
/* ==========================================================================*/

dl.newslist{
	text-align:left;
	margin:10px 0;
}

dl.newslist dt{
	margin:0;
	padding:0;
}

dl.newslist dd{
	margin:0 0 0.5em 0;
	padding:0;
	line-height:1.2;
}


/* ==========================================================================*/
/*【製品情報トップの設定】*/
/* ==========================================================================*/


.procat{
	width: 240px;
	float: left;
	text-align: center;
}

#footernavi{
  border-bottom: solid 1px #ccc;
  border-top: solid 1px #ccc;
  margin-top: 20px;
  padding: 10px 0;
/*	width: 720px;*/
  width: 100%;
}
.prev{
	width:49%;
	float:left;
  text-align: left;
}

.next{
	width:49%;
	float:right;
	text-align:right;
}

/* ==========================================================================*/
/*【関連記事の設定】*/
/* ==========================================================================*/

.related_posts_outer{
	margin:10px 0;
	width:100%;
}
.related_posts{
	width:144px;
	float:left;
	text-align:center;
}
.related_posts_inner{
	margin:0 1px;
	padding-top:5px;
	border:solid 1px #ccc;
}
.related_posts_inner img{
	width:130px;
	height:auto;
	margin:0 auto;
}

.related_posts .content_title{
	padding:6px;
	padding-bottom:15px;
	line-height:1.4;
	text-align:left;
}

/*製品ページ　波長変換器*/
.child-page-yoko{
	width:100%;
	border:solid 1px #ccc;
	margin:5px 0;
	background:#fff;
	overflow:hidden;
}
.child-page-yoko th{
	text-align:center;
}
.child-page-yoko td{
	padding:0 10px;
	background:none;
	border:solid 1px #ddd;
}
.child-page-yoko td p{
	margin:0;
}

.child-page-yoko td.productimg{
	width:200px;
	border:none;
	padding:0;
	background:none;
	text-align: center;
}
.child-page-yoko td.productname{
	width:40%;
	border:none;
	background:#eee;
}

/* ==========================================================================*/
/*【Open Innovationの設定】*/
/* ==========================================================================*/

.mission{
	background:#e1eaee;
	padding:30px 40px;
	font-size:1.2em;
	font-weight:bold;
	border:solid 1px #fff;
	border-radius: 20px;        /* CSS3草案 */  
    -webkit-border-radius: 20px;    /* Safari,Google Chrome用 */  
    -moz-border-radius: 20px;   /* Firefox用 */ 
}
.mission strong{
	font-size:1.4em;
	font-weight:bold;
}
.solution{
	background:#e1eaee;
	padding:30px 40px;
	border:solid 1px #fff;
	border-radius: 20px;        /* CSS3草案 */  
    -webkit-border-radius: 20px;    /* Safari,Google Chrome用 */  
    -moz-border-radius: 20px;   /* Firefox用 */ 
}

.oi-child-page{
	overflow:hidden;
	margin:10px 0;
}
.oi-child-page img{
	float:left;
	margin-right:10px;
}
.oi-child-page p{
	margin:0;
}
.oi-child-page .stitle{
	font-size:1.2em;
	font-weight:bold;
	margin-top:15px;
}
.reoi a{
	display:inline-block;
	background:#0073aa;
	color:#fff;
	padding:10px 20px;
	margin:20px 0;
	float:right;
}

.wp-caption{
	background:#f3f3f3;
	border:solid 1px #ddd;
	text-align:center;
	padding:5px 0;
}
.wp-caption-text{
	margin:0;
	font-size:0.9em;
}

/* ==========================================================================*/
/*【トップページ会社情報の設定】*/
/* ==========================================================================*/

.mainlistm {
	margin-bottom: 20px;
}

.about-oxide {
}

.about-oxide img {
 width: 180px;
 height: auto;
 margin: 0 8px 0 0;
}

.about-oxide p {
 margin: 10px 0 !important;
}

.about-oxide p.copy {
 font-size: 1.1em;
 margin: 12px 0 !important;
}

.about-oxide p.more {
 text-align: right;
}











table.bordernone{
	margin:10px 0;
	width:100%;
}

table.bordernone td{
	border:none;
	background:none;
	padding:0;
	vertical-align:top;
	line-height:1.4;

}









/* ==========================================================================*/
/*【資料請求・お問い合わせの設定】*/
/* ==========================================================================*/


.mail_kanban {
	margin: 0;
    height: 120px;
    background-position: top left;
    background-repeat: repeat-x;
    text-align: center;
	background-image: url(images/kanbanbg.gif);
}

input {
  font-size: 1.6rem;
}

input[name=submitConfirm] {
	padding: 10px !important;
	width: 140px !important;
}

input[type="submit"] {
  background: #dedede;
  font-size: 1.25rem;
	margin: 0 8px;
	padding: 6px;
  width: 120px;
}

p.backgroundimage {
	background-image: url(images/kanbanbg.gif);
	margin: 0;
    height: 120px;
    background-position: top left;
    background-repeat: repeat-x;
    text-align: center;
}

textarea[name=contact1] {
	width: 640px;
	height: 86px;
}

textarea[name=contact2] {
	width: 640px;
	height: 86px;
}

textarea[name=contact3] {
	width: 640px;
	height: 86px;
}

textarea[name=contact4] {
	width: 640px;
	height: 86px;
}

textarea[name=contact5] {
	width: 640px;
	height: 86px;
}

textarea[name=contact1e] {
	width: 640px;
	height: 86px;
}

textarea[name=contact2e] {
	width: 640px;
	height: 86px;
}

textarea[name=contact3e] {
	width: 640px;
	height: 86px;
}

textarea[name=contact4e] {
	width: 640px;
	height: 86px;
}

textarea[name=contact5e] {
	width: 640px;
	height: 86px;
}

h1.mail_j {
	font-size: 1.0em;
}

.mail_table1 {
	width: 100%;
	text-align: center !important;
}

table.mail_table1 td {
	padding: 12px !important;
}

table.mail_table1 td:hover {
	background: #EEEEEE;
	color: #9F0B0E !important;
}

.mail_table2 {
	width: 100%;
	font-size: 0.9em;
}

.mail_table3 {
	width: 100%;
	font-size: 0.9em;
}

.mail_table4 {
	width: 100%;
	font-size: 0.9em;
}

[class^="mail_table"] input {
  margin: .25rem auto .35rem;
}

[class^="mail_table"] td {
  padding: .25rem 2rem;
  text-align: left;
}

.mail_table1 td {
  padding: .25rem 2rem;
  text-align: center;
}


.mail_privacypolicy {
  background: #fff;
  border: 1px #aaa solid;
  margin: 0;
  max-height: 12.5rem;
  overflow-y: scroll;
  padding: .5rem .75rem;
}

.mail_button01 {
	text-align: center;
}	

span.mail_telfax {
	color: #9f0b0e;
	font-weight: bold;
}

.required_e {
    width: 960px;
    text-align: left;
    color: #ff0000;
    font-size: 1.0em;
}

span.mail_requiredfields {
color: #ff0000;
}



/* === renewal === */

.inquery-check-wrapper {
  background: #f0f0f0;
  display: flex;
  flex-wrap: wrap;
  padding: 1.5rem 1rem 1.75rem;
  text-align: left;
}

.vertical-item {
  margin: .25rem .25rem .5rem;
  margin-right: 1rem;
}

.vertical-item label {
  display: block;
  padding: .25rem;
}

.mwform-checkbox-field {
  display: block;
  padding: .25rem;
  width: calc( 50% - 1.5rem );
}

.inquiry-textarea-wrapper {
  margin: 1rem 0 2.5rem;
  text-align: left;
}

.inquiry-textarea-wrapper textarea {
  width: 100%;
}

.inquiry-textarea-wrapper p {
  margin: 0;
}

.inquiry-contactinfo-lists {
  display: flex;
  flex-wrap: wrap;
}

.inquiry-contactinfo-lists dt {
  flex-basis: 25%;
  text-align: left;
  padding: .25rem 1.5rem;
}

.inquiry-contactinfo-lists dd {
  flex-basis: 75%;
  text-align: left;
}

.inquiry-contactinfo-lists dt,
.inquiry-contactinfo-lists dd {
  margin-bottom: 2.5rem;
}

.inquiry-contactinfo-lists dd .mwform-checkbox-field {
  width: auto;
}

.inquiry-contactinfo-lists p {
  margin: 0;
}

.inquiry-contactinfo-lists input[type="text"],
.inquiry-contactinfo-lists input[type="email"],
.inquiry-contactinfo-lists input[type="url"] {
  width: 100%;
}

.mw_wp_form textarea {
  width: 100%;
}

.mw_wp_form input[type="file"] {
  background: #eee;
  display: block;
  padding: 2.5rem;
  width: max(50%, 10em);
}

.require {
  color: #f00;
  font-size: 1.4rem;
  margin-left: .5rem;
}

.optional {
  color: #888;
  font-size: 1.4rem;
  margin-left: .5rem;
}

.main-container .mw_wp_form .error {
  background: #b33b3b;
  border-radius: .5rem;
  color: #fff;
  font-size: 1.4rem;
  font-weight: bold;
  padding: .25rem .75rem;
}

.bl-recruit-form {}

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

  .inquiry-contactinfo-lists dt {
    background: #eee;
    flex-basis: 100%;
    margin-bottom: 0;
    padding: .5rem 1rem;
  }

  .inquiry-contactinfo-lists dd {
    flex-basis: 100%;
  }
  
  .main-container .mw_wp_form .error {
    text-align: center;
  }
  
}


/* add 20230913 */
.inquery-check-wrapper input[type=radio] {
  display: inline-block;
  width: auto;
}

.mwform-radio-field.horizontal-item + .horizontal-item::before {
  content: "/";
  margin-right: 1em;
}

.bl-ir-form-consent {
  background: #f9f8f8;
  border-radius: .25rem;
  margin-bottom: 1.5rem;
  padding: 2.5rem 1rem 1.5rem;
  text-align: center;
}

.bl-ir-form-consent-input-wrap {
  align-items: center;
  display: flex;
  justify-content: center;
}

.bl-ir-form-consent-input-wrap .mwform-checkbox-field {
  margin-left: 1em;
  text-align: left;
  width: auto;
}

.js-ir_entry-secret-1col .bl-recruit-form-input-wrap {
  flex-wrap: wrap;
}


.js-ir_entry-secret {
  cursor: pointer;
  font-size: 1.4rem;
  text-align: left;
  width: 100%;
}

.js-ir_entry-secret__target {
  display: none;
  position: relative;
}

.js-ir_entry-secret:hover > .js-ir_entry-secret__target {
  background: #efefef;
  box-shadow: 0 .5rem .5rem rgba(0, 0, 0, .15);
  color: #000;
  display: block;
  font-size: 1.4rem;
  opacity: .9;
  padding: 1rem;
  position: absolute;
}




#oa_toggle {
  position: relative;
}

#oa_toggle:not(.active)::after {
  background: rgba(255, 255, 255, .25);
  content: '';
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

#oa_toggle:not(.active) > * {
  opacity: .5;
}

#ir_companion {
  display: none;
}

#ir_companion.able {
  display: block;
}


/* /add 20230913 */



/* === /renewal === */

/* ==========================================================================*/
/*【汎用クラス】*add20180626* *20180718* */
/* ==========================================================================*/

.block {
  display: block;
}

.bg-gray {
  background-color: rgba(0,0,0,.15);
}

.bg-twi {
  background-color: #1da1f2;
}

.text-center {
  text-align: center;
}

.hover-blue:hover {
  background-color: #00aaef;
  transition: .2s;
}

.hover-twi:hover {
  opacity: .9;
  transition: .2s;
}


.bg-twi {
    background-color: #ffffff;
    width: 210px;
    display: block;
    overflow: hidden;
}
.bg-twi p {
    margin: 0.6em 0 0 50px;
    font-size: 1.2em;
    text-align: left;
}

.ico-twi {
    height: 38px;
    margin: 0 0 0px 0;
    float: left;
}

/* *add20180713* */

.flex {
  display: flex;
}

.flex-spacea {
  justify-content: space-around;
}

.flex-spaceb {
  justify-content: space-between;
}

.flex-center {
  justify-content: center;
}

.flex-align-center {
  align-items: center;
}

.flex-direction-reverse {
  flex-direction: row-reverse;
}

.w-25 {
  width: 25%;
}

.w-50 {
  width: 50%;
}

.w-75 {
  width: 75%;
}


/* ==========================================================================*/
/*【Popup】*add20210201* */
/* ==========================================================================*/

.popup {
  bottom: -15rem;
  display: none;
  opacity: 0;
  position: fixed;
  right: 1.5rem;
  transition: .5s;
  z-index: 9999;
}

.popup-item {
  align-items: center;
  background: url(images/webinar_bg.png), linear-gradient(-135deg, #d41620, #a00e15);
  background-position: 95%, center;
  background-repeat: no-repeat;
  background-size: 32.5%, contain;
  border: solid .1rem #fff;
  box-sizing: border-box;
  color: #fff;
  display: flex;
  font-size: 1.4rem;
  height: 100px;
  justify-content: center;
  padding-right: 25%;
  text-align: left;
  transition: .25s;
  width: 320px;
}

.popup-item:hover {
  background-position: 97.5%, center;
  background-size: 37.5%, contain;
  color: #fff;
  opacity: .9;
  padding-right: 32.5%;
}

@media screen and (max-width:767px) {
  
  .popup-item {
    background-position: 90%, center;
    background-size: 27.5%, contain;
    font-size: 1.4rem;
    height: 50px;
    line-height: 1.25;
  }

  .popup-item:hover {
    background-position: 92.5%, center;
    background-size: 30%, contain;
  }
  
}

.popup-item::before,
.popup-item::after {
  content: '';
  display: block;
  position: absolute;
  transition: .15s;
}

.popup-item::before {
  border-bottom: 1rem solid transparent;
  border-left: 2.5rem solid #fff;
  border-right: 2.5rem solid transparent;
  border-top: 1rem solid #fff;
  left: 0;
  top: 0;
}

.popup-item::after {
  border-bottom: 1rem solid #eee;
  border-left: 2.5rem solid transparent;
  border-right: 2.5rem solid #eee;
  border-top: 1rem solid transparent;
  bottom: 0;
  right: 0;
}

.popup-close {
  align-items: center;
  background: #242424;
  border: solid .1rem #242424;
  border-radius: 50%;
  color: #fff;
  display: block;
  height: 28px;
  justify-content: center;
  position: absolute;
  right: -.75rem;
  top: -.75rem;
  width: 28px;
}

.popup-close:focus {
  outline: none;
}

.popup.fadein-in {
  display: block;
}

.popup.fadein-out {
  bottom: -50px;
  display: block;
  opacity: 0;
}

.popup.fadein {
  bottom: 1.5rem;
  display: block;
  opacity: 1;
}

/* IR POPUP */

.bl-popup__ir-item {
  align-items: center;
  background: linear-gradient(45deg, #d41620, #a00e15);
  border: solid .1rem #fff;
  border-radius: 50%;
  box-sizing: border-box;
  color: #fff;
  display: flex;
  flex-direction: column;
  font-size: 1.4rem;
  height: 16rem;
  justify-content: center;
  line-height: 1.25;
  padding: 2.5rem;
  text-align: left;
  transition: .25s;
  width: 16rem;
}

.bl-popup__ir-item:hover {
  color: #fff;
  opacity: .9;
}

@media screen and (max-width:767px) {
  
  .bl-popup__ir-item {
    font-size: 1.4rem;
  }

  .bl-popup__ir-item:hover {
    background-position: 92.5%, center;
  }
  
}

.bl-popup__ir-title {
  display: block;
  font-size: 1.8rem;
  padding-bottom: 2.5rem;
  position: relative;
  text-align: center;
}

.bl-popup__ir-title::after {
  border-bottom: solid .1rem #fff;
  border-right: solid .2rem #fff;
  bottom: 1rem;
  content: '';
  display: block;
  height: 1.25rem;
  position: absolute;
  right: 50%;
  transform: skewX(50deg) translateX(50%);
  transition: .15s;
  width: 9rem;
}

.bl-popup__ir-item:hover .bl-popup__ir-title::after {
  right: calc(50% - .5rem);
  width: 10rem;
}

.bl-popup__ir-sub {
  display: block;
  line-height: 1.25;
}

.bl-popup__ir-close {
  align-items: center;
  background: #242424;
  border: solid .1rem #242424;
  border-radius: 50%;
  color: #fff;
  display: block;
  height: 28px;
  justify-content: center;
  position: absolute;
  right: -.75rem;
  top: -.75rem;
  width: 28px;
}

.bl-popup__ir-close:focus {
  outline: none;
}



/* ==========================================================================*/
/*【Image Movie】*add20210226* */
/* ==========================================================================*/
.main-visual-inner-content {
  left: 50%;
  position: absolute;
  bottom: 12.5%;
  transform: translateX(-50%);
  z-index: 256;
}

.btn-yt-open {
  align-items: center;
  background: rgba(255, 255, 255, .25);
  border: solid .1rem #fff;
  border-radius: 5rem;
  box-shadow: 0 0 .25rem rgba(0, 0, 0, .5), 0 0 .25rem rgba(0, 0, 0, .5) inset;
  color: #fff;
  cursor: pointer;
  display: flex;
  font-size: 1.75rem;
  margin-bottom: 1rem;
  overflow: hidden;
  padding: 1rem 6rem .85rem 5rem;
  text-shadow: 0 0 .5rem rgba(0, 0, 0, .85), 0 0 .5rem rgba(0, 0, 0, .85);
  transition: .05s;
  white-space: nowrap;
}

.btn-yt-open:hover {
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 0 .25rem rgba(0, 0, 0, .5);
  color: #242424;
  text-shadow: none;
  transition: .1s;
}

.btn-yt-open:focus {
  outline: none;
}

.btn-yt-open svg {
  margin-right: .5em;
  height: 1.5em;
  width: 1.5em;
}

.btn-yt-open * {
  transition: .15s;
}

.btn-yt-open:hover svg .st0 {
  fill: #fff;
}

.yt-modal {
  align-items: center;
  background: rgba(0, 0, 0, .65);
  color: #fff;
  display: none;
  height: 100vh;
  justify-content: center;
  left: 0;
  overflow: hidden;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 99999;
}

.yt-modal-container {
  background: #000;
  border-radius: .5rem;
  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .25);
  max-width: 90rem;
  padding: 1.5rem 2.5rem 2.5rem;
  position: relative;
  width: 80%;
}

.yt-modal-video-wrap {
  padding: 28.125% 0;
  position: relative;
  width: 100%;
}

.yt-modal-inner iframe {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

.yt-modal-button-wrap {
  display: flex;
  justify-content: flex-end;
}

.yt-modal-close {
  cursor: pointer;
  display: block;
  font-size: 3.2rem;
  line-height: 1;
  padding: .25rem .75rem;
  position: relative;
  right: -.25em;
  width: 3.5rem;
}

.yt-modal.active {
  display: flex;
}

.btn-news-anchor {
  align-items: center;
  background: rgba(255, 255, 255, .25);
  border: solid .1rem #fff;
  border-radius: 5rem;
  box-shadow: 0 0 0.25rem rgba(0, 0, 0, .5), 0 0 .25rem rgba(0, 0, 0, .5) inset;
  color: #fff;
  cursor: pointer;
  display: flex;
  font-size: 1.75rem;
  justify-content: center;
  line-height: normal;
  overflow: hidden;
  padding: 1rem 5rem .85rem 5rem;
  text-shadow: 0 0 0.5rem rgba(0, 0, 0, .85), 0 0 .5rem rgba(0, 0, 0, .85);
  transition: .05s;
  white-space: nowrap;
}

.btn-news-anchor:hover {
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 0 .25rem rgba(0, 0, 0, .5);
  color: #242424;
  text-shadow: none;
  transition: .1s;
}

@media screen and (max-width:767px) {
  
  .main-visual-inner-content {
    bottom: 5%;
  }

  .btn-yt-open,
  .btn-news-anchor {
    bottom: 15%;
    font-size: 1.5rem;
    padding: .85rem 4.5rem .75rem 3.5rem;
  }
  
  .yt-modal-container {
    padding: .75rem 1.5rem 1rem;
    width: calc(100% - 2rem);
  }
  
  
}

@media screen and (max-width:767px) and (orientation: landscape) {
  
  .yt-modal-container {
    width: 75%;
  }
  
}


/* add 20210510 */
#safeguard_toggle {
  position: relative;
}

#safeguard_toggle:not(.active)::after {
  background: rgba(255, 255, 255, .25);
  content: '';
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

#safeguard_toggle:not(.active) > * {
  opacity: .5;
}

.safeguard_require {
  background: rgba(0, 0, 0, .05);
  display: flex;
  padding: 1rem 1rem 1.5rem;
  text-align: left;
}

.safeguard_require > .mwform-checkbox-field {
  align-items: flex-start;
  display: flex;
  justify-content: center;
  margin-right: 1.5rem;
  width: 3.5rem;
}


/* add 20211217 cookie */
#cookie-law-info-bar {
  background: rgba(0, 0, 0, .85) !important;
  box-shadow: 0 -.25rem 1rem rgba(0, 0, 0, .1) !important;
  padding: 2.5rem !important;
}

#cookie-law-info-bar > span {
  display: block;
  margin: auto;
  max-width: 1440px;
}

.cli-bar-btn_container {
  align-items: flex-end !important;
  flex-direction: column;
  flex-wrap: wrap;
  width: calc(30% - 20px) !important;
}

.cli-bar-btn_container > * {
  margin: 1rem 0;
}

@media (max-width: 985px) {

  .cli-style-v2 .cli-bar-btn_container {
    width: 100% !important;
  }

}

.cli-btn {
  transition: .1s !important;
}

.cli-btn:hover {
  opacity: .85 !important;
}

#wt-cli-accept-all-btn {
  padding: 1.5rem;
  width: 100% !important;
}


.cli-switch input:checked + .cli-slider {
	background-color: #3a3c40 !important;
}

.cli-tab-footer .wt-cli-privacy-accept-btn {
  background-color: #fff !important;
  border: solid 1px #242424;
  color: #242424 !important;
}

.cli-tab-footer .wt-cli-privacy-accept-btn:hover {
  background-color: #242424 !important;
  color: #fff !important;
}

.cli-modal .cli-modal-close {
  border-radius: .25rem !important;
  transition: .1s;
}

.cli-modal .cli-modal-close:hover {
  background: rgba(0, 0, 0, .1) !important;
  cursor: pointer;
}

.cli-modal .cli-modal-dialog {
  margin: auto !important;
  width: 90% !important;
}

@media (min-width: 992px) {
	.cli-modal .cli-modal-dialog {
		max-width: 800px !important;
	}
}

.cli-bar-popup {
  padding: 4.5rem 0 4.5rem 4.5rem !important;
}

.cli-modal-body,
.cli-modal-footer {
  padding-right: 4.5rem;
}

/* 20211221 - page:news */
.page-news-block {
  margin: 4.5rem auto 5rem;
  position: relative;
}

.main-container .page-news-block .page-news-title {
  margin: 0;
  padding: 1.5rem 0;
  text-align: center;
}

.main-container .page-news-block .page-news-title::before {
  display: none;
}

.page-news-posts-wrap {
  padding: 1.5rem;
  position: relative;
}

.page-news-more {
  align-items: center;
  background-color: #fff;
  color: #242424;
  display: inline-flex;
  font-size: 1.4rem;
  font-weight: bold;
  height: 5rem;
  justify-content: center;
  padding: .5rem 1.5rem;
  text-align: right;
  white-space: nowrap;
}

.page-news-more:hover {
  background-color: rgba(0, 0, 0, .1);
}

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

  .page-news-block {
    padding-bottom: 5rem;
  }

  .page-news-posts-wrap {
    padding: 1.5rem 0;
  }
  
  .page-news-more {
    background: #efefef;
    bottom: 0;
    left: 0;
    position: absolute;
    width: 100%;
  }
  
}

.bl-split-wrap {
  display: flex;
}

.bl-split-left {
  background: #f5f5f5;
  margin-right: 1.5rem;
  width: calc(25% - 1.5rem);
}

.bl-split-right {
  width: 75%;
}

@media screen and (max-width: 767px) {
  
  .bl-split-wrap {
    display: block;
  }

  .bl-split-left {
    background: none;
    margin: 0;
    width: 100%;
  }

  .bl-split-right {
    width: 100%;
  }
}
/* /20211221 - page:news */




/* post-content */
.content-wrapper table.el-table-style-01 {
  border-collapse: collapse;
}

.content-wrapper table.el-table-style-01,
.content-wrapper table.el-table-style-01 th,
.content-wrapper table.el-table-style-01 td {
  border-color: #544e4e;
  border-width: .1rem;
  line-height: 1.25;
  padding: 1rem;
}

.content-wrapper table.el-table-style-01 th {
  background: #eff2f3;
  color: #242424;
  line-height: 1.15;
}

.content-wrapper .el-color-00 {
  color: #242424 !important;
}

.content-wrapper .el-text-01 {
  color: #c00;
  font-weight: bold;
}

.content-wrapper .bl-box-00 {
  border-radius: .25rem;
  line-height: 1.45;
  padding: 1rem;
}

.content-wrapper .bl-box-00 h2 {
  color: #c00;
  font-size: 1.6rem;
  font-weight: bold;
  margin: 1.25em 0 .25em;
  padding: 0;
}

.content-wrapper .bl-box-00 h2::before,
.content-wrapper .bl-box-00 h2::after {
  display: none;
}

.content-wrapper .bl-box-00 p {
  margin: .25em 0 .5em .75em;
}


/* /post-content */

/* banner content */
.content-banner-container {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 5rem;
  padding: 1rem;
}

.content-banner-item {
  margin: 0 .5rem 1rem;
}

.content-banner-item img {
  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
}

.sidebar-banner-container {
  
}

.sidebar-banner-item {
  display: inline-block;
}

.sidebar-banner-item:not(:first-child) {
  margin-top: 1rem;
}

.sidebar-banner-item img {
  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
}
/* /banner content */

/* 20230213add zeimu */
.mw_wp_form select {
  min-width: max(50%, 10em);
}

.mw_wp_form [readonly] {
  background: #eaeaf1;
  border-color: #cbcbd9;
}

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

  .mw_wp_form select {
    width: 100%;
  }

  .mw_wp_form input[type="email"],
  .mw_wp_form input[type="text"] {
    width: 100%;
  }
  
}

.bl-zeimu-wrapper {
  margin: 7.5rem auto 4.5rem;
  max-width: 80rem;
}

.bl-zeimu-section {
  margin-bottom: 3.5rem;
}

.bl-zeimu-wrapper select,
.bl-zeimu-wrapper input[type="email"],
.bl-zeimu-wrapper input[type="text"] {
  width: 100%; 
}

.mw_wp_form_preview .bl-zeimu-input-wrapper {
  background: #efefef;
  border-radius: .5rem;
  min-height: 2em;
  padding: .25em .5em;
}

.bl-zeimu-wrapper .mwform-checkbox-field {
  display: inline;
}

/* /20230213add zeimu */

/* 20230612add recruit-form */
.bl-recruit-form {
  margin: auto;
  max-width: 80rem;
  padding: 2.5rem 0;
}

.bl-recruit-form input[type="file"] {
  background-color: transparent;
  border: none;
  padding: 0;
  width: calc(100% - 5rem);
}

.bl-recruit-consent {
  background: #f9f8f8;
  border-radius: .25rem;
  margin-bottom: 1.5rem;
  padding: 2.5rem 1rem 1.5rem;
  text-align: center;
}

.bl-recruit-consent p {
  margin-bottom: 1.5rem;
}

.bl-recruit-form .mwform-checkbox-field {
  display: inline;
}

.bl-recruit-form-1col {
  display: flex;
  margin-bottom: 2.5rem;
}

.bl-recruit-form-1col p {
  margin: 0;
}

.bl-recruit-form-label {
  margin-right: 1.5rem;
  width: 13.5em;
}

.bl-recruit-form-label .require {
  white-space: nowrap;
}

.bl-recruit-form-upload {
  background: #f9f8f8;
  border: solid .25rem rgba(0, 0, 0, .25);
  border-radius: .5rem;
  display: block;
  padding: 2.5rem;
}

.bl-recruit-form-input-wrap {
  display: flex;
  flex: auto;
  gap: 1rem;
  width: calc(100% - 13.5em);
}

.bl-recruit-form-input-inner {
  flex: auto;
  width: calc(50% - 1rem);
}

.bl-recruit-form-input-wrap input {
  width: 100%;
}

.bl-recruit-question {
  background: #f9f8f8;
  border-radius: .25rem;
  margin-bottom: 1rem;
  padding: 1.5rem;
}

.bl-recruit-question select,
.bl-recruit-question input {
  background: #fff;
  width: 100%;
}

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

  .bl-recruit-form-1col {
    flex-wrap: wrap;
  }

  .bl-recruit-form-input-wrap {
    width: 100%;
  }

  .bl-recruit-form-label {
    width: auto;
  }

  .bl-recruit-form-upload {
    padding: 1.5rem;
  }
  
  .bl-recruit-form-upload input[type="file"] {
    font-size: 1.25rem;
  }

}
/* /20230612add recruit-form */

/* job */
.bl-recruit-apply-container {
  background: rgba(0, 0, 0, .25);
  bottom: 0;
  left: 0;
  padding: 1.5rem;
  position: fixed;
  width: 100%;
  z-index: 256;
}

.bl-recruit-apply-btn {
  align-items: center;
  background: #d21620;
  color: #fff;
  display: inline-flex;
  font-weight: bold;
  justify-content: center;
  min-width: 16rem;
  padding: 1.5rem;
  text-align: center;
}

.bl-recruit-apply-btn:hover {
  color: #fff;
}
/* /job */

/* 20230814 add sustainability */

.single-ir h2:not(.title-liner):not(.main-section-title),
.single-sustainability h2:not(.title-liner):not(.main-section-title) {
  padding-left: 0;
  padding-right: 0;
}

.single-ir h2:not(.title-liner):not(.main-section-title)::before,
.single-sustainability h2:not(.title-liner):not(.main-section-title)::before {
  display: none;
}

.single-ir h2::after,
.single-sustainability h2::after {
  background: linear-gradient(-10deg, #7f7f7f 15%, #bfbfbf 15.5%, #bfbfbf 50%, #c98d8f 50.5%);
  bottom: 0;
  content: "";
  display: block;
  height: .75rem;
  left: -4rem;
  position: absolute;
  width: 100%;
}


.single-ir h3,
.single-sustainability h3 {
  background: #e7e6e6;
  border: none;
  display: inline-block;
  margin: .5rem 0;
  padding: .5rem 1rem;
}


.bl-inpages {
  display: flex;
  justify-content: center;
}


.content-wrapper .bl-inpages {
  margin: 1rem 0;
  padding: 0;
}

.content-wrapper .bl-inpages > li {
  background: #bfbfbf;
  list-style-type: none;
  margin: 0;
}

.bl-inpage {
  position: relative;
}

.bl-inpage + .bl-inpage::before {
  background: #fff;
  content: "";
  display: block;
  height: 1.5em;
  left: 0;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: .1rem;
}

.bl-inpage-item {
  color: #fff;
  display: block;
  padding: 1.5rem 3.5rem;
}

.bl-inpage-item::after {
  color: #a01d1d;
  content: "↓";
  text-decoration: underline;
  margin-left: 1.5em;
}

.bl-inpage-post {
  margin-bottom: 4.5rem;
}

.archive-sustainability .archive-post-children {
  justify-content: center;
}

.archive-sustainability .archive-post-children > li {
  margin-bottom: 2.5%;
}

.archive-sustainability .archive-post-children-inner {
  padding: 0;
}

.archive-sustainability .archive-post-children-image-wrapper {
  height: auto;
  max-height: none;
  overflow: visible;
  position: static;
}

.archive-sustainability .archive-post-children-image-wrapper img {
  aspect-ratio: 4/3;
  height: auto;
  padding: 0;
  position: static;
  transform: none;
  width: 100%;
}

.bl-box-red {
  border: solid .2rem #a01d1d;
  padding: 1rem;
}
/* /20230814 add sustainability */

/* 20230911 add IR */
.content-wrapper .bl-list-caution {
  border: dashed .2rem #ddd;
  margin-left: 0;
  padding: 1.5rem 2rem;
}

.content-wrapper .bl-list-caution > li {
  list-style: none;
  padding-left: 1em;
  text-indent: -1em;
}

.bl-btn-primary-red {
  align-items: center;
  background: linear-gradient(45deg, #d41620, #a00e15);
  border-radius: 1rem;
  color: #fff;
  display: inline-flex;
  flex-direction: column;
  font-size: 1.75rem;
  font-weight: bold;
  justify-content: center;
  line-height: 1.15;
  min-height: 6.5rem;
  min-width: 24rem;
  padding: .5rem 1rem;
  text-align: center;
}

.bl-btn-primary-red:hover {
  color: #fff;
}


/* /20230911 add IR */

/* 20240322 add */
.cat-label {
  background: #333;
  color:#fff;
  display: inline-block;
  font-size: .7em;
  margin-right: .5em;
  min-width: 6.5em;
  padding: .15rem .5rem 0;
  text-align: center;
}

/* /20240322 add */

/* 20240823 add */
.bl-footer-policies {
  display: flex;
  flex-wrap: wrap;
  font-size: 1.1rem;
  gap: 1.5rem;
  justify-content: center;
  list-style: none;
  padding: 1rem 1.5rem .5rem;
}
.bl-footer-policies a {
  color: #242424;
}

body:not(.body-frontpage) .bl-prototype .main-lineups-image-wrapper {
  box-shadow: 0 0 0 1.5rem #eee;
}
/* /20240823 add */


/* 20241115 add */
.flex-container-main__fullwidth {
  max-width: none;
}


.js-swiper {
  /* display: flex; */
  overflow: hidden;
  margin: 0 calc(50% - 50vw) 5rem;
  padding: 1.5rem calc(50vw - 50%);
}

h2:not(.title-liner):not(.main-section-title).js-swiper-title {
  margin-bottom: 0;
}

h2:not(.title-liner):not(.main-section-title).js-swiper-title::before {
  display: none;
}

.js-swiper > .swiper-wrapper {
}

.js-swiper-item {
  background: #fcfcfc;
  border: solid .1rem #dedede;
  border-radius: 1.5rem;
  box-shadow: 0 .5rem 1.25rem rgba(0, 0, 0, .05);
  display: block;
  padding: 2.5rem 2.5rem 1rem;
  width: 25rem;
}

.js-swiper-image-wrapper {
  aspect-ratio: 16/9;
  border-radius: .5rem;
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.js-swiper-image-wrapper img {
  display: block;
  left: 50%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: .15s ease-in;
  width: 100%;
}

.js-swiper-item:hover .js-swiper-image-wrapper img {
  transform: translate(-50%, -50%) scale(1.15);
}

.js-swiper-caption {
  color: #555;
  display: block;
  font-size: 1.8rem;
  margin-top: .5rem;
  padding: .25rem .5rem;
}

/* /20241115 add */