@charset "UTF-8";
/* base
-------------------- */
html {
  font-size: 62.5%;
}

body {
  position: relative;
  font-family: 'Noto Serif', 'Noto Serif JP', '游明朝体' , 'Yu Mincho' , 'YuMincho' ,'Hiragino Mincho Pro', 'ヒラギノ明朝 Pro W3','ヒラギノ明朝 ProN W3','Hiragino Mincho ProN', Meiryo, メイリオ, serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.75;
  color: #333;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

figure {
  margin: 0;
}

.figure {
  display: block;
}

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

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

ul.def {
  margin: 1em 0;
  padding-left: 40px;
  list-style-type: disc;
}

ol.def {
  margin: 1em 0;
  padding-left: 40px;
  list-style-type: decimal;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 400;
  line-height: 1.5;
  margin: 0 0 0.5em;
}

section .far, section .fas {
  margin-right: 5px;
}

a,
a img {
  -webkit-transition: all .3s;
  -moz-transition: all .3s;
  transition: all .3s;
}

a img {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

a:link {
  text-decoration: none;
  color: #333;
}

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

a:hover {
  text-decoration: none;
  color: #f00;
}

a:hover img {
  filter: alpha(opacity=75);
  -moz-opacity: 0.75;
  opacity: 0.75;
}

/* header
-------------------- */
header {
  background-color: white;
  box-shadow: 0px 0px 10px 0px rgba(204, 204, 204, 0.5);
}
header .desc {
  font-size: 1.2rem;
  margin-left: 30px;
}

.sticky-top {
  z-index: 2040;
}

.header {
  padding-top: 10px;
}

#logo {
  font-size: 1.6rem;
  line-height: 1.0;
  margin: 0;
  padding: 0;
}

#logo a {
  display: inline-block;
}

#logo img {
  width: 280px;
  height: 50px;
}

.nav-fnc .btn_a {
  display: inline-block;
  background-color: #1f5496;
  color: #fff;
  font-size: 1.4rem;
  margin-right: 20px;
  padding: 2px 20px;
  border-radius: 14px;
}

.lang a {
  display: block;
  background-color: #15c7b8;
  color: #fff;
  padding: 2px 20px;
}

.icon_iso::before,
.icon_contact::before,
.icon_lang::before {
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  color: #fff;
  margin-right: 0.5em;
}

.icon_iso::before {
  content: "\f2bb";
}

.icon_contact::before {
  content: "\f0e0";
}

.icon_lang::before {
  content: "\f0ac";
}

/* nav
-------------------- */
.mobile-nav {
  display: none;
}

nav .nav {
  font-size: 1.8rem;
  font-weight: 400;
  margin-top: 10px;
  margin-bottom: 5px;
}
nav .nav > li {
  line-height: 1.0;
  text-align: center;
  min-width: 90px;
  padding-top: 5px;
  padding-left: 10px;
  padding-right: 10px;
  border-left: 1px solid #ccc;
}
nav .nav > li .has::after {
  display: block;
  text-align: center;
  line-height: 1.0;
  content: "\f0d7";
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  color: #9a9a9a;
}
nav .nav > li .current {
  color: #f00;
}
nav .nav > li:first-child {
  border-left: none;
}

.nav-child {
  display: none;
  z-index: 9999;
}

.nav > li:hover .nav-child {
  display: block;
  position: fixed;
  left: 0;
  width: 100%;
  color: #fff;
  border-top: 1px solid #f0f0f0;
  -webkit-animation: megaopen 0.2s linear 0s;
  animation: megaopen 0.2s linear 0s;
}

.nav-child > div {
  display: block;
}

