@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500;700;900&family=Noto+Serif+JP:wght@600&family=Roboto:wght@300;400;500;700&display=swap');

@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W3);
  font-weight: 400;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W4);
  font-weight: 500;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W5);
  font-weight: 600;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W6);
  font-weight: 700;
}
@font-face {
  font-family: "Hiragino Sans";
  src: local(HiraginoSans-W7);
  font-weight: 800;
}

/*! destyle.css v4.0.0 | MIT License | https://github.com/nicolas-cusan/destyle.css */

/* Reset box-model and set borders */
/* ============================================ */

*,
::before,
::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

/* Document */
/* ============================================ */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 * 3. Remove gray overlay on links for iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -webkit-tap-highlight-color: transparent; /* 3*/
}

/* Sections */
/* ============================================ */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/* Vertical rhythm */
/* ============================================ */

p,
table,
blockquote,
address,
pre,
iframe,
form,
figure,
dl {
  margin: 0;
}

/* Headings */
/* ============================================ */

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

/* Lists (enumeration) */
/* ============================================ */

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

/* Lists (definition) */
/* ============================================ */

dt {
  font-weight: bold;
}

dd {
  margin-left: 0;
}

/* Grouping content */
/* ============================================ */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

address {
  font-style: inherit;
}

/* Text-level semantics */
/* ============================================ */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
  text-decoration: none;
  color: inherit;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: inherit; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Replaced content */
/* ============================================ */

/**
 * Prevent vertical alignment issues.
 */

svg,
img,
embed,
object,
iframe {
  vertical-align: bottom;
}

/* Forms */
/* ============================================ */

/**
 * Reset form fields to make them styleable.
 * 1. Make form elements stylable across systems iOS especially.
 * 2. Inherit text-transform from parent.
 */

button,
input,
optgroup,
select,
textarea {
  -webkit-appearance: none; /* 1 */
  appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit; /* 2 */
}

/**
 * Correct cursors for clickable elements.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  cursor: pointer;
}

button:disabled,
[type="button"]:disabled,
[type="reset"]:disabled,
[type="submit"]:disabled {
  cursor: default;
}

/**
 * Improve outlines for Firefox and unify style with input elements & buttons.
 */

:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

/**
 * Remove padding
 */

option {
  padding: 0;
}

/**
 * Reset to invisible
 */

fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}

