@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');



body::before {
  content: '';
  display: block;
  width: 100%; height: 100lvh;
  position: fixed;
  inset: 0 auto auto 0; z-index: 10000;/* -- chatbot が z-index:9999 なので */
  background: hsla(0, 0%, 0%, 0.3);
  visibility: hidden;
  opacity: 0;
  transition: visibility 0.4s, opacity 0.4s;
}
body.openmenu {
  overflow: hidden;
}
body.openmenu::before {
  visibility: visible;
  opacity: 1;
}


body > header {
  display: grid;
  grid-template-rows: calc(64 / 750 * 100vw) 0fr; grid-template-columns: auto 1fr auto;
  width: 100%; min-height: calc((23 + 64 + 20 + 1) / 750 * 100vw);/* -- (header:padding-top + button:height + div:margin-top + div:border-top) */
  box-sizing: border-box;
  position: fixed;
  inset: 0 auto auto auto; z-index: 10000;
  padding: calc(23 / 750 * 100vw) 0 0;
  font-family: 'Noto Sans JP', sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  line-height: 0;
  background: hsl(0, 0%, 100%);
  transition: grid-template-rows 0.4s ease-in-out, transform 0.4s ease-in-out;
}
body.openmenu > header {
  grid-template-rows: calc(64 / 750 * 100vw) 1fr; grid-template-columns: auto 1fr auto;
}
body > header.hidemenu {
  transform: translate(0, calc(-100% - 1 / 750 * 100vw));
}
body.openmenu > header.hidemenu {
  transform: translate(0, 0);
}

body > header + * {
  margin-top: calc((23 + 64 + 20 + 1) / 750 * 100vw);
}

body > header > h1 {
  grid-row: 1 / 2; grid-column: 1 / 2;
  width: calc(216 / 750 * 100vw);
  margin: 0 0 0 calc(38 / 750 * 100vw);
}
body > header > h1 > a {
  display: inline-block;
  width: 100%;
}
body > header > h1 > a > img {
  width: 100%; height: auto;
}

body > header > button {
  display: flex;
  grid-row: 1 / 2; grid-column: 3 / 4;
  width: calc(64 / 750 * 100vw); height: calc(64 / 750 * 100vw);
  margin: 0 calc(40 / 750 * 100vw) 0 0; padding: 0;
  appearance: none;
  background: transparent url('../image/common/header_02_01.svg') center / calc(64 / 750 * 100vw) no-repeat;
  border: none;
}
body.openmenu > header > button {
  background: transparent url('../image/common/header_02_02.svg') center / calc(64 / 750 * 100vw) no-repeat;
}

body > header > menu:nth-of-type(1) {/* -- PC用主メニュー */
  display: none;
}
body > header > menu:nth-of-type(2) {/* -- PC用副メニュー */
  display: none;
}