@keyframes megaopen {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.headmeta {
  background-color: #1f5496;
  width: 25%;
  padding: 4%;
  box-sizing: border-box;
}
.headmeta h3 {
  font-family: 'Noto Serif JP';
  font-size: 3.6rem;
  font-weight: 300;
  line-height: 1.5;
  margin-bottom: 30px;
}
.headmeta h3 small {
  display: block;
  font-size: 1.6rem;
}
.headmeta h3 ::after {
  display: block;
  content: '';
  width: 50px;
  padding-top: 30px;
  border-bottom: 1px solid #b1c2d8;
}
.headmeta .btn.btn-sm {
  min-width: 100%;
  padding: 4px 10px;
}

.meganav {
  background-color: #fff;
  width: 75%;
  padding: 15px;
  box-sizing: border-box;
}
.meganav ul > li {
  font-size: 1.6rem;
  width: 25%;
  margin-bottom: 0;
  padding: 15px;
  box-sizing: border-box;
}
.meganav ul > li img {
  display: block;
  margin-bottom: 5px;
}
.meganav ul > li a {
  display: block;
}
.meganav ul > li a::after {
  content: "\f105";
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  margin-left: 0.5em;
}
.meganav a:hover img {
  filter: alpha(opacity=100);
  -moz-opacity: 1.0;
  opacity: 1.0;
}

/* mobile
-------------------- */
.gblnv_block {
  display: none;
}

/* sidebar
-------------------- */
.sidebar .sideblock {
  margin-bottom: 30px;
}
.sidebar .sideblock h3 {
  font-size: 1.6rem;
}
.sidebar .sideblock li > a {
  font-size: 1.4rem;
}

/* footer
-------------------- */
footer {
  background-color: #333;
  color: #fff;
  padding: 40px 0 0 !important;
}
footer a:link, footer a:visited {
  color: #eee;
}
footer a:hover {
  color: #fff;
}
footer h2 {
  font-size: 2.4rem;
  font-family: "ヒラギノ丸ゴ Pro W4","ヒラギノ丸ゴ Pro","Hiragino Maru Gothic Pro","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","HG丸ｺﾞｼｯｸM-PRO","HGMaruGothicMPRO", "Meiryo", "メイリオ", serif;
}
footer .tel {
  margin-bottom: 0;
}
footer .iso {
  font-size: 1.4rem;
  font-weight: 300;
  line-height: 1.4;
}
footer .footerlink {
  font-size: 1.4rem;
}
footer #copyright {
  background-color: #484848;
  font-size: 1.2rem;
  color: #fff;
  text-align: center;
  width: 100%;
  margin-top: 40px;
  padding-top: 12px;
  padding-bottom: 12px;
}

/* common
-------------------- */
main {
  display: block;
}

.section {
  padding-top: 90px;
  padding-bottom: 90px;
}

p.img {
  margin: 0;
}

.btn + .btn {
  margin-left: 10px;
}

.btnblock .btn {
  display: inline-block;
  text-align: center;
  min-width: 255px;
  background-color: #15c7b8;
  font-size: 1.5rem;
  font-weight: 500;
  color: #fff;
  border-radius: 2px;
  padding: 13px 20px;
  box-sizing: border-box;
}
.btnblock .btn.wdt {
  min-width: 100%;
}
.btnblock .btn::after {
  content: "\f105";
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  margin-left: 0.5em;
}
.btnblock .btn:link,
.btnblock .btn:visited {
  color: #fff;
}
.btnblock .btn:hover {
  background-color: #000;
}

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

.wp-block-button .wp-block-button__link {
  display: inline-block;
  text-align: center;
  min-width: 255px;
  background-color: #15c7b8;
  font-size: 1.5rem;
  font-weight: 500;
  color: #fff;
  border-radius: 2px;
  padding: 13px 20px;
  box-sizing: border-box;
}
.wp-block-button .wp-block-button__link.wdt {
  min-width: 100%;
}
.wp-block-button .wp-block-button__link::after {
  content: "\f105";
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  margin-left: 0.5em;
}
.wp-block-button .wp-block-button__link:link,
.wp-block-button .wp-block-button__link:visited {
  color: #fff;
}
.wp-block-button .wp-block-button__link:hover {
  background-color: #000;
}

.wp-block-button.text-center .wp-block-button__link {
  text-align: center;
}

.caution {
  font-size: 1.4rem;
}

.caption {
  font-size: 1.4rem;
}

h2 {
  font-size: 3.6rem;
  line-height: 1.6;
}

h3 {
  font-size: 1.8rem;
}

h3.ttl {
  font-size: 2.0rem;
}

h4 {
  font-size: 1.6rem;
}

.fz-big {
  font-size: 2.4rem;
}