legend {
  padding: 0;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * Correct the outline style in Safari.
 */

[type="search"] {
  outline-offset: -2px; /* 1 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Fix font inheritance.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/**
 * Fix appearance for Firefox
 */
[type="number"] {
  -moz-appearance: textfield;
}

/**
 * Clickable labels
 */

label[for] {
  cursor: pointer;
}

/* Interactive */
/* ============================================ */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/*
 * Remove outline for editable content.
 */

[contenteditable]:focus {
  outline: auto;
}

/* Tables */
/* ============================================ */

/**
1. Correct table border color inheritance in all Chrome and Safari.
*/

table {
  border-color: inherit; /* 1 */
  border-collapse: collapse;
  background-clip: padding-box;
}

caption {
  text-align: left;
}

td,
th {
  vertical-align: top;
  padding: 0;
  background-clip: padding-box;
}

th {
  text-align: left;
  font-weight: bold;
}

/* Color */
/* ============================================ */

:root {
  --key-color: #004ea2;
  --base-font: #1B1B1B;
  --title-black:#2D2D2D;
  --arrow-line:#B6B6B6;
  --bak-col01:#eaeef4;
  --bak-col02: #f5f5f5;
}

/* Common */
/* ============================================ */
html {
	font-size: 10px;
}
body {
	font-family: 'arial','Hiragino Kaku Gothic Pro','ヒラギノ角ゴ Pro W3','メイリオ',Meiryo,'ＭＳ Ｐゴシック',sans-serif;
	color: var(--base-font);
	font-size: 1.2rem;
	-webkit-text-size-adjust: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-smooth: always;
	font-weight: 400;
	background-color: #fff;
}

.scale {
    width: 100%;
    height: auto;
}

.inlblk {
    display: inline-block;
}
.none {
    display: none;
}
a {
    color: #0152ff;
}
a:hover {
    color: #3474FF;
}
a:active {
    color: #003EC4;
}
a:visited {
    color: #470066;
}

.imgbtn a
{
    display: block;
}

#header a:hover,
#footer a:hover,
#cookie-consent a:hover,
.imgbtn a:hover
{
    opacity: 0.8;
}
#header a:active,
#footer a:active,
#cookie-consent a:active,
.imgbtn a:active
{
    opacity: 0.9;
}

/* Font */
/* ============================================ */

.jpr {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 400;
}
.jpm {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 500;
}
.jpb {
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: 700;
}
.jps-sb {
    font-family: 'Noto Serif JP', serif;
    font-weight: 600;
}
.engl {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
}
.engr {
    font-family: 'Roboto', sans-serif;
    font-weight: 400;
}
.engm {
    font-family: 'Roboto', sans-serif;
    font-weight: 500;
}
.engb {
    font-family: 'Roboto', sans-serif;
    font-weight: 700;
}
.page-cat {
    font-size: 1.6rem;
    margin-bottom: 9px;
    padding-left: 0.1em;
}
.large-title {
    font-size: clamp(3rem, 5vw, 7rem);
    color: var(--title-black);
}
.large-01 {
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    line-height: 1.6em;
    margin-bottom: 2em;
}
.title-01 {
    font-size: 3rem;
    color: var(--title-black);
    letter-spacing: 0.05em;
}
.title-02 {
    font-size: 2.1rem;
    color: var(--base-font);
    letter-spacing: 0.1em;
}
.title-03 {
    font-size: 1.6rem;
    color: var(--key-color);
    letter-spacing: 0.01em;
}

.title-03a {
    font-size: 2rem;
    color: var(--key-color);
    letter-spacing: 0.1em;
}

.title-04 {
    font-size: 1.8rem;
    color: var(--base-font);
    letter-spacing: 0.1em;
}
.title-05 {
    font-size: 1.6rem;
    color: var(--base-font);
    letter-spacing: 0.1em;
}
.title-06 {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.3em;
    color: var(--base-font);
}
.title-07 {
    font-size: 1.6rem;
    text-decoration: underline;
    color: var(--base-font);
    margin: 1em 0;
}
.title-08 {
    font-size: 2.6rem;
    line-height: 1.3em;
    color: var(--base-font);
    letter-spacing: 0.1em;
}
.title-09 {
    font-size: 2.4rem;
    color: var(--base-font);
    letter-spacing: 0.1em;
}
.title-10 {
    font-size: 2rem;
    color: var(--key-color);
    letter-spacing: 0.1em;
}
.title-11 {
    font-size: 1.8rem;
    color: var(--base-font);
    letter-spacing: 0.01em;
}
.title-12 {
    font-size: 1.8rem;
    color: var(--key-color);
    letter-spacing: 0.01em;
}
.pos-center {
    text-align: center;
}
.pos-right {
    text-align: right;
}
.std p,
p.std
{
    font-size: 1.6rem;
    line-height: 1.875;
    margin: 1em 0;
}
.std ul,
.std ol,
.std dl
{
    font-size: 1.6rem;
    line-height: 1.875;
    margin: 2em 0;
}
.std ol.narrow-01
{
    line-height: 1.6;
    margin: 1em;
}
.std li {
    margin: 1em 0 1em 1.4em;
}
.std ul.narrow {
    margin: 1em 0;
}
.std ul.narrow li {
    margin: 0.2em 0 0.2em 1.4em;
}
.std ul {
    list-style-type: disc;
}
.std ol {
    list-style-type: decimal;
}
.std .conclusion-word {
    margin-top: 2.25em;
    font-size: 1.6rem;
    text-align: right;
}
.std dt {
    font-weight: 700;
}
.std dd {
    margin-bottom: 2em;
}
ul.arrow01 {
    line-height: 1.6;
    margin: 2em 1em;
}
ul.arrow01 li {
    list-style: none;
    position: relative;
}
ul.arrow01 li::before {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    background: url("../img/common/arrow_icon01.svg") no-repeat;
    background-size: cover;
    position: absolute;
    top: 0.2em;
    left: -20px;
}
.small-font,
p.small-font
{
    font-size: 1.4rem;
}
/* Common Button */
/* ============================================ */

.more-btn01 {
    font-size: 1.6rem;
    margin-left: 50px;
}
.more-btn01 a {
    display: block;
    position: relative;
    color: var(--base-font);
    padding-right: 21px;
}
.more-btn01 a:hover,
#topicpath a:hover,
.contents-menu-wrape .menu-item .cat-menu li a:hover,
#header .menu .megam-box .cat-box h3 a:hover
{
    opacity: 0.8;
}
.more-btn01 a:active,
#topicpath a:active,
.contents-menu-wrape .menu-item .cat-menu li a:active,
#header .menu .megam-box .cat-box h3 a:active
{
    opacity: 0.9;
}
.more-btn01 a::before,
.more-btn01 a::after
{
    display: block;
    content: "";
    position: absolute;
}
.more-btn01 a::before {
    width: 17px;
    height: 17px;
    background-color: var(--key-color);
    border-radius: 50%;
    top: 2px;
    right: 0;
    
}
.more-btn01 a::after {
    width: 6px;
    height: 6px;
    border-top: 1px solid #fff;
    border-right: 1px solid #fff;
    top: 7px;
    right: 7px;
    transform: rotate(45deg);
}

/* Base Fram */
/* ============================================ */
#wrapper {
    width: 100%;
}
#header {
    width: 100%;
    height: 92px;
    display: flex;
    position: relative;
    border-bottom: 1px solid #dcdcdc;
}
.toppage #header {
    border-bottom: none;
}
#header .header-l {
    width: 254px;
    flex-basis: 254px;
    margin-left: 30px;
    padding-top: 35px;
}
#header .header-r {
    width: calc(100% - 363px);
    flex-basis: calc(100% - 363px);
    margin-left: 79px;
}

#header a {
    display: block;
    color: var(--title-black);
}

#header .comnav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 11px 30px 27px 0;
    color: var(--title-black);
    font-size: 1.4rem;
}