body > header > div {
  grid-row: 2 / 3; grid-column: 1 / 4;
  width: 100%;
  overflow: hidden;
  margin: calc(20 / 750 * 100vw) 0 0; padding: 0;
  border-top: max(1px, calc(1 / 750 * 100vw)) solid hsl(0, 0%, 81%);
}
body.openmenu > header > div {
  padding: calc(25 / 750 * 100vw) 0 calc(60 / 750 * 100vw);
}
body > header > div > nav:nth-of-type(1) {/* -- SP用プルダウンメニュー */
  width: 100%; max-height: calc(100dvh - (23 + 64 + 20 + 1 + 25) / 750 * 100vw); /* -- (header:padding-top + button:height + div:margin-top + div:border-top + div:padding-top) */
  overflow: auto;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) {/* -- SP用主メニュー */
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  width: calc(640 / 750 * 100vw);
  margin: 0 auto; padding: 0;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > a,
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > span {
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  padding: calc(48 / 750 * 100vw) calc(14 / 750 * 100vw) calc(14 / 750 * 100vw);
  font-weight: 800;
  font-size: calc(40 / 750 * 100vw); line-height: 1;
  letter-spacing: calc(75em / 1000);
  text-decoration: none;
  color: hsl(0, 0%, 20%);
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > a[target="_blank"]::after {
  content: '';
  display: inline-block;
  width: calc(18 / 750 * 100vw); height: calc(18 / 750 * 100vw);
  margin: 0 0 0 calc((19 - (30 * 75 / 1000)) / 750 * 100vw); padding: 0.1em 0 0;/* -- NotoSansJP は フォント上部 10% に余白があるので */
  background: url('../image/common/ancher_01.svg') center bottom / 100% no-repeat;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > menu {/* -- 中項目 */
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  padding: 0;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > menu > li {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > menu > li > a {
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  padding: calc(28 / 750 * 100vw) calc(68 / 750 * 100vw) calc(14 / 750 * 100vw) calc(14 / 750 * 100vw);
  font-weight: 600;
  font-size: calc(32 / 750 * 100vw); line-height: 1;
  letter-spacing: calc(100em / 1000);
  text-decoration: none;
  color: hsl(0, 0%, 20%);
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > menu > li > a::before {
  content: '';
  display: inline-block;
  width: calc(15 / 750 * 100vw); height: calc(17 / 750 * 100vw);
  position: absolute;
  inset: calc((28 + (26 - 17) / 2) / 750 * 100vw) calc(24 / 750 * 100vw) auto auto;
  padding: 0.1em 0 0;
  background: url('../image/common/header_03.svg') center bottom / 100% no-repeat;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > menu > li > a[target="_blank"]::after {
  content: '';
  display: inline-block;
  width: calc(18 / 750 * 100vw); height: calc(18 / 750 * 100vw);
  margin: 0 0 0 calc((28 - (26 * 100 / 1000)) / 750 * 100vw); padding: 0.1em 0 0;
  background: url('../image/common/ancher_01.svg') center bottom / 100% no-repeat;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > menu > li > menu {/* -- 小項目 */
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  width: min-content;
  padding: 0;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > menu > li > menu > li {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > menu > li > menu > li > a {
  display: flex;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  padding: calc(24 / 750 * 100vw) calc(59 / 750 * 100vw) calc(14 / 750 * 100vw) calc(34 / 750 * 100vw);
  font-weight: 600;
  font-size: calc(32 / 750 * 100vw); line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  color: hsl(0, 0%, 20%);
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > menu > li > menu > li > a::before {
  content: '';
  display: inline-block;
  width: calc(15 / 750 * 100vw); height: calc(17 / 750 * 100vw);
  position: absolute;
  inset: calc((28 + (26 - 17) / 2) / 750 * 100vw) 0 auto auto;
  padding: 0.1em 0 0;
  background: url('../image/common/header_03.svg') center bottom / 100% no-repeat;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(1) > li > menu > li > menu > li > a[target="_blank"]::after {
  content: '';
  display: inline-block;
  width: calc(18 / 750 * 100vw); height: calc(18 / 750 * 100vw);
  margin: 0 0 0 calc((28 - (26 * 100 / 1000)) / 750 * 100vw); padding: 0.1em 0 0;
  background: url('../image/common/ancher_01.svg') center bottom / 100% no-repeat;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(2) {/* -- SP用副メニュー */
  list-style: none;
  display: flex;
  width: 100%;
  margin: calc(60 / 750 * 100vw) auto 0; padding: 0;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(2) > li {
  display: block;
  width: 50%;
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(2) > li:nth-of-type(1) > a {/* -- かく、がスキ */
  display: flex;
  align-items: center;
  width: 100%; height: calc(124 / 750 * 100vw);
  box-sizing: border-box;
  padding: 0 0 0 calc(50 / 750 * 100vw);
  font-weight: 600;
  font-size: calc(32 / 750 * 100vw); line-height: 1;
  text-decoration: none;
  color: hsl(0, 0%, 100%);
  background: hsl(222, 100%, 31%);
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(2) > li:nth-of-type(1) > a > img {
  display: inline-block;
  width: calc(45 / 750 * 100vw); height: auto;
  margin: 0 calc(24 / 750 * 100vw) 0 0;
  filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(0%) hue-rotate(351deg) brightness(102%) contrast(103%);
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(2) > li:nth-of-type(2) > a {/* -- English */
  display: flex;
  align-items: center;
  width: 100%; height: calc(124 / 750 * 100vw);
  box-sizing: border-box;
  padding: 0 0 0 calc(100 / 750 * 100vw);
  font-weight: 600;
  font-size: calc(32 / 750 * 100vw); line-height: 1;
  text-decoration: none;
  color: hsl(0, 0%, 100%);
  background: hsl(0, 0%, 52%);
}
body > header > div > nav:nth-of-type(1) > menu:nth-of-type(2) > li:nth-of-type(2) > a > img {
  display: inline-block;
  width: calc(45 / 750 * 100vw); height: auto;
  margin: 0 calc(22 / 750 * 100vw) 0 0;
  filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(0%) hue-rotate(351deg) brightness(102%) contrast(103%);
}
body > header > div > nav:nth-of-type(2) {/* -- PC用プルダウンメニュー(製品情報) */
  display: none;
}
body > header > div > nav:nth-of-type(3) {/* -- PC用プルダウンメニュー(企業情報) */
  display: none;
}
body > header > div > nav:nth-of-type(4) {/* -- PC用プルダウンメニュー(サポート) */
  display: none;
}


body > footer {
  width: 100%;
  padding: calc(51 / 750 * 100vw) 0 calc(59 / 750 * 100vw);
  line-height: 0;
  border-top: max(2px, calc(2 / 750 * 100vw)) solid hsl(0, 0%, 95%);
}

body > footer > menu:nth-of-type(1) {/* -- SNS */
  list-style: none;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: calc(27 / 750 * 100vw);
  width: 100%;
  margin: 0; padding: 0;
}
body > footer > menu:nth-of-type(1) > li {
  height: calc(46 / 750 * 100vw);
}
body > footer > menu:nth-of-type(1) > li > a > img {
  width: auto; height: 100%;
}

body > footer > menu:nth-of-type(2) {/* -- 規則/サイトマップ */
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: calc(35 / 750 * 100vw);
  width: calc(600 / 750 * 100vw);
  margin: calc(50 / 750 * 100vw) auto 0; padding: 0;
}

body > footer > menu:nth-of-type(2) > li > a {
  font-weight: 400;
  font-size: calc(20 / 750 * 100vw); line-height: 1;
  text-decoration: none;
  color: hsl(0, 0%, 0%);
}

body > footer > small {
  display: block;
  margin: calc(62 / 750 * 100vw) auto 0;
  font-weight: 400;
  font-size: calc(18 / 750 * 100vw); line-height: 1;
  text-align: center;
  color: hsl(0, 0%, 0%);
}


#totop {
  display: block;
  position: sticky;
  inset: auto 0 0 auto;
  line-height: 0;
}

#totop > a {
  display: flex;
  position: absolute;
  justify-content: center;
  align-items: center;
  inset: auto calc(55 / 750 * 100vw) calc(34 / 750 * 100vw) auto;
  width: calc(64 / 750 * 100vw); height: calc(64 / 750 * 100vw);
  opacity: 0;
  visibility: hidden;
  transform: translate(0, 50%);
  transition: transform 0.4s, opacity 0.4s, visibility 0s 0.4s;
}
#totop.show > a {
  opacity: 1;
  visibility: visible;
  transform: translate(0, 0);
  transition: transform 0.4s, opacity 0.4s, visibility 0s 0s;
}
#totop > a > img {
  width: calc(34 / 750 * 100vw); height: auto;
}



@media (min-width:768px), print {/* -- PC */

body.openmenu {
  overflow: auto;
}
body.openmenu::before {
  visibility: hidden;
  opacity: 0;
}
body.dropdown::before {
  visibility: visible;
  opacity: 1;
}


body > header {
  grid-template-rows: min(calc(38 / 1536 * 100vw), 38px) 0fr;
  min-height: min(calc((16 + 38 + 22 + 1) / 1536 * 100vw), calc(16px + 38px + 22px + 1px));
  padding: min(calc(16 / 1536 * 100vw), 16px) 0 0;
}
body.openmenu > header {
  grid-template-rows: min(calc(38 / 1536 * 100vw), 38px) 0fr;
}
body.dropdown > header {
  grid-template-rows: min(calc(38 / 1536 * 100vw), 38px) 1fr;
}

body > header + * {
  margin-top: min(calc((16 + 38 + 22 + 1) / 1536 * 100vw), calc(16px + 38px + 22px + 1px));
}

body > header > h1 {
  width: min(calc(143 / 1536 * 100vw), 143px);
  margin: 0 0 0 min(calc(20 / 1536 *100vw), 20px);
}

body > header > button {
  display: none;
}

body > header > menu:nth-of-type(1) {/* -- PC用主メニュー */
  list-style: none;
  display: flex;
  justify-content: center;
  gap: min(calc(40 / 1536 * 100vw), 40px);
  margin: min(calc(14 / 1536 * 100vw), 14px) 0 0 min(calc(105 / 1536 * 100vw), 105px); padding: 0;
}
body > header > menu:nth-of-type(1) > li > a,
body > header > menu:nth-of-type(1) > li:not(:has(a)) {
  display: block;
  position: relative;
  font-weight: 500;
  font-size: min(calc(16 / 1536 * 100vw), 16px); line-height: min(calc(26 / 1536 * 100vw), 26px);
  text-decoration: none;
  color: hsl(0, 0%, 0%);
}
body > header > menu:nth-of-type(1) > li:not(:has(a)) {
  cursor: default;
}
body > header > menu:nth-of-type(1) > li > a::before,
body > header > menu:nth-of-type(1) > li:not(:has(a))::before {
  content: '';
  width: 0; height: min(calc(2 / 1536 * 100vw), 2px);
  position: absolute;
  inset: auto auto 0 0;
  background: hsl(222, 100%, 31%);
  transition: width 0.4s;
}
body > header > menu:nth-of-type(1) > li > a:hover::before,
body > header > menu:nth-of-type(1) > li:not(:has(a)):hover::before {
  width: 100%;
}
body.dropdown.dropdown01 > header > menu:nth-of-type(1) > li:nth-of-type(2) > a::before,
body.dropdown.dropdown02 > header > menu:nth-of-type(1) > li:nth-of-type(3) > a::before,
body.dropdown.dropdown03 > header > menu:nth-of-type(1) > li:nth-of-type(5)::before {
  width: 100%;
}
body > header > menu:nth-of-type(1) > li > a[target="_blank"]::after {
  content: '';
  display: inline-block;
  width: min(calc(10 / 1536 * 100vw), 10px); height: min(calc(10 / 1536 * 100vw), 10px);
  margin: 0 0 0 min(calc(3 / 1536 * 100vw), 3px); padding: 0.1em 0 0;
  background: url('../image/common/ancher_01.svg') center bottom / 100% no-repeat;
}
body > header > menu:nth-of-type(1) > li > a.active {
  color: hsl(222, 100%, 31%);
}

body > header > menu:nth-of-type(2) {/* -- PC用副メニュー */
  list-style: none;
  display: flex;
  gap: min(calc(34 / 1536 * 100vw), 34px);
  margin: min(calc(16 / 1536 * 100vw), 16px) min(calc(32 / 1536 * 100vw), 32px) 0 0; padding: 0;
}
body > header > menu:nth-of-type(2) > li > a {
  display: flex;
  align-items: center;
  width: fit-content; height: min(calc(24 / 1536 * 100vw), 24px);
  font-weight: 500;
  font-size: min(calc(14 / 1536 * 100vw), 14px); line-height: 1;
  text-decoration: none;
  color: hsl(0, 0%, 0%);
  transition: color 0.4s;
}
body > header > menu:nth-of-type(2) > li > a[target="_blank"]::after {
  content: '';
  display: inline-block;
  width: min(calc(10 / 1536 * 100vw), 10px); height: min(calc(10 / 1536 * 100vw), 10px);
  margin: 0 0 0 min(calc(5 / 1536 * 100vw), 5px); padding: 0.1em 0 0;
  background: url('../image/common/ancher_01.svg') center bottom / 100% no-repeat;
  transition: filter;
}
body > header > menu:nth-of-type(2) > li > a:hover {
  color: hsl(222, 100%, 31%);
}
body > header > menu:nth-of-type(2) > li > a[target="_blank"]:hover::after {
  filter: brightness(0) saturate(100%) invert(14%) sepia(47%) saturate(6165%) hue-rotate(221deg) brightness(85%) contrast(106%);
}
body > header > menu:nth-of-type(2) > li > a > img {
  display: inline-block;
  width: min(calc(24 / 1536 * 100vw), 24px); height: auto;
  margin: 0 min(calc(4 / 1536 * 100vw), 4px) 0 0;
  filter: brightness(0) saturate(100%) invert(12%) sepia(96%) saturate(4814%) hue-rotate(215deg) brightness(82%) contrast(95%);
}

body > header > div {
  grid-row: 2 / 3; grid-column: 1 / 4;
  width: 100%;
  overflow: hidden;
  margin: min(calc(22 / 1536 * 100vw), 22px) 0 0; padding: 0;
  border-top: min(calc(1 / 1536 * 100vw), 1px) solid hsl(0, 0%, 75%);
  transition: padding 0.4s;
}
body.dropdown > header > div {
  padding: min(calc(20 / 1536 * 100vw), 20px) 0 min(calc(39 / 1536 * 100vw), 39px);
  transition: padding 0s;
}
body > header > div > nav:nth-of-type(1) {/* -- SP用プルダウンメニュー */
  display: none;
}
body > header > div > nav:nth-of-type(n+2) {/* -- PC用プルダウンメニュー */
  display: none;
  grid-template: auto 1fr / auto auto auto;
  justify-content: center;
  gap: min(calc(23 / 1536 * 100vw), 23px) min(calc(99 / 1536 * 100vw), 99px);
  width: min(calc(1200 / 1536 * 100vw), 1200px);
  margin: 0 auto;
}
body.dropdown01 > header > div > nav:nth-of-type(2),
body.dropdown02 > header > div > nav:nth-of-type(3),
body.dropdown03 > header > div > nav:nth-of-type(4) {
  display: grid;
}
body > header > div > nav:nth-of-type(n+2) > h3 {
  grid-row: 1 / 2; grid-column: 1 / 4;
  width: min(calc(1200 / 1536 * 100vw), 1200px);
  margin: 0 auto;
  font-weight: 500;
  font-size: min(calc(20 / 1536 * 100vw), 20px); line-height: 1;
  letter-spacing: calc(150em / 1000);
  text-align: center;
  color: hsl(222, 100%, 31%);
}
body > header > div > nav:nth-of-type(n+2) > h3 > a {
  display: block;
  width: fit-content;
  position: relative;
  margin: 0 auto;
  text-decoration: none;
  color: hsl(222, 100%, 31%);
}
body > header > div > nav:nth-of-type(n+2) > h3 > a::before,
body > header > div > nav:nth-of-type(n+2) > h3 > a::after {
  content: '';
  display: block;
  width: min(calc(26 / 1536 * 100vw), 26px); height: min(calc(26 / 1536 * 100vw), 26px);
  position: absolute;
  inset: max(calc((20 - 26) / 2 / 1536 * 100vw + 0.1em), calc((20px - 26px) / 2) + 0.1em) max(calc((20 * 150 / 1000 - 24 - 26) / 1536 * 100vw), calc(20px * 150 / 1000 - 24px - 26px)) auto auto;
  border-radius: 50%;
}
body > header > div > nav:nth-of-type(n+2) > h3 > a::before {
  background: linear-gradient(90deg, hsl(220, 52%, 46%), hsl(221, 90%, 33%));
  opacity: 0;
  transition: opacity 0.4s;
}
body > header > div > nav:nth-of-type(n+2) > h3 > a::after {
  outline: min(calc(1 / 1536 * 100vw), 1px) solid hsla(222, 100%, 31%, 1);
  outline-offset: max(calc(-1 / 1536 * 100vw), -1px);
  background: url('../image/common/header_03.svg') center / min(calc(8 / 1536 * 100vw), 8px) no-repeat;
  filter: brightness(0) saturate(100%) invert(13%) sepia(63%) saturate(3841%) hue-rotate(218deg) brightness(100%) contrast(110%);
  transition: outline-color 0.4s, filter 0.4s;
}
body > header > div > nav:nth-of-type(n+2) > h3 > a[target="_blank"]::before,
body > header > div > nav:nth-of-type(n+2) > h3 > a[target="_blank"]::after {
  inset: max(calc((20 - 26) / 2 / 1536 * 100vw + 0.1em), calc((20px - 26px) / 2) + 0.1em) max(calc((20 * 150 / 1000 - 7 - 10 - 24 - 26) / 1536 * 100vw), calc(20px * 150 / 1000 - 7px - 10px - 24px - 26px)) auto auto;
}
body > header > div > nav:nth-of-type(n+2) > h3 > a:hover::before {
  opacity: 1;
}
body > header > div > nav:nth-of-type(n+2) > h3 > a:hover::after {
  outline-color: hsla(222, 100%, 31%, 0);
  filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(218deg) brightness(103%) contrast(103%);
}
body > header > div > nav:nth-of-type(n+2) > h3 > a > img {/* -- common.js の header.onDomContentLoaded で [target="_blank"] 時に挿入される */
  display: block;
  width: min(calc(10 / 1536 * 100vw), 10px); height: auto;
  position: absolute;
  inset: auto max(calc((20 * 150 / 1000 - 7 - 10) / 1536 * 100vw), calc(20px * 150 / 1000 - 7px - 10px)) 0 auto;
  transition: filter 0.4s;
}
body > header > div > nav:nth-of-type(n+2) > h3 > a:hover > img {
  filter: brightness(0) saturate(100%) invert(14%) sepia(47%) saturate(6165%) hue-rotate(221deg) brightness(85%) contrast(106%);
}
body > header > div > nav:nth-of-type(n+2) > menu {/* -- 中項目 */
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-content: start;
  gap: min(calc(26 / 1536 * 100vw), 26px);
  width: min(calc(260 / 1536 * 100vw), 260px);
  margin: 0; padding: 0;
}
body > header > div > nav:nth-of-type(n+2) > menu:nth-of-type(1) {/* -- 左 */
  justify-self: end;
}
body > header > div > nav:nth-of-type(n+2) > menu:nth-of-type(2) {/* -- 中 */
  justify-self: center;
}
body > header > div > nav:nth-of-type(n+2) > menu > li {
  width: 100%;
}
body > header > div > nav:nth-of-type(n+2) > menu > li > a {
  display: block;
  width: fit-content;
  position: relative;
  font-weight: 500;
  font-size: min(calc(16 / 1536 * 100vw), 16px); line-height: 1;
  letter-spacing: calc(100em / 1000);
  text-decoration: none;
  color: hsl(0, 0%, 20%);
  transition: color 0.4s;
}
body > header > div > nav:nth-of-type(n+2) > menu > li > a::before {
  content: '';
  display: block;
  width: min(calc(11 / 1536 * 100vw), 11px); height: min(calc(13 / 1536 * 100vw), 13px);
  position: absolute;
  inset: min(calc(50% - 13 / 2 /1536 * 100vw + 0.1em), calc(50% - 13px / 2 + 0.1em)) auto auto min(calc(251 / 1536 * 100vw), 251px);
  background: url('../image/common/header_03.svg') center / 100% no-repeat;
  transition: filter 0.4s;
}
body > header > div > nav:nth-of-type(n+2) > menu > li > a[target="_blank"]::after {
  content: '';
  display: inline-block;
  width: min(calc(10 / 1536 * 100vw), 10px); height: min(calc(10 / 1536 * 100vw), 10px);
  margin: 0 0 0 min(calc(5 / 1536 * 100vw), 5px); padding: 0.1em 0 0;
  background: url('../image/common/ancher_01.svg') center bottom / 100% no-repeat;
  transition: filter;
}
body > header > div > nav:nth-of-type(n+2) > menu > li > a:hover {
  color: hsl(222, 100%, 31%);
}
body > header > div > nav:nth-of-type(n+2) > menu > li > a:hover::before {
  filter: brightness(0) saturate(100%) invert(14%) sepia(47%) saturate(6165%) hue-rotate(221deg) brightness(85%) contrast(106%);
}
body > header > div > nav:nth-of-type(n+2) > menu > li > a[target="_blank"]:hover::after {
  filter: brightness(0) saturate(100%) invert(14%) sepia(47%) saturate(6165%) hue-rotate(221deg) brightness(85%) contrast(106%);
}
body > header > div > nav:nth-of-type(n+2) > menu > li > menu {/* -- 小項目 */
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  align-content: start;
  gap: min(calc(28 / 1536 * 100vw), 28px);
  width: min(calc(200 / 1536 * 100vw), 200px);
  margin: min(calc(27 / 1536 * 100vw), 27px) 0 0; padding: 0;
}
body > header > div > nav:nth-of-type(n+2) > menu > li > menu > li {
  width: 100%;
  box-sizing: border-box;
  position: relative;
  padding: 0 0 0 1em;
}
body > header > div > nav:nth-of-type(n+2) > menu > li > menu > li > a {
  display: block;
  width: fit-content;
  font-weight: 400;
  font-size: min(calc(14 / 1536 * 100vw), 14px); line-height: 1;
  letter-spacing: calc(100em / 1000);
  text-decoration: none;
  white-space: nowrap;
  color: hsl(0, 0%, 20%);
  transition: color 0.4s;
}
body > header > div > nav:nth-of-type(n+2) > menu > li > menu > li > a::before {
  content: '';
  display: block;
  width: min(calc(6 / 1536 * 100vw), 11px); height: min(calc(7 / 1536 * 100vw), 13px);
  position: absolute;
  inset: min(calc(50% - 7 / 2 /1536 * 100vw + 0.1em), calc(50% - 7px / 2 + 0.1em)) max(calc((-14 - 6) / 1536 * 100vw), calc(-14px - 6px)) auto auto;
  background: url('../image/common/header_03.svg') center / 100% no-repeat;
  transition: filter 0.4s;
}
body > header > div > nav:nth-of-type(n+2) > menu > li > menu > li > a[target="_blank"]::after {
  content: '';
  display: inline-block;
  width: min(calc(10 / 1536 * 100vw), 10px); height: min(calc(10 / 1536 * 100vw), 10px);
  margin: 0 0 0 min(calc(8 / 1536 * 100vw), 8px); padding: 0.1em 0 0;
  background: url('../image/common/ancher_01.svg') center bottom / 100% no-repeat;
  transition: filter;
}
body > header > div > nav:nth-of-type(n+2) > menu > li > menu > li > a:hover {
  color: hsl(222, 100%, 31%);
}
body > header > div > nav:nth-of-type(n+2) > menu > li > menu > li > a:hover::before {
  filter: brightness(0) saturate(100%) invert(14%) sepia(47%) saturate(6165%) hue-rotate(221deg) brightness(85%) contrast(106%);
}
body > header > div > nav:nth-of-type(n+2) > menu > li > menu > li > a[target="_blank"]:hover::after {
  filter: brightness(0) saturate(100%) invert(14%) sepia(47%) saturate(6165%) hue-rotate(221deg) brightness(85%) contrast(106%);
}


body > footer {
  padding: min(calc(55 / 1536 * 100vw), 55px) 0 min(calc(59 / 1536 * 100vw), 59px);
  border-top: none;
}

body > footer > menu:nth-of-type(1) {/* -- SNS */
  gap: min(calc(14 / 1536 * 100vw), 14px);
  width: min(calc(1200 / 1536 * 100vw), 1200px);
  margin: 0 auto;
}
body > footer > menu:nth-of-type(1) > li {
  height: min(calc(30 / 1536 * 100vw), 30px);
}

body > footer > menu:nth-of-type(2) {/* -- 規則/サイトマップ */
  gap: min(calc(21 / 1536 * 100vw), 21px);
  width: min(calc(1200 / 1536 * 100vw), 1200px);
  margin: min(calc(30 / 1536 * 100vw), 30px) auto 0;
}

body > footer > menu:nth-of-type(2) > li > a {
  font-size: min(calc(14 / 1536 * 100vw), 14px);
  transition: color 0.4s;
}
body > footer > menu:nth-of-type(2) > li > a:hover {
  color: hsl(222, 100%, 31%);
}

body > footer > small {
  width: min(calc(1200 / 1536 * 100vw), 1200px);
  margin: min(calc(22 / 1536 * 100vw), 22px) auto 0;
  font-size: min(calc(12 / 1536 * 100vw), 12px);
}


#totop > a {
  inset: auto min(calc(64 / 1536 * 100vw), 64px) min(calc(64 / 1536 * 100vw), 64px) auto;
  width: min(calc(32 / 1536 * 100vw), 32px); height: min(calc(32 / 1536 * 100vw), 32px);
}
#totop > a > img {
  width: min(calc(32 / 1536 * 100vw), 32px);
  transition: transform 0.4s;
}
#totop > a:hover > img {
  transform: translate(0, -50%);
}

}/* -- /@media (min-width:768px), print */



/* ########## 旧asset (/new_assets/css/custom.min.css) 対策 ########## */
body {/* -- フォントを Noto Sans に 統一 */
  font-family: 'Noto Sans JP', sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

ol.list-mark-alpha, ol.list-mark-decimal, ol.listDecimal, ol.number, ol.number2, ul.list-mark-circle, ul.list-mark-line, ul.listG {
  font-weight: 400;
}

.sitemap ol.list-mark-alpha, .sitemap ol.list-mark-decimal, .sitemap ol.listDecimal, .sitemap ol.number, .sitemap ol.number2, .sitemap ul.list-mark-circle, .sitemap ul.list-mark-line, .sitemap ul.listG {/* -- リストのフォントが細い、フォントサイズが小さい */
  font-weight: 800;
}

p.caution, p.description, p.paragraph, p.textList {/* -- フォントが細い */
  font-weight: 400;
}

.wysiwyg p {/* -- フォントが細い */
  font-weight: 400;
}

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

#container {/* -- SPのメインDIVに position:absolute が掛かっていてレイアウトか崩れる */
  position: static;
  top: auto;
  padding-top: 0;
}

.sitemap ol.list-mark-alpha, .sitemap ol.list-mark-decimal, .sitemap ol.listDecimal, .sitemap ol.number, .sitemap ol.number2, .sitemap ul.list-mark-circle, .sitemap ul.list-mark-line, .sitemap ul.listG {/* -- リストのフォントが細い、フォントサイズが小さい */
  font-weight: 600;
  font-size: 3rem;
}

.sitemap a.titleProductList, .sitemap h1.titleProductList, .sitemap h2.titleProductList, .sitemap h3.titleProductList, .sitemap h4.titleProductList, .sitemap h5.titleProductList, .sitemap h6.titleProductList {/* -- フォントサイズが小さい */
  font-weight: 600;
  font-size: 4.2rem;
}

#contents.sitemap .sitemapContainer .sitemapItems-02 {
  padding: 0;
}

#contents.sitemap .sitemapContainer .sitemapItems-02 .sitemapItem-02 a.sitemapAnchor-02 {/* -- フォントサイズが小さい、下線を消す */
  font-weight: 600;
  font-size: 3rem;
  border-bottom: none;
}

.sitemap ul.list-mark-line > li::before {/* -- リストの線を消す */
  content: normal;
}

}

@media print,screen and (min-width:750px) {

h1.titleBlock>.titleBlock_wrapper span.titleLabel,
h2.titleBlock>.titleBlock_wrapper span.titleLabel,
h3.titleBlock>.titleBlock_wrapper span.titleLabel,
h4.titleBlock>.titleBlock_wrapper span.titleLabel,
h5.titleBlock>.titleBlock_wrapper span.titleLabel,
h6.titleBlock>.titleBlock_wrapper span.titleLabel {/* -- PCのタイトルのみ font-weight:200 が掛かっている、今までは NotoSansJP の 200 を読み込んでいなかったので気づかれなかった... */
  font-weight: 400;
}

.contentMain_categoryTitle .contentMain_categoryTitleWrapper .contentMain_categoryTitleLabel {/* -- タイトル部分のフォントが細い */
  font-weight: 400;
}
 
.contentSub_categoryTitle {/* -- 右側メニューが新ヘッダにめり込むので */
  padding-top: 160px;
}

#contents.sitemap .sitemapContainer .sitemapItems-02 .sitemapItem-02 a.sitemapAnchor-02 {/* -- 下線を消す */
  border-bottom: none;
}

.sitemap ul.list-mark-line > li::before {/* -- リストの線を消す */
  content: normal;
}

}