.fz-sembig {
  font-size: 1.8rem;
}

.fz-small {
  font-size: 1.4rem;
}

.fz-nml {
  font-size: 1.6rem;
}

.f-red {
  color: #c95b5b;
}

.fwn {
  font-weight: normal;
}

.pt-6 {
  padding-top: 40px;
}

.bg_gray {
  background-color: #f5f5f5;
}

.wp-block-embed-youtube {
  text-align: center;
}

.wp-block-columns .wp-block-embed-youtube .wp-block-embed__wrapper {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}

.wp-block-columns .wp-block-embed-youtube .wp-block-embed__wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.gmap {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px;
  height: 0;
  overflow: hidden;
}

.gmap iframe,
.gmap object,
.gmap embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* parts
-------------------- */
/* title */
.bg_blue {
  background: #1f5496;
  background: linear-gradient(90deg, #1f5496 0%, #0081b7 100%);
  color: #fff;
  padding-top: 100px;
  padding-bottom: 100px;
}

/* contact_department */
.contact_department {
  background: #0e5ac8;
  background: linear-gradient(90deg, #0e5ac8 0%, #0081b7 100%);
  color: #fff;
  margin-top: 80px;
  margin-bottom: 80px;
  padding: 50px 70px 50px 100px;
}
.contact_department h3 {
  font-size: 2.4rem;
  line-height: 1.5;
  text-indent: -22px;
  margin-bottom: 40px;
}
.contact_department h3::before {
  content: url(../img/icon_circle.svg);
  display: inline-block;
  width: 18px;
  height: auto;
  vertical-align: top;
  text-indent: 3px;
  margin-right: 0.2em;
}
.contact_department p.tel_fax {
  line-height: 1.25;
  margin-bottom: 1.5em;
}
.contact_department p.tel_fax big {
  font-size: 2.4rem;
}
.contact_department .btnblock .btn {
  width: 100%;
  font-size: 2.1rem;
  padding: 50px 20px;
}

.contact_formset {
  background: white;
  background: linear-gradient(90deg, white 0%, white 50%, whitesmoke 50%, whitesmoke 100%);
  border: 1px solid #ccc;
  margin-bottom: 40px;
  padding: 30px;
  border-radius: 6px;
  box-sizing: border-box;
}
.contact_formset .btnblock {
  text-align: center;
}

/* table */
.table-nowrap > .table > tbody > tr > td,
.table-nowrap > .table > tbody > tr > th,
.table-nowrap > .table > tfoot > tr > td,
.table-nowrap > .table > tfoot > tr > th,
.table-nowrap > .table > thead > tr > td,
.table-nowrap > .table > thead > tr > th {
  white-space: nowrap;
}

table.tbl {
  border-collapse: collapse;
  text-align: left;
  line-height: 1.5;
  width: 100%;
}

table.tbl th {
  width: 200px;
  padding: 15px 20px;
  vertical-align: top;
  border: 1px solid #ccc;
  background-color: #f5f5f5;
}

table.tbl td {
  padding: 10px;
  vertical-align: top;
  border: 1px solid #ccc;
}

table.tbl th.th-blue {
  background-color: #d9ecf0;
}

/* table  Gutenberg*/

figure.wp-block-table table {
  color: #212529;
  border: 1px solid #dee2e6;
  width:98%;
}
figure.wp-block-table table th {
  color: #fff;
  background-color: #343a40;
  border-color: #454d55;
  border-bottom-width: 2px;
  vertical-align: bottom;
  border-bottom: 2px solid #dee2e6;
  padding: 0.75rem;
}
figure.wp-block-table table td {
  border: 1px solid #dee2e6;
  padding: 0.75rem;
  vertical-align: top;
}

/* pagination */
.pagination {
  justify-content: center;
  margin-top: 80px;
}
.pagination ul {
  display: inline-block;
  font-size: 1.4rem;
  margin: 0;
  padding: 0;
}
.pagination li {
  display: inline-block;
  list-style: none;
  margin-left: 3px;
  margin-bottom: 5px;
}
.pagination li:first-child {
  margin-left: 0;
}
.pagination li > span.current {
  display: inline-block;
  background-color: #15c7b8;
  color: #fff;
  padding: 0.8rem 1.5rem;
}
.pagination li.active {
  background-color: #15c7b8;
  color: #fff;
  padding: 0.8rem 1.5rem;
}
.pagination li a {
  background-color: #f7f7f7;
  display: inline-block;
  padding: 0.8rem 1.5rem;
  text-decoration: none;
}
.pagination li a:hover {
  background-color: #333;
  color: #fff;
}

/* breadcrumb */
.breadcrumb {
  background-color: #ededed;
  font-size: 1.4rem;
  margin-bottom: 0;
  padding-top: 12px;
  padding-bottom: 12px;
}

/* form */
form {
  margin-left: 15px;
}

form .required {
  color: #c00;
  font-size: 1.4rem;
  font-style: normal;
}

.form-group {
  margin-bottom: 4px;
}

input[type="text"],
input[type="email"],
input[type="number"],
input[type="tel"],
textarea.form-control {
  font-size: 1.6rem;
  line-height: 1.5;
  outline: none;
  border: 1px solid #ddd;
  height: auto;
  margin-left: 40px;
  padding: 0.75rem 1.0em;
  border-radius: 6px;
  box-sizing: border-box;
}

select.form-control {
  font-size: 1.6rem;
  line-height: 1.5;
  outline: none;
  border: 1px solid #ddd;
  height: auto;
  padding: 0.75rem 1.0em;
  border-radius: 6px;
  box-sizing: border-box;
}

textarea, select {
  font-family: inherit;
}

input + input,
input:first-child,
textarea:first-child {
  margin-left: 0;
}

input,
textarea {
  width: 100%;
  box-sizing: border-box;
}

input.short,
textarea.short {
  width: 20%;
}

input[type="radio"] {
  width: auto;
}

dt > label {
  display: inline-block;
  margin-top: 5px;
}

input[type="checkbox"] {
  width: auto;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
textarea:focus {
  background-color: #fafafa;
  border: 1px solid #ccc;
}

form .wpcf7-form-control-wrap {
  display: block;
  padding-top: 4px;
  padding-bottom: 4px;
}

form .wpcf7-form-control-wrap.acceptance-contact {
  display: inline;
}

form .col-form-label {
  display: block;
  background-color: #f5f5f5;
  padding-top: 14px;
  padding-bottom: 14px;
}

form .btn.wpcf7-submit {
  position: relative;
  display: inline-block;
  font-weight: 600;
  width: auto;
  border: 1px solid #15c7b8;
  background-color: #15c7b8;
  color: #fff;
  min-width: 340px;
  border-radius: 5px;
  margin-top: 30px;
  padding: 15px 20px;
  box-sizing: border-box;
}

form .btn.wpcf7-submit:link,
form .btn.wpcf7-submit:visited {
  color: #fff;
}

form .btn.wpcf7-submit:hover {
  border: 1px solid #000;
  background-color: #000;
  color: #fff;
  cursor: pointer;
}

.wpcf7 .screen-reader-response[role="alert"] {
  border: 2px solid #ec6969;
  background-color: #f8f8f8;
  margin-bottom: 20px;
  padding: 10px;
}

form .wpcf7-not-valid-tip {
  background-color: #f00;
  color: #fff;
  padding: 0.3em 1.0em;
}

input[type="submit"] {
  -webkit-transition: all .3s;
  -moz-transition: all .3s;
  transition: all .3s;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="submit"],
input[type="button"] {
  width: 100%;
  -webkit-appearance: none;
}

.wpcf7-radio .wpcf7-list-item.first {
  margin-right: 10px;
}

.form-control::-webkit-input-placeholder {
  color: #ccc;
}

.form-control::-moz-placeholder {
  color: #ccc;
}

.form-control:-moz-placeholder {
  color: #ccc;
}

.form-control:-ms-input-placeholder {
  color: #ccc;
}

/* backto
-------------------- */
#backto {
  position: fixed;
  bottom: 45px;
  right: 0;
  display: block;
  background: #616161;
  z-index: 900;
}

#backto a {
  display: block;
  font-size: 2.6rem;
  line-height: 2.6rem;
  text-decoration: none;
  color: #fff;
  width: 50px;
  height: 50px;
  padding-top: 12px;
  text-align: center;
  box-sizing: border-box;
  -webkit-transition: 0.5s;
  -moz-transition: 0.5s;
  transition: 0.5s;
}

#backto a:hover {
  color: #fff;
  background-color: #111;
}