#header .comnav .goeng,
#header .comnav .gocontact,
#mbmenu-box .mbmenu-header .lang-btn .goeng
{
    position: relative;
}
#header .comnav .goeng
{
    padding-left: 18px;
    margin-right: 16px;
}
#mbmenu-box .mbmenu-header .lang-btn .goeng {
    padding-left: 20px;
}
#header .comnav .goeng::before,
#mbmenu-box .mbmenu-header .lang-btn .goeng::before
{
    position: absolute;
    top:0;
    left: 0;
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    background: url("../img/common/lang_icon.svg") no-repeat;
    background-size: cover;
}
#mbmenu-box .mbmenu-header .lang-btn .goeng::before {
    background: url("../img/common/lang_w_icon.svg") no-repeat;
}
#header .comnav .gocontact {
    padding-left: 23px;
    margin-right: 21px;
}
#header .comnav .gocontact::before {
    position: absolute;
    top: 2px;
    left: 0;
    content: "";
    display: block;
    width: 20px;
    height: 13px;
    background: url("../img/common/mail_icon.svg") no-repeat;
    background-size: cover;
}
#header #search {
    position: relative;
    width: 18px;
    flex-basis: 18px;
    height: 17px;
    cursor: pointer;
}
#header #search-box {
    display: none;
    position: absolute;
    width: 350px;
    right: 23px;
    bottom: 10px;
    z-index: 10000;
}
#header #mb-menu {
    display: none;
}
#header .gsc-control-cse {
    background-color: #D6D6D6;
    padding: 9px 7px 6px;
    border-radius: 6px;
}
#header .menu {
    width: 100%;
}
#header .menu > nav > ul {
    display: flex;
    color: var(--title-black);
}
#header .menu li {
    margin-right: 32px;
    font-size: 1.6rem;
}
#header .menu li:last-of-type {
    margin-right: 0;
}
#header .menu li.mega > a > span.arrow-icon {
    display: block;
    position: relative;
    padding-right: 15px;
}
#header .menu li.mega > a > span.arrow-icon::before {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    border-bottom: 1px solid var(--arrow-line);
    border-right: 1px solid var(--arrow-line);
    transform: rotate(45deg);
    position: absolute;
    top: 3.5px;
    right: 3px;
}
#header .menu li.mega > a {
    padding-bottom: 10px;
}

#header .menu .megam-box {
    display: none;
    position: absolute;
    z-index: 8888;
    width: 100%;
    left: 0;
    top: 80px;
    background-color: var(--key-color);
}
#header .menu .megam-box .mega-menu {
    position: relative;
}
#header .menu .megam-box .mega-menu-inn {
    display: flex;
    padding: 60px 37px 90px;
}
#header .menu .megam-box .cat-box {
    width: 241px;
    flex-basis: 241px;
    margin-top: 34px;
}
#header .menu .megam-box #corp-menu .cat-icon {
    width: 59.5px;
    margin: 0 auto;
}
#header .menu .megam-box #susti-menu .susti-icon,
#header .menu .megam-box #ir-menu .ir-icon
{
    width: 60px;
    margin: 0 auto;
}
#header .menu .megam-box #rd-menu .rd-icon
{
    width: 51px;
    margin: 0 auto;
}
#header .menu .megam-box .cat-box h3 {
    color: white;
    text-align: center;
    margin-top: 21px;
    font-size: 2.4rem;
    letter-spacing: 0.075em;
}
#header .menu .megam-box .cat-box h3 a {
    color: white;
}
#header .menu .megam-box .menu-list {
    width: calc(100% - 241px);
    flex-basis: calc(100% - 241px);
    border-left: 1px solid white;
    display: flex;
    padding-left: 80px;
}
#header .menu .megam-box .menu-box-two {
    margin-right: 136px;
    min-width: 240px;
}
#header .menu .megam-box .menu-box-three {
    margin-right: 68px;
    min-width: 180px;
}
#header .menu .megam-box .menu-box-three:last-of-type {
    margin-right: 0;
}
#header .menu .megam-box .menu-list h3.menu-cat {
    font-size: 1.8rem;
    line-height: 1.6em;
    color: #ccc;
    border-bottom: 1px solid #ccc;
}
#header .menu .megam-box .menu-list ul {
    color: white;
}
#header .menu .megam-box .menu-list li {
    font-size: 1.8rem;
    line-height: 1.4em;
    margin: 0.8em 0;
}
#header .menu .megam-box .menu-list li:first-child {
    margin: 0 0 0.8em;
}
#header .menu .megam-box .menu-list ul.menu-cat-lists li {
    font-size: 1.6rem;
    margin: 0.8em 0.5em;
}

#header .menu .megam-box .menu-list li a {
    display: inline-block;
    color: white;
}

#header .menu .megam-box .close-btn {
    width: 30px;
    height: 30px;
    cursor: pointer;
    position: absolute;
    top: 16px;
    right: 16px;
}
#mbmenu-box {
    display: none;
    z-index: 10000;
    position: fixed;
    width: 100vw;
    height: 100vh;
    background-color: var(--key-color);
    padding: 10px;
}
#mbmenu-box a {
    color: white;
}
#mbmenu-box .mbmenu-box-inn {
    position: relative;
    width: 100%;
    min-height: 100vh;
    margin: 0 auto;
    overflow-y: auto;
}
#mbmenu-box .mbmenu-header,
#mbmenu-box .mbmenu-footer
{
    display: flex;
    justify-content: space-between;
    align-items: center;
}
#mbmenu-box .mbmenu-header {
    padding-bottom: 12px;
    border-bottom: 1px solid #537a91;
}

#mbmenu-box .mbmenu-header .lang-btn {
    font-size: 1.5rem;
    margin-left: 10px;
}
#mbmenu-box .mbmenu-header .close-btn {
    cursor: pointer;
    width: 23px;
    flex-basis: 23px;
    height: 21px;
}
#mbmenu-box .mbmenu-body {
    min-height: calc(100vh - 143px);
}
#mbmenu-box .menu-list li {
    border-bottom: 1px solid #537a91;
}
#mbmenu-box .menu-list li a {
    display: block;
    font-size: 1.8rem;
    line-height: 1.5rem;
    padding: 11px 9px;
}
#mbmenu-box .home-btn-box,
#mbmenu-box .contact-btn-box
{
    width: calc(50% - 12px);
    border: 1px solid #537a91;
    height: 89px;
    font-size: 1.5rem;
}