/* top
-------------------- */
.top_nopd {
  padding-top: 0;
  padding-bottom: 0;
  overflow: hidden;
}

.top_bg02 > div {
  position: relative;
}

.top_bg02 > div::before {
  position: absolute;
  left: -80px;
  top: -80px;
  content: 'Technology';
  font-size: 12.0rem;
  line-height: 1.0;
  letter-spacing: -0.2rem;
  color: rgba(0, 129, 183, 0.1);
}

.top_bg03 {
  background: white;
  background: linear-gradient(to right, white 0%, white 45%, whitesmoke 45%, whitesmoke 100%);
  padding-top: 40px;
  padding-bottom: 40px;
}
.top_bg03 .widebox {
  width: 50%;
  margin-top: 44px;
  margin-bottom: 130px;
  padding: 40px;
  overflow: hidden;
  box-sizing: border-box;
  z-index: 100;
}
.top_bg03 .widebox::after {
  position: absolute;
  left: -60px;
  bottom: 0;
  content: 'Products';
  font-size: 12.0rem;
  line-height: 1.0;
  letter-spacing: -0.2rem;
  color: rgba(0, 129, 183, 0.1);
}
.top_bg03 .over_img_right {
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  text-align: right;
}
.top_bg03 h2 {
  font-size: 2.4rem;
  margin-bottom: 20px;
}
.top_bg03 h2::after {
  content: '';
  display: block;
  border-bottom: 2px solid #fdbb37;
  width: 40px;
  margin-top: 20px;
}
.top_bg03 .btnblock .btn {
  background-color: transparent;
  border: 1px solid #fff;
}
.top_bg03 .btnblock .btn:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