#mbmenu-box .home-btn-box a,
#mbmenu-box .contact-btn-box a
{
    display: block;
    width: 100%;
    text-align: center;
}
#mbmenu-box .home-btn-box a {
    padding-top: 16px;
}
#mbmenu-box .contact-btn-box a {
    padding-top: 18px;
}
#mbmenu-box .home-icon,
#mbmenu-box .contact-icon
{
    width: 36px;
    height: 28px;
    margin: 0 auto;
}
#mbmenu-box .contact-icon {
    height: 23px;
}
#mbmenu-box .home-btn-box p
{
    margin-top: 16px;
}
#mbmenu-box .contact-btn-box p
{
    margin-top: 17px;
}
/* footer */
#footer {
    width: 100%;
    background-color: var(--key-color);
}

#footer-inn {
    width: 1024px;
    margin: 0 auto;
    padding: 45px 0 10px;
    color: white;
}
#footer-inn a {
    color: white;
}
#footer-inn .footer-nav {
    display: flex;
    margin-bottom: 160px;
}
#footer-inn .footer-nav .footer-logo {
    width: 160px;
    flex-basis: 160px;
}
#footer-inn .footer-nav .footer-menu {
    width: calc(100% - 231px);
    margin-left: 71px;
    padding-top: 6px;
}
#footer-inn .footer-nav .footer-menu .main,
#footer-inn .footer-nav .footer-menu .sub
{
    display: flex;
    justify-content: space-between;
}
#footer-inn .footer-nav .footer-menu .main {
    font-size: 1.6rem;
    margin-bottom: 48px;
}
#footer-inn .footer-nav .footer-menu .sub {
    font-size: 1.4rem;
}
#footer-inn .footer-license {
    display: flex;
    justify-content: space-between;
}
#footer-inn .footer-license.nomenu {
    display: flex;
    justify-content: flex-end;
}
/* contents */
#contents {
    width: 100%;
    min-height: calc(100vh - 409px);
}
#contents.nomenu {
    min-height: calc(100vh - 343px);
}
#topicpath {
    width: 100%;
    margin: 6px auto 0;
    line-height: 1.3em;
}
#topicpath a {
    color: var(--base-font);
}
.com-box-01 {
    width: 1024px;
    margin: 0 auto;
}
.com-box-02 {
    width: 100%;
    margin: 0 auto 53px;
}
.com-box-02 h3 {
    margin-bottom: 20px;
}
.com-box-03 {
    width: 100%;
    margin: 74px auto;
}
.com-box-03 h2 {
    width: 100%;
    margin-bottom: 44px;
}

.com-box-03 span{
  text-decoration:
    underline wavy #ff0000;
}

.com-box-04 {
    width: 100%;
    margin: -50px auto 30px;
}
.com-box-05 {
    width: 100%;
    margin: 39px auto;
}
.com-box-06 {
    width: 100%;
    padding: 95px 0;
}
.com-box-07 {
    width: 100%;
    margin: 71px 0;
}
.spec-box-01 {
    width: 100%;
    margin: 74px auto;
}
.gray-box {
    padding: 38px 28px;
    background-color: #f5f5f5;
}

.light-blue-box {
    padding: 38px 28px;
    background-color: #e9f6fc;
}

.figbox-01 {
    width: 1000px;
    margin: 36px auto;
}
.dl-01,
.dl-02
{
    margin-top: 69px;
}
.dl-01 dt,
.dl-02 dt
{
    font-size: 1.6rem;
    font-weight: 700;
}
.dl-01 dd,
.dl-02 dd
{
    font-size: 1.6rem;
    line-height: 1.875;
    margin: 6px 0 58px;
}
.dl-02 dd {
    margin: 6px 0 35px 1em;
}
.page-title {
    width: 100%;
    margin: 50px auto 0;
}
.index-image {
    width: 100%;
    margin: 74px auto 55px;
}
.contents-menu-wrape {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 160px;
}
.contents-menu-wrape.cat-type03 {
    margin: 35px auto 0;
}
.contents-menu-wrape .menu-item {
    width: 320px;
    flex-basis: 320px;
    margin-right: 32px;
    margin-bottom: 32px;
}
.contents-menu-wrape .menu-item:nth-of-type(3n) {
    margin-right: 0;
}
.contents-menu-wrape .menu-item > a,
.contents-menu-wrape .menu-item .cat-item
{
    display: block;
    width: 100%;
    background-color: white;
    position: relative;
    border: 1px solid #757575;
    height: 210px;
}
.contents-menu-wrape .menu-item > a:hover {
    background-color: #F1F1F1;
}
.contents-menu-wrape .menu-item > a:active {
    background-color: #FBFBFB;
}
.contents-menu-wrape .menu-item h3 {
    font-size: 1.8rem;
    line-height: 1.3em;
    color: var(--key-color);
    position: absolute;
    margin: auto;
    left: 0;
    right: 0;
    bottom: 36px;
    text-align: center;
}
.contents-menu-wrape .menu-item h3.two-line {
    bottom: 18px;
}
.contents-menu-wrape .menu-item .cat-menu {
    margin-top: 35px;
}
.contents-menu-wrape .menu-item .cat-menu li {
    font-size: 1.6rem;
    line-height: 1.3em;
    margin-bottom: 18px;
}
.contents-menu-wrape .menu-item .cat-menu li a {
    color: var(--base-color);
    display: block;
    position: relative;
    padding-left: 15px;
}
.contents-menu-wrape .menu-item .cat-menu li a::before {
    content:"";
    display: block;
    width: 7px;
    height: 7px;
    border-top: 1px solid #8b8b8b;
    border-right: 1px solid #8b8b8b;
    transform: rotate(45deg);
    position: absolute;
    left: 0;
    top: 7px;
}
.youtube-box {
    width: 100%;
    aspect-ratio: 16 / 9;
}
.youtube-box iframe {
    width: 100%;
    height: 100%;
}
.mgb--01 {
    margin-bottom: 136px;
}
.over-scrolling {
    margin-top: 38px;
}
.spec-box-01 .over-scrolling {
    margin-top: 7px;
}
.spec-box-01 h2 {
    margin-bottom: 7px;
}
.anchor-box {
    margin: 64px auto 56px;
    border-bottom: 1px solid #dcdcdc;
    padding-bottom: 3px;
}
.anchor-box ul {
    display: flex;
    flex-wrap: wrap;
    font-size: 1.6rem;
}
.anchor-box li {
    margin: 11px 31px 11px 0;
}
.anchor-box li:last-of-type {
    margin: 11px 0;
}
.anchor-box li a {
    display: block;
    position: relative;
    padding-left: 20px;
}
.anchor-box li a::before {
    content: "";
    display: block;
    width: 16px;
    height: 16px;
    background: url("../img/common/anchor_arrow.svg") no-repeat;
    background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
}
.outer-link {
    display: inline-block;
    border: 1px solid #ccc;
    margin-left: 12px;
    font-size: 1.6rem;
}
.outer-link a {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    background-color: white;
    color: #0152ff;
    padding: 5px 31px 5px 12px;
}
.outer-link a:hover {
    background-color: #F1F1F1;
}
.outer-link a:active {
    background-color: #FBFBFB;
}
.outer-link a::after {
    content: "";
    display: block;
    width: 12px;
    height: 12px;
    background: url("../img/common/outerlink_icon.svg") no-repeat;
    background-size: cover;
    position: absolute;
    margin: auto;
    top: 0;
    bottom: 0;
    right: 12px;
}
a.txt-outer-link {
    display: inline-block;
    position: relative;
    padding-right: 18px;
}

a.txt-outer-link::after {
    content: "";
    display: block;
    width: 13px;
    height: 13px;
    background: url("../img/common/outerlink_icon.svg") no-repeat;
    background-size: cover;
    position: absolute;
    top: 0.4em;
    right: 2px;
}
.intend-01 {
    margin: 0 0 3em 3em;
}
.docbox-01 {
    background-color: #f5f5f5;
    padding: 23px 30px;
    margin: 40px auto;
}
.docbox-01 ul {
    margin: 0;
}
.docbox-01 li {
    margin: 0 0 1em 1.4em;
}
.docbox-01 li:last-of-type {
    margin: 0 0 0 1.4em;
}
/* Table */
table.three-columns-01,
table.three-columns-02,
table.two-columns-01,
table.spec-01,
table.spec-02,
table.sheet-01,
table.sheet-02
{
    width: 100%;
    border: 1px solid #ccc;
}

table.three-columns-01 th,
table.three-columns-01 td,
table.three-columns-02 th,
table.three-columns-02 td,
table.two-columns-01 th,
table.two-columns-01 td,
table.spec-01 th,
table.spec-01 td,
table.spec-02 th,
table.spec-02 td
{
    font-size: 1.6rem;
    line-height: 1.6em;
    font-weight: 400;
    border: 1px solid #ccc;
    padding: 18px 13px;
}

table.sheet-01 th,
table.sheet-01 td,
table.sheet-02 th,
table.sheet-02 td
{
    font-size: 1.6rem;
    line-height: 1.3em;
    font-weight: 400;
    border: 1px solid #ccc;
    padding: 11px 5px;
}
table.sheet-01 td {
    text-align: right;
}
table.sheet-01 td.left {
    text-align: left;
}
table.sheet-01 th {
    font-weight: 700;
}
table.sheet-01 th.fix-01 {
    width: 220px;
}
table.sheet-01 .gray {
    background-color: #f2f2f2;
}
table.sheet-01 .center {
    text-align: center;
}
table.sheet-02 th {
    width: 30%;
}
table.sheet-02 td.thin {
    color:#999;
}


table.three-columns-01 th
{
    width: 240px;
}
table.three-columns-01 th.sma-01
{
    width: 150px;
}
table.three-columns-02 th,
table.spec-02 th
{
    background-color: #f5f5f5;
    padding: 5px;
    font-size: 1.4rem;
    text-align: center;
}
table.spec-02 th
{
    padding: 5px 13px;
}
table.three-columns-02 td
{
    padding: 9px;
    line-height: 1.3em;
}
table.spec-01 th,
table.spec-01 td,
table.spec-02 td
{
    padding: 12px;
    line-height: 1.3em;
}
table.spec-02 th {
    text-align: left;
}
table.spec-02.two th{
    width: 50%;
}
table.spec-02 th.name-row {
    width: 225px;
}
table.two-columns-01 th {
    width: 158px;
}
table.three-columns-01 td.mid {
    width: 140px;
}
table.spec-01 td.mid {
    width: 48%;
}
.table-footer-note-01 {
    font-size: 1.6rem;
    line-height: 1.4;
    text-align: right;
    margin-top: 0.5em;
}
.table-footer-note-02 {
    font-size: 1.6rem;
    line-height: 1.4;
    text-align: left;
    margin-top: 0.5em;
}
table.sheet-02 tr {
    background-color: #f5f5f5;
}
table.sheet-02 tr:nth-of-type(2n) {
    background-color: #fff;
}
ul.list-01 {
    width: 100%;
    border-top: 1px solid #ccc;
    margin-left: 2em;
}