.top_bg04 .text {
  position: relative;
  text-align: center;
  background-color: #fff;
  margin: -70px 40px 30px;
  padding: 30px;
  box-sizing: border-box;
  box-shadow: 0px 5px 10px 0px rgba(204, 204, 204, 0.3);
  z-index: 100;
}
.top_bg04 h2 {
  font-size: 2.4rem;
  line-height: 1.0;
}
.top_bg04 p {
  font-size: 1.4rem;
  margin-bottom: 2.0em;
}

.top_bg05 {
  background-image: url(../img/top_bg05.jpg);
  background-size: cover;
  vertical-align: middle;
}

.factorylist {
  flex-wrap: wrap;
  background-color: #fff;
  line-height: 1.2;
  padding: 20px 30px;
}
.factorylist li {
  width: 33.3%;
  padding: 10px;
  border-right: 1px solid #ccc;
  box-sizing: border-box;
}
.factorylist li a {
  display: flex;
  align-items: center;
}
.factorylist li a img {
  margin-right: 10px;
}
.factorylist li a .text::after {
  content: "\f105";
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  margin-left: 0.5em;
}
.factorylist li:nth-child(1), .factorylist li:nth-child(2), .factorylist li:nth-child(3) {
  border-bottom: 1px solid #ccc;
}
.factorylist li:nth-child(3n) {
  border-right: none;
}

.factorylist_ext a {
  position: relative;
  text-align: center;
  line-height: 1.2;
  background-color: #fff;
  min-height: 70px;
  padding: 18px 10px;
}
.factorylist_ext a small {
  display: block;
}
.factorylist_ext a::after {
  position: absolute;
  right: 3px;
  top: 3px;
  content: "\f35d";
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  color: #15c7b8;
}