ul.list-01 li {
    font-size: 1.6rem;
    line-height: 1.3em;
    font-weight: 400;
    border-bottom: 1px solid #ccc;
    padding: 14px 0;
}
#goTop {
    position: fixed;
    z-index: 9999;
    width: 40px;
    right: 20px;
    bottom: 20px;
}
#goTop > a {
    display: block;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: rgba(102,102,102,0.5);
    padding: 8px;
}
#goTop > a:hover {
    background-color: rgba(102,102,102,1.0);
}#goTop > a:active {
    background-color: rgba(102,102,102,0.5);
}
#goTop > a > span.arrow-icon {
    display: block;
    width: 24px;
    height: 24px;
}

/* Cookie */
#cookie-consent {
    width: 100%;
    position: fixed;
    z-index: 10000;
    bottom: 0;
    background-color: #181818;
    padding: 10px;
}
#cookie-consent a {
    color: #fff;
    text-decoration: underline;
}
#cookie-consent .box-inn {
    width: 1000px;
    margin: 0 auto;
    padding: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #fff;
    font-size: 1.4rem;
    line-height: 1.4em;
}
#cookie-consent .box-inn .note {
    flex-basis: calc(100% - 250px);
}
#cookie-consent .box-inn .btn-box {
    flex-basis: 200px;
    margin-left: 50px;
}
#cookie-consent .box-inn .btn-box button {
    font-family: inherit;
    border-radius: 0;
    text-transform: none;
    cursor: pointer;
    appearance: none;
    border-width: initial;
    border-style: none;
    border-color: initial;
    border-image: initial;
    background: none;
    padding: 0;
    text-align: center;
}
#cookie-consent .box-inn .btn-box button:hover {
    opacity: 0.75;
}
#cookie-consent .box-inn .btn-box button:active {
    opacity: 0.95;
}
#cookie-consent .box-inn .btn-box button.btn-agree {
    width: 100%;
    font-size: 1.5rem;
    border-radius: 3px;
    background-color: #A8C1FF;
    padding: 7px 0;
    color: #000;
    margin: 5px 0;
}
#cookie-consent .box-inn .btn-box button.btn-notagree {
    width: 100%;
    font-size: 1.5rem;
    border-radius: 3px;
    background: #F1F1F1;
    padding: 7px 0;
    color: #333;
    margin: 5px 0;
}
#cookie-consent .close-btn {
    position: absolute;
    width: 16px;
    height: 16px;
    cursor: pointer;
    top: 10px;
    right: 10px;
}

figcaption {
    font-size: 1.4rem;
    line-height: 1.3em;
    text-align: center;
    margin-top: 16px;
}
.related-link-01 {
    text-align: right;
    margin: 11px 0 21px;
}
.related-link-03 {
    margin: 35px 0;
}
a.related-link {
    font-size: 1.6rem;
    display: inline-block;
    position: relative;
    padding-right: 16px;
}
a.related-link::after {
    display: block;
    content: "";
    position: absolute;
    width: 9px;
    height: 9px;
    border-top: 1px solid var(--arrow-line);
    border-right: 1px solid var(--arrow-line);
    top: 3px;
    right: 0;
    transform: rotate(45deg);
}
/* Mobile adjust */

@media screen and (max-width:1280px) {
    #header .header-r {
        width: calc(100% - 299px);
        flex-basis: calc(100% - 299px);
        margin-left: 30px;
    }
    #header .header-l {
        margin-left: 15px;
    }
    #header .menu li {
        margin-right: 25px;
    }
    #header .menu .megam-box .menu-list {
        padding-left: 46px;
    }
    #header .menu .megam-box .menu-box-two {
        margin-right: 98px;
    }
    #header .menu .megam-box .menu-box-three {
        margin-right: 68px;
    }
    #header .menu .megam-box .mega-menu-inn {
        padding: 50px 60px 60px 20px;
    }
    #header .menu .megam-box .cat-box {
        width: 180px;
        flex-basis: 180px;
    }
    #header .menu .megam-box .menu-list {
        width: calc(100% - 180px);
        flex-basis: calc(100% - 180px);
    }
    #header .menu .megam-box .cat-box h3 {
        font-size: 2rem;
        letter-spacing: 0;
    }
    #header .menu .megam-box .menu-list h3.menu-cat {
        font-size: 1.6rem;
    }
    #header .menu .megam-box .menu-list li {
        font-size: 1.6rem;
    }
    #header .menu .megam-box .menu-list ul.menu-cat-lists li {
        font-size: 1.4rem;
    }
}
/* max-width 1280px */

@media screen and (max-width:1064px) {
    #footer-inn,
    .com-box-01
    {
        width: 96%;
    }
    .index-image {
        margin: 58px auto 36px;
    }
    .contents-menu-wrape {
        width: 672px;
        margin: 0 auto 160px;
    }
    .contents-menu-wrape .menu-item:nth-of-type(3n) {
        margin-right: 32px;
    }
    .contents-menu-wrape .menu-item:nth-of-type(2n) {
        margin-right: 0;
    }
}
/* max-width 1064px */

@media screen and (max-width:1024px) {
    #header {
        height: 45px;
    }
    #header .header-r .menu,
    #header .comnav .goeng,
    #header .comnav .gocontact
    {
        display: none;
    }
    #header .header-l {
        width: 194px;
        flex-basis: 194px;
        margin-left: 16px;
        padding-top: 14px;
    }
    #header .header-r {
        width: calc(100% - 210px);
        flex-basis: calc(100% - 210px);
        margin-left: 16px;
    }
    #header #search {
        width: 19px;
        flex-basis: 19px;
        height: 20px;
    }
    #header .comnav {
        padding: 10px 13px 0;
    }
    #header #search-box {
        width: 100vw;
        right: 0;
        bottom: 0;
        top: 40px;
    }
    #header .gsc-control-cse {
        border-radius: 0;
    }
    #header #mb-menu {
        display: block;
        width: 23px;
        height: 24px;
        cursor: pointer;
        margin-left: 16px;
    }
    #footer-inn {
        padding: 30px 0 10px;
    }
    #footer-inn .footer-nav {
        display: block;
        margin-bottom: 53px;
    }
    #footer-inn .footer-nav .footer-menu {
        width: 100%;
        margin-left: 0;
        padding-top: 0;
    }
    #footer-inn .footer-nav .footer-logo {
        width: 120px;
        flex-basis: 120px;
        margin: 0 auto 27px;
    }
    #footer-inn .footer-nav .footer-menu .main {
        display: none;
    }
    #footer-inn .footer-nav .footer-menu .sub {
        display: block;
        border-top: 1px solid #537a91;
    }
    #footer-inn .footer-nav .footer-menu .sub li {
        border-bottom: 1px solid #537a91;
        font-size: 1.3rem;
    }
    #footer-inn .footer-nav .footer-menu .sub li a {
        padding: 11px 0;
        display: block;
    }
    #footer-inn .footer-license {
        display: block;
        text-align: center;
    }
    #footer-inn .fsc-license {
        margin-bottom: 12px;
    }
    #contents {
        min-height: calc(100vh - 412px);
    }
    #cookie-consent .box-inn {
        width: 96%;
        display: block;
    }
    #cookie-consent .box-inn .note {
        flex-basis: 100%;
    }
    #cookie-consent .box-inn .btn-box {
        flex-basis: 100%;
        width: 250px;
        margin: 20px auto 0;
    }
    .figbox-01 {
        width: 100%;
        margin: 36px auto;
    }
}
/* max-width 1024px */

@media screen and (max-width:800px) { 
   #cookie-consent .box-inn .note {
        flex-basis: 100%;
    }
    #cookie-consent .box-inn .btn-box {
        flex-basis: 100%;
        width: 250px;
        margin: 20px auto 0;
    }
    .over-scrolling {
        position: relative;
    }
    .over-scrolling-inn {
        overflow-y: scroll;
    }
    .over-scrolling .ctrl-bar-right,
    .over-scrolling .ctrl-bar-left
    {
        display: block;
        width: 40px;
        height: 100%;
        background-image: linear-gradient(to right,transparent,rgba(85,85,85,.25));
        position: absolute;
        top: 0;
        right: 0;
        cursor: pointer;
    }
    .over-scrolling .ctrl-bar-left {
        display: none;
        background-image: linear-gradient(to left,transparent,rgba(85,85,85,.25));
        left: 0;
        right: auto;
    }
    .over-scrolling .ctrl-bar-right::after,
    .over-scrolling .ctrl-bar-left::after
    {
        content: "";
        display: block;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 18px 0 18px 12px;
        border-color: transparent transparent transparent #134d8a;
        position: absolute;
        top: 30%;
        right: 3px;
        z-index: 50;
    }
    .over-scrolling .ctrl-bar-left::after {
        border-width: 18px 12px 18px 0;
        border-color: transparent #134d8a transparent transparent;
        left: 1px;
        right: auto;
    }
    .over-scrolling-inn > table {
        width: 900px;
    }
}
/* max-width 800px */

@media screen and (max-width:705px) {
    .contents-menu-wrape {
        width: 320px;
    }
    .contents-menu-wrape .menu-item {
        margin-right: 0;
    }
    .contents-menu-wrape.cat-type01,
    .contents-menu-wrape.cat-type03
    {
        width: 100%;
    }
    .contents-menu-wrape.cat-type01 .menu-item,
    .contents-menu-wrape.cat-type03 .menu-item
    {
        width: 48%;
        flex-basis: 48%;
        margin-right: 2%;
    }
    .contents-menu-wrape.cat-type01 .menu-item > a,
    .contents-menu-wrape.cat-type01 .menu-item .cat-item,
    .contents-menu-wrape.cat-type03 .menu-item > a,
    .contents-menu-wrape.cat-type03 .menu-item .cat-item
    {
        height: 210px;
    }
    .contents-menu-wrape.cat-type02 .menu-item > a,
    .contents-menu-wrape.cat-type02 .menu-item .cat-item
    {
        height: 110px;
    }
    .contents-menu-wrape.cat-type02 .menu-item:nth-of-type(3n) {
        margin-right: 0;
    }
    .contents-menu-wrape.cat-type02 .menu-item h3 {
        font-size: 1.5rem;
        bottom: 15px;
    }
    .mgb--01 {
        margin-bottom: 68px;
    }
    .over-scrolling {
        margin-top: 19px;
    }
    table.two-columns-01 th,
    table.two-columns-01 td
    {
        display: block;
        width: 100%;
        padding: 12px 10px;
        border-bottom: none;
        border-left: none;
        border-right: none;
    }
    table.two-columns-01 th {
        font-weight: 700;
    }
    table.two-columns-01 tr:first-of-type > th {
        border-top: none;
    }
    table.two-columns-01 td {
        font-size: 1.4rem;
    }
}
/* max-width 705px */