.contactblock {
  background-color: #e6f0fa;
  background-image: url(../img/bg_contact.jpg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 0 0;
  padding-top: 40px;
  padding-bottom: 40px;
}
.contactblock .contact {
  background-color: #fff;
  padding: 40px;
}
.contactblock .contact h2 {
  font-size: 2.4rem;
  margin-bottom: 40px;
}
.contactblock .contact .tel {
  vertical-align: middle;
  margin-right: 15px;
}
.contactblock .contact a {
  margin-left: 15px;
}
.contactblock .contact big {
  font-size: 2.4rem;
}

/* slide */
.mainimgwrap {
  position: relative;
  overflow: hidden;
  margin-right: -15px;
  margin-left: -15px;
}

.mainimgwrap::after {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: '';
  background: url(../img/main_wrap.png) repeat 0 0;
  z-index: 1001;
}

.slide div.mainimg {
  vertical-align: bottom;
  text-align: center;
}

.slide div.mainimg img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

.slide {
  opacity: 0;
  transition: opacity .3s linear;
}

.slick-dotted.slick-slider {
  margin-bottom: 0 !important;
}

.slick-dots {
  bottom: 0 !important;
  z-index: 1010;
}

.slide.slick-initialized {
  opacity: 1;
}

.copytext {
  font-size: 4.2rem;
  line-height: 1.0;
  font-family: serif;
  text-align: center;
  color: #ec6969;
  width: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
}

/* news */
#news h2 {
  font-size: 3.6rem;
  line-height: 1.0;
  float: left;
  margin: 0 0 40px;
}
#news h2 > .small {
  display: inline-block;
  font-size: 1.8rem;
}
#news .link {
  display: block;
  font-size: 1.5rem;
}
#news .link + .link {
  margin-bottom: 1.0em;
}
#news a:link,
#news a:visited {
  color: #fff;
}
#news a:hover {
  color: #ccc;
}

#news .newsbox a {
  display: block;
  box-sizing: border-box;
}
#news .newsbox a:hover {
  background-color: #000;
}
#news .newsbox li:nth-child(odd) {
  background-color: #1c5b9d;
}
#news .newsbox dl {
  font-size: 1.7rem;
  margin-bottom: 0;
}
#news .newsbox dl dt {
  white-space: nowrap;
  min-width: 240px;
  font-weight: 400;
  padding: 8px 0 8px 30px;
}
#news .newsbox dl dt .date {
  display: inline-block;
  width: 7em;
}
#news .newsbox dl dd {
  margin-bottom: 0;
  padding: 8px 15px;
}
#news .newsbox .categorytag {
  display: inline-block;
  background-color: #eee;
  min-width: 84px;
  color: #1f5496;
  text-align: center;
  font-size: 1.4rem;
  line-height: 1.0;
  padding: 3px 14px;
}

/* top block */
.dna-block > div {
  margin-bottom: 30px;
}
.dna-block a {
  display: block;
}
.dna-block .text {
  text-align: center;
  padding-top: 3px;
}
.dna-block .text ::after {
  content: "\f105";
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  margin-left: 0.5em;
}

/* page
-------------------- */
#subheader {
  background: #1f5496;
  background: linear-gradient(90deg, #1f5496 0%, #0081b7 100%);
  color: #fff;
  overflow: hidden;
}
#subheader .cat_title {
  position: relative;
  font-size: 4.8rem;
  line-height: 1.4;
  font-family: 'Noto Serif JP';
  font-weight: 300;
  color: #ccc;
  margin-top: 230px;
  margin-bottom: 78px;
  z-index: 10;
}
#subheader .cat_ja {
  display: block;
  font-size: 1.8rem;
  line-height: 1.4;
  margin-bottom: 0;
}
#subheader .page_technology:before,
#subheader .page_product:before,
#subheader .page_csr:before,
#subheader .page_quality:before,
#subheader .page_corporate:before,
#subheader .page_recruit:before,
#subheader .page_contact:before,
#subheader .page_news:before,
#subheader .page_other:before {
  position: absolute;
  bottom: 0;
  right: 0;
  content: '';
  display: inline-block;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: 100% 100%;
  z-index: 0;
}
#subheader .page_technology:before {
  background-image: url(../img/bg_tech.png);
}
#subheader .page_product:before {
  background-image: url(../img/bg_product.png);
}
#subheader .page_csr:before {
  background-image: url(../img/bg_csr.png);
}
#subheader .page_quality:before {
  background-image: url(../img/bg_quality.png);
}
#subheader .page_corporate:before {
  background-image: url(../img/bg_corporate.png);
}
#subheader .page_recruit:before {
  background-image: url(../img/bg_recruit.png);
}
#subheader .page_contact:before {
  background-image: url(../img/bg_contact.png);
}
#subheader .page_news:before {
  background-image: url(../img/bg_news.png);
}
#subheader .page_other:before {
  background-image: url(../img/bg_other.png);
}

.page-section {
  position: relative;
  margin-top: -30px;
}
.page-section > .container {
  background-color: #fff;
  background-image: url(../img/dot.png);
  background-repeat: no-repeat;
  background-position: 100% 60px;
  padding-top: 85px;
  padding-bottom: 120px;
}

.pagetitle {
  font-size: 3.4rem;
}

/* page-article */
.page-article .pagetitle {
  margin-bottom: 80px;
}
.page-article h2 {
  font-size: 2.4rem;
  border-left: 6px solid #f2c306;
  margin-top: 80px;
  margin-bottom: 50px;
  padding-left: 0.4em;
}
.page-article h3 {
  font-weight: 700;
}
.page-article a:link, .page-article a:visited {
  text-decoration: none;
  color: #f1a80a;
}

/* index page */
.page-index h2 {
  font-size: 3.0rem;
  color: #1f5496;
  margin-bottom: 0.75em;
}

.lead {
  font-size: 2.0rem;
  font-weight: 400;
  line-height: 2.0;
  margin-bottom: 70px;
}

.links-block > div {
  display: flex;
  margin-bottom: 30px;
}
.links-block .bg_gray {
  width: 100%;
}
.links-block a {
  display: block;
}
.links-block .text {
  text-align: center;
  padding: 20px;
}
.links-block .text ::after {
  content: "\f105";
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  margin-left: 0.5em;
}

.localnav {
  margin-top: 80px;
  margin-left: -15px;
  margin-right: -15px;
}
.localnav li {
  width: 25%;
  margin-bottom: 20px;
  padding-left: 15px;
  padding-right: 15px;
  box-sizing: border-box;
}
.localnav li a {
  display: block;
  text-align: center;
  padding: 12px;
}
.localnav li a::after {
  content: "\f105";
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
  margin-left: 0.5em;
}
.localnav li a:link, .localnav li a:visited {
  color: #fff;
  background-color: #1f5496;
}
.localnav li a:hover {
  display: block;
  color: #1f5496;
  background-color: #eee;
}
.localnav li.current-page-ancestor a,
.localnav li.current-menu-item a {
  display: block;
  color: #1f5496;
  background-color: #eee;
}

.localsubnav {
  border-bottom: 1px solid #dee2e6;
  margin-bottom: 40px;
}
.localsubnav li {
  margin-bottom: -1px;
}
.localsubnav li a {
  display: block;
  padding: .5rem 1rem;
  border: 1px solid transparent;
  border-top-left-radius: .25rem;
  border-top-right-radius: .25rem;
}
.localsubnav li.current a {
  color: #495057;
  background-color: #fff;
  border-color: #dee2e6 #dee2e6 #fff;
}

/* single
-------------------- */
.post_meta {
  margin-bottom: 40px;
}

.post-categories {
  margin-left: 20px;
  display: inline-block;
}
.post-categories li {
  display: inline-block;
}
.post-categories li a {
  font-size: 1.4rem;
  background-color: #f5f5f5;
  padding: 0.2rem 1.0rem;
}
.post-categories li a:link, .post-categories li a:visited {
  color: #1f5496;
}
.post-categories li a:hover {
  color: #f00;
}

.singlepage-section {
  position: relative;
  margin-top: -30px;
}
.singlepage-section > .container {
  background-color: #fff;
  padding-top: 85px;
  padding-bottom: 120px;
}

.single-article .singletitle {
  font-size: 3.4rem;
  margin-bottom: 0.25em;
}
.single-article h2 {
  font-size: 2.4rem;
  border-left: 6px solid #f2c306;
  margin-top: 80px;
  margin-bottom: 50px;
  padding-left: 0.4em;
}
.single-article a:link, .single-article a:visited {
  text-decoration: none;
  color: #f1a80a;
}

/* archive
-------------------- */
.archivetitle {
  font-size: 3.0rem;
  color: #1f5496;
}

/* eng */
#english_footer li {
  margin-left: 10px;
  margin-right: 10px;
}