@media screen and (max-width:520px) {
    .title-01,
    .title-08,
    .title-09
    {
        font-size: 2rem;
        letter-spacing: 0;
    }
    .title-02,
    .title-10
    {
        font-size: 1.8rem;
        letter-spacing: 0;
    }
    .title-03,
    .title-06,
    .title-07
    {
        font-size: 1.4rem;
        letter-spacing: 0;
    }
    .title-11,
    .title-12
    {
        font-size: 1.6rem;
        letter-spacing: 0;
    }
    .small-font {
        font-size: 1.3rem;
    }
    .more-btn01 {
        font-size: 1.2rem;
        margin-left: 20px;
    }
    .page-cat {
        padding-left: 0;
    }
    .page-title {
        margin: 25px auto 0;
    }
    .index-image {
        margin: 25px auto;
    }
    .contents-menu-wrape.cat-type01 .menu-item > a,
    .contents-menu-wrape.cat-type03 .menu-item > a
    {
        height: 170px;
    }
    .contents-menu-wrape.cat-type01 .menu-item h3,
    .contents-menu-wrape.cat-type03 .menu-item h3
    {
        font-size: 1.5rem;
        bottom: 20px;
    }
    .contents-menu-wrape {
        margin: 0 auto 80px;
    }
    .contents-menu-wrape .menu-item {
        margin-bottom: 20px;
    }
    .more-btn01 a::before {
        top: -2px; 
    }
    .more-btn01 a::after {
        top: 3px;
    }
    table.three-columns-01 th,
    table.three-columns-01 td,
    table.spec-01 th,
    table.spec-01 td,
    a.related-link,
    table.spec-02 td,
    table.sheet-01 th,
    table.sheet-01 td,
    table.sheet-02 th,
    table.sheet-02 td
    {
        font-size: 1.4rem;
    }
    table.spec-02 th {
        font-size: 1.2rem;
    }
    table.three-columns-01 th,
    table.sheet-01 th.fix-01
    {
        width: 200px;
    }
    table.three-columns-01 td.mid
    {
        width: 120px;
    }
    table.spec-01 th {
        width: 150px;
    }
    table.sheet-02 th,
    table.sheet-02 td
    {
        display: block;
        width: 100%;
        border-bottom: none;
        border-left: none;
        border-right: none;
    }
    table.sheet-02 th {
        padding-bottom: 7px;
    }
    table.sheet-02 tr:first-of-type > th {
        border-top: none;
    }
    table.sheet-02 td {
        border-top: none;
        padding-top: 0;
    }
    .over-scrolling-inn > table {
        width: 710px;
    }
    .table-footer-note-01 {
        font-size: 1.4rem;
        text-align: left;
    }
    .table-footer-note-02 {
        font-size: 1.4rem;
        text-align: left;
    }
    .std p,
    p.std,
    .std dl,
    .std ul,
    .std ol,
    .std .conclusion-word,
    .dl-01 dt,
    .dl-01 dd,
    .dl-02 dt,
    .dl-02 dd,
    table.two-columns-01 th
    {
        font-size: 1.4rem;
    }
    .dl-01,
    .dl-02
    {
        margin-top: 34px;
    }
    .dl-01 dd {
        margin: 6px 0 29px;
    }
    .dl-01 dd {
        margin: 6px 0 18px 1em;
    }
    .docbox-01 {
        padding: 11px 15px;
        margin: 20px auto;
    }
    .com-box-02 {
        margin: 0 auto 27px;
    }
    .com-box-02 h3 {
        margin-bottom: 10px;
    }
    .com-box-03 {
        margin: 37px auto;
    }
    .com-box-03 h2 {
        margin-bottom: 22px;
    }
    .com-box-04 {
        margin: -50px auto 50px;
    }
    .com-box-05 {
        margin: 20px auto;
    }
    .com-box-07 {
        margin: 35px auto;
    }
    .light-blue-box {
        padding: 18px;
    }
    .intend-01 {
        margin: 0 0 2em 3em;
    }
    .anchor-box {
        margin: 32px auto 28px;
    }
    .anchor-box li {
        margin: 5px 18px 5px 0;
    }
    .anchor-box li:last-of-type {
        margin: 5px 0;
    }
    a.related-link::after {
        top: 3px;
    }
    ul.arrow01 {
        margin: 1em;
    }
    ul.arrow01 li::before {
        width: 14px;
        height: 14px;
        left: -18px;
    }
    .com-box-06 {
        padding: 47px 0;
    }
    .spec-box-01 {
        margin: 37px auto;
    }
    .anchor-box ul {
        font-size: 1.4rem;
        line-height: 1.3em;
    }
    ul.list-01 {
        margin-left: 0;
    }
    ul.list-01 li {
        font-size: 1.4rem;
    }
   
}
/* max-width 520px */

