@charset "UTF-8";

/*
--------------------------------
	variables
--------------------------------
*/
/* ---- sizes ---- */
/* ---- colors ---- */
/* ---- border radius ---- */
/*
--------------------------------
	mixins
--------------------------------
*/
/* ---- media query ---- */
/* ---- drop shadow ---- */
/* ---- language ---- */
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
hr,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    vertical-align: baseline;
    background: transparent;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
    margin: 0;
}


body {
    -webkit-text-size-adjust: 100%;
    font-family: "seiwa-do-l", sans-serif;
    /* for iOS, Android */
}

li {
    list-style: none;
}

a,
button {
    -webkit-tap-highlight-color: transparent;
    /* for iOS, Android */
}

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

table {
    border-collapse: collapse;
    border-spacing: 0;
}

caption,
th {
    text-align: left;
}

button {
    padding: 0;
    border-style: none;
    border-radius: 0;
    background-color: transparent;
    cursor: pointer;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    line-height: 1;
}

input,
select,
textarea {
    padding: 0;
    border-style: none;
    border-radius: 0;
    background-color: transparent;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    line-height: 1;
}

strong,
em,
b {
    font-weight: 700;
    font-style: normal;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}



html {
    font-size: 62.5%;
}

body {
    font-size: 1.6rem;
    font-weight: 400;
    font-feature-settings: "palt";
    letter-spacing: 0.06em;
    line-height: 1;
}

body:lang(en) {
    letter-spacing: 0.02em;
    word-break: break-word;
}

button,
input,
select,
textarea {
    font-size: 100%;
}



@media screen and (max-width: 767.9px) {
    body {
        font-size: 1.5rem;
    }
}

/*
--------------------------------
	utilities
--------------------------------
*/
/* ---- media query ---- */
@media screen and (min-width: 768px) {
    .show-sp {
        display: none !important;
    }
}

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

@media screen and (min-width: 1350px) {
    .show-u1350 {
        display: none !important;
    }
}

/* makeshift */
@media screen and (max-width: 1199px) {
    span.show-ps-sp {
        display: none !important;
    }
}

/* ---- margin ---- */
.mt0 {
    margin-top: 0px !important;
}

.mt10 {
    margin-top: 10px !important;
}

.mt20 {
    margin-top: 20px !important;
}

.mt30 {
    margin-top: 30px !important;
}

.mt40 {
    margin-top: 40px !important;
}

.mt50 {
    margin-top: 50px !important;
}

.mt60 {
    margin-top: 60px !important;
}

.mt70 {
    margin-top: 70px !important;
}

.mt80 {
    margin-top: 80px !important;
}

.mt90 {
    margin-top: 90px !important;
}

.mt100 {
    margin-top: 100px !important;
}

.mt110 {
    margin-top: 110px !important;
}

.mt120 {
    margin-top: 120px !important;
}

.mt130 {
    margin-top: 130px !important;
}

.mt140 {
    margin-top: 140px !important;
}

.mt150 {
    margin-top: 150px !important;
}

.mt160 {
    margin-top: 160px !important;
}

.mt170 {
    margin-top: 170px !important;
}

.mt180 {
    margin-top: 180px !important;
}

.mt190 {
    margin-top: 190px !important;
}

.mt200 {
    margin-top: 200px !important;
}

@media screen and (max-width: 767.9px) {
    .mt0 {
        margin-top: 0vw !important;
    }

    .mt10 {
        margin-top: 2vw !important;
    }

    .mt20 {
        margin-top: 4vw !important;
    }

    .mt30 {
        margin-top: 6vw !important;
    }

    .mt40 {
        margin-top: 8vw !important;
    }

    .mt50 {
        margin-top: 10vw !important;
    }

    .mt60 {
        margin-top: 12vw !important;
    }

    .mt70 {
        margin-top: 14vw !important;
    }

    .mt80 {
        margin-top: 16vw !important;
    }

    .mt90 {
        margin-top: 18vw !important;
    }

    .mt100 {
        margin-top: 20vw !important;
    }

    .mt110 {
        margin-top: 22vw !important;
    }

    .mt120 {
        margin-top: 24vw !important;
    }

    .mt130 {
        margin-top: 26vw !important;
    }

    .mt140 {
        margin-top: 28vw !important;
    }

    .mt150 {
        margin-top: 30vw !important;
    }

    .mt160 {
        margin-top: 32vw !important;
    }

    .mt170 {
        margin-top: 34vw !important;
    }

    .mt180 {
        margin-top: 36vw !important;
    }

    .mt190 {
        margin-top: 38vw !important;
    }

    .mt200 {
        margin-top: 40vw !important;
    }

    .sp-mt80 {
        margin-top: 21.3vw !important;
    }

    .sp-mt64 {
        margin-top: 17.1vw !important;
    }

    .sp-mt56 {
        margin-top: 14.9vw !important;
    }

    .sp-mt40 {
        margin-top: 10.7vw !important;
    }

    .sp-mt32 {
        margin-top: 8.5vw !important;
    }

    .sp-mt0 {
        margin-top: 0 !important;
    }
}

/* ---- align ---- */
.left {
    text-align: left;
}

.center {
    text-align: center;
}

.right {
    text-align: right;
}

/* ---- animation ---- */
@keyframes arrow-right {
    0% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }

    50% {
        opacity: 0;
        transform: translate3d(10px, 0, 0);
    }

    50.1% {
        opacity: 0;
        transform: translate3d(-10px, 0, 0);
    }

    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes arrow-left {
    0% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(180deg);
    }

    50% {
        opacity: 0;
        transform: translate3d(-10px, 0, 0) rotate(180deg);
    }

    50.1% {
        opacity: 0;
        transform: translate3d(10px, 0, 0) rotate(180deg);
    }

    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(180deg);
    }
}

@keyframes arrow-up {
    0% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(45deg);
    }

    50% {
        opacity: 0;
        transform: translate3d(0, -10px, 0) rotate(45deg);
    }

    50.1% {
        opacity: 0;
        transform: translate3d(0, 10px, 0) rotate(45deg);
    }

    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(45deg);
    }
}

@keyframes arrow-up-iphone {
    0% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(-45deg);
    }

    50% {
        opacity: 0;
        transform: translate3d(0, -10px, 0) rotate(-45deg);
    }

    50.1% {
        opacity: 0;
        transform: translate3d(0, 10px, 0) rotate(-45deg);
    }

    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(-45deg);
    }
}

@keyframes arrow-down {
    0% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(90deg);
    }

    50% {
        opacity: 0;
        transform: translate3d(0, 10px, 0) rotate(90deg);
    }

    50.1% {
        opacity: 0;
        transform: translate3d(0, -10px, 0) rotate(90deg);
    }

    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0) rotate(90deg);
    }
}

/*
--------------------------------
	container
--------------------------------
*/
.body-container {
    padding: 120px 5vw;
}

.body-container.bg-gray {
    background-color: #f4f4f4;
}

.body-container.bg-gray.dark {
    background-color: #d9d9d9;
}

.body-container.no-top-padding {
    padding-top: 0;
}

.body-container.no-bottom-padding {
    padding-bottom: 0;
}

.body-container .body-inner {
    max-width: 1104px;
    margin: 0 auto;
}

.body-container .article-inner {
    max-width: 800px;
    margin: 0 auto;
}

.body-container .body-inner> :first-child,
.body-container .article-inner> :first-child {
    margin-top: 0;
}

@media screen and (max-width: 767.9px) {
    .body-container {
        padding: 21.3vw 5vw;
    }

    .body-container.no-top-padding {
        padding-top: 0;
    }

    .body-container.no-bottom-padding {
        padding-bottom: 0;
    }

    .body-container .body-inner {
        max-width: none;
        margin: 0;
    }

    .body-container .article-inner {
        max-width: none;
        margin: 0;
    }
}

/*
--------------------------------
	page header
--------------------------------
*/
/* ---- pc ---- */
header {
    position: fixed;
    z-index: 2000;
    width: 100%;
    height: 100px;
    top: 0;
    left: 0;
    background-color: #fff;
    letter-spacing: 0.1em;
    transition: height 0.2s ease-out;
}

.is-scroll header {
    height: 70px;
}

header::after {
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 1px;
    bottom: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.1);
}

header.top-no-border::after {
    opacity: 0;
    transition: opacity 0s linear 0.4s;
}

.is-scroll header.top-no-border::after {
    opacity: 1;
    transition: opacity 0s linear 0s;
}

.megamenu-open header::after {
    opacity: 1;
    transition: opacity 0s linear 0.1s;
}

header .header {
    display: flex;
    width: 100%;
    max-width: 100%;
    height: 100%;
    margin: 0 auto;
    justify-content: space-between;
    transition: max-width 0.2s ease-out;
}

.header-logo {
    display: flex;
    max-width: 15vw;
    height: 100%;
    margin-left: 40px;
    align-items: center;
}

.header-logo img {
    width: 184px;
    aspect-ratio: 1/0.239;
}

.header-logo img:lang(en) {
    width: 55px;
    aspect-ratio: 1/0.738;
}

@media screen and (min-width: 1200px) {
    .header-nav {
        display: flex !important;
        height: 100%;
    }

    .header-nav .gnav {
        padding: 0 1.5vw;
        font-size: 14px;
    }

    .header-nav .gnav:lang(en) {
        font-size: 1.3rem;
        letter-spacing: normal;
    }

    .header-nav>ul {
        display: flex;
        align-items: center;
        height: 100%;
    }

    .header-nav>ul>li {
        height: 100%;
        line-height: 1.24;
    }

    .header-nav>ul>li>a,
    .header-nav>ul>li>button {
        position: relative;
        display: flex;
        align-items: center;
        height: 100%;
        font-weight: 700;
    }

    .header-nav .gnav>li>a::after {
        content: "";
        position: absolute;
        display: block;
        width: 0;
        height: 2px;
        left: 50%;
        bottom: 0;
        background-color: #2e2e2e;
        transition: width 0.2s ease-out, left 0.2s ease-out;
    }

    .header-nav .gnav>li:hover>a::after,
    .header-nav .gnav>li.is-current>a::after {
        width: 100%;
        left: 0;
    }

    .header-nav .gnav>li>a {
        padding: 0 1.2vw;
        text-align: center;
        transition: padding 0.2s ease-out;
    }

    .header-nav .gnav>li>a.is-disabled {
        cursor: default;
    }

    .header-nav .sub-menu {
        padding: 0 40px 0 0;
    }

    .header-nav .sub-menu img {
        display: block;
    }

    .header-nav .sub-menu .btn-search button {
        padding: 0 0 0 20px;
    }

    .megamenu {
        position: absolute;
        z-index: 2;
        display: block !important;
        width: 100%;
        height: calc(10 * (1.4em + 3vh) + 6vh);
        max-height: 0;
        top: 100%;
        left: 0;
        background-color: #fff;
        overflow: hidden;
        transition: max-height 0.3s ease-out 0.1s, z-index 0s linear 0.4s;
    }

    .megamenu-col1:before,
    .megamenu:before,
    .megamenu:after {
        content: "";
        position: absolute;
        z-index: 1;
        display: block;
        width: 1px;
        height: 100%;
        top: 0;
        left: 25%;
        background-color: rgba(0, 0, 0, 0.1);
    }

    .megamenu:before {
        left: 50%;
    }

    .megamenu:after {
        left: 75%;
    }

    .megamenu-open .megamenu {
        max-height: 600px;
        transition: max-height 0.3s ease-out 0.1s, z-index 0s linear 0.1s;
    }

    .btn-megamenu:hover .megamenu {
        z-index: 3;
    }

    /*
    .megamenu .btn-col {
      transition: background-color .2s linear;
    }

    .megamenu .megamenu-col2 .btn-col:hover {
      background-color: g.$color_bg;
    }
    .megamenu .megamenu-col3 .btn-col:hover {
      background-color: #e4e4e4;
    }
  */
    .megamenu-col {
        float: left;
        display: block !important;
        width: 25%;
        height: 100%;
        top: -100%;
        padding: 3vh 0;
    }

    .megamenu-col.col2 {
        width: 50%;
    }

    .megamenu-col3 {
        position: absolute;
        left: 50%;
        background-color: #f4f4f4;
        opacity: 0;
        transition: top 0s linear 0.2s, opacity 0.2s linear;
    }

    .megamenu-col4 {
        position: absolute;
        width: 100%;
        left: 100%;
        background-color: #e4e4e4;
        opacity: 0;
        transition: top 0s linear 0.2s, opacity 0.2s linear;
    }

    /*
  .megamenu .btn-col:hover > .megamenu-col {
    top: 0;
    opacity: 1;
    transition: top 0s linear, opacity .2s linear;
  }
  */
    .megamenu-col li {
        clear: both;
        width: 100%;
        overflow: hidden;
        transition: background-color 0.2s linear;
    }

    .megamenu .megamenu-col.col2 li {
        clear: none;
        float: left;
        width: 50%;
        overflow: visible;
    }

    .megamenu .megamenu-col.col2>li:nth-of-type(2n + 1) {
        clear: both;
    }

    .megamenu .megamenu-col2 .pc-submenu-open {
        background-color: #f4f4f4;
    }

    .megamenu .megamenu-col3 .pc-submenu-open {
        background-color: #e4e4e4;
    }

    .megamenu a {
        position: relative;
        display: block;
        transition: background-color 0.2s linear;
    }

    .megamenu-col1 a {
        position: relative;
        padding: 1.5vh 40px 55px;
        font-size: 24px;
        font-weight: bold;
        color: #2e2e2e;
        text-decoration: none;
    }

    .megamenu-col1 a .en {
        display: block;
        margin-top: 10px;
        font-size: 16px;
        letter-spacing: 0;
    }

    .megamenu-col1 a::before {
        content: "";
        position: absolute;
        display: block;
        width: 40px;
        height: 40px;
        bottom: 0;
        left: 40px;
        border-radius: 100%;
        border: solid 1px #2e2e2e;
        transition: background-color 0.2s linear;
    }

    .megamenu-col1 a::after {
        content: "";
        position: absolute;
        display: block;
        width: 12px;
        height: 10px;
        bottom: 15px;
        left: 54px;
        background: url(../images/icon_arrow.svg) center no-repeat;
    }

    .megamenu-col1 a:hover::before {
        background-color: #2e2e2e;
    }

    .megamenu-col1 a:hover::after {
        background: url(../images/icon_arrow_wht.svg) center no-repeat;
        animation: megamenu-arrow1 0.5s ease-in-out;
    }

    .megamenu-col1 a.is-disabled {
        pointer-events: none;
    }

    .megamenu-col1 a.is-disabled::before,
    .megamenu-col1 a.is-disabled::after {
        content: none;
    }

    @keyframes megamenu-arrow1 {
        0% {
            opacity: 1;
            transform: translate3d(0, 0, 0);
        }

        50% {
            opacity: 0;
            transform: translate3d(10px, 0, 0);
        }

        50.1% {
            opacity: 0;
            transform: translate3d(-10px, 0, 0);
        }

        100% {
            opacity: 1;
            transform: translate3d(0, 0, 0);
        }
    }

    .megamenu-col li a {
        display: block;
        position: relative;
        width: 100%;
        padding: 1.5vh 60px 1.5vh 2vw;
        font-size: 14px;
        color: #2e2e2e;
        text-decoration: none;
    }

    /*
  .megamenu-col li a {
    float: left;
    position: relative;
    width: 100%;
    padding: 1.5vh 50px 1.5vh 2vw;
    font-size: 14px;
    color: g.$color_1;
    text-decoration: none;
  }
  */
    /*
  .megamenu-col li a:after {
    content: "";
    display: inline-block;
    width: 12px;
    height: 10px;
    margin-left: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
    vertical-align: middle;
  }
  */
    /*
  .megamenu-col li a:after {
    content: "";
    position: absolute;
    display: block;
    width: 50px;
    height: calc(1em * 1.4 + 3vh);
    top: 0;
    right: 0;
    background: url(../images/icon_arrow.svg) center no-repeat;
    //transition: transform .2s ease-out;
  }

  .megamenu-col li a:hover:after {
    //transform: translate3d(4px, 0px, 0px);
    animation: megamenu-arrow2 .5s ease-in-out;
  }
  */
    @keyframes megamenu-arrow2 {
        0% {
            opacity: 1;
            transform: translate3d(0, 0, 0);
        }

        50% {
            opacity: 0;
            transform: translate3d(10px, 0, 0);
        }

        50.1% {
            opacity: 0;
            transform: translate3d(-10px, 0, 0);
        }

        100% {
            opacity: 1;
            transform: translate3d(0, 0, 0);
        }
    }

    .megamenu-col3>li>a {
        padding: 1vh 60px 1vh 2vw;
    }

    .megamenu-col4>li>a {
        padding: 1vh 2vw 1vh 2vw;
    }

    /*
  .megamenu-col3 > li > a:after  {
    height: calc(1em * 1.4 + 2vh);
  }

  .megamenu-col4 > li > a:after {
    height: calc(1em * 1.4 + 2vh);
  }
  */
    .megamenu .megamenu-col2 li a:hover {
        background-color: #f4f4f4;
    }

    .megamenu .megamenu-col3 li a:hover {
        background-color: #e4e4e4;
    }

    .megamenu .megamenu-col4 li a:hover {
        background-color: #d4d4d4;
    }

    .btn-submenu {
        display: block;
        position: absolute;
        right: 0;
        top: 0;
        width: 50px;
        height: 100%;
        margin: 0;
        padding: 0;
        text-indent: -9999px;
        border: 0 none;
        background-color: transparent;
        cursor: pointer;
        outline: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        transition: background-color 0.2s linear;
    }

    .megamenu .has-submenu::after {
        content: "";
        position: absolute;
        display: block;
        width: 1px;
        top: 1.5vh;
        bottom: 1.5vh;
        right: 49px;
        background-color: rgba(0, 0, 0, 0.2);
    }

    .megamenu-col3 .has-submenu::after {
        top: 1vh;
        bottom: 1vh;
    }

    /*
  .btn-submenu {
    float: right;
    position: relative;
    display: block;
    width: 50px;
    height: calc(1em * 1.4 + 3vh);
    top: 0;
    right: 0;
    margin: 0;
    padding: 0;
    text-indent: -9999px;
    border: 0 none;
    background-color: transparent;
    cursor: pointer;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    transition: background-color .2s linear;
  }
  */
    .btn-megamenu>a>.btn-submenu {
        display: none;
    }

    .btn-submenu:before {
        content: "";
        position: absolute;
        display: block;
        width: 2px;
        height: 14px;
        top: calc(50% - 7px);
        left: calc(50% - 1px);
        background-color: #2e2e2e;
        transition: transform 0.2s ease-out;
    }

    .pc-submenu-open>a>.btn-submenu:before {
        transform: rotate(90deg);
    }

    .btn-submenu:after {
        content: "";
        position: absolute;
        display: block;
        width: 14px;
        height: 2px;
        top: calc(50% - 1px);
        left: calc(50% - 7px);
        background-color: #2e2e2e;
    }

    .megamenu-col2>li>.btn-submenu {
        height: calc(1.4em + 3vh);
    }

    .megamenu-col3>li>.btn-submenu {
        height: calc(1.4em + 2vh);
    }

    .megamenu .megamenu-col2>li>.btn-submenu:hover {
        background-color: #f4f4f4;
    }

    .megamenu .megamenu-col3>li>.btn-submenu:hover {
        background-color: #e4e4e4;
    }

    /*
  .megamenu-col li .btn-submenu + a {
    width: calc(100% - 50px);
  }

  .megamenu .btn-submenu + a:before {
    content: "";
    position: absolute;
    display: block;
    width: 1px;
    height: 20px;
    top: calc(50% - 10px);
    right: 0;
    background-color: rgba(0,0,0,.2);
    border: 0 none;
    transform: none;
  }
  */
    /*
    .megamenu .btn-col:hover > .megamenu-col {
      top: 1;
      opacity: 0;
      transition: top 0s linear .2s, opacity .2s linear;
    }
  */
    .megamenu .pc-submenu-open>.megamenu-col {
        top: 0;
        opacity: 1;
        transition: top 0s linear, opacity 0.2s linear;
    }
}

.header-nav .sub-menu .btn-menu {
    display: none;
}

.bg-megamenu {
    position: absolute;
    z-index: 1;
    width: 100%;
    height: 0;
    top: 100%;
    left: 0;
    background-color: rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: height 0s linear 0.4s, opacity 0.3s linear 0.1s;
}

.megamenu-open .bg-megamenu {
    height: 100vh;
    opacity: 1;
    transition: height 0s linear 0.1s, opacity 0.3s linear 0.1s;
}

/* ---- tablet ---- */
@media screen and (max-width: 1199.9px) {
    header {
        height: 65px !important;
    }

    .spmenu-open header:after {
        opacity: 1;
        transition: opacity 0s linear 0s;
    }

    .header-logo {
        max-width: 130px;
        margin-left: 5vw;
    }

    .header-logo img {
        width: 130px;
    }

    .header-logo img:lang(en) {
        width: 38px;
    }

    .header-nav .sub-menu {
        display: flex;
        align-items: center;
        height: 100%;
        padding: 0 calc(5vw - 18px) 0 0;
    }

    .header-nav .sub-menu li {
        height: 100%;
    }

    .header-nav .sub-menu li button {
        display: flex;
        height: 100%;
        align-items: center;
    }

    .header-nav .sub-menu .btn-search {
        width: 30px;
        margin-left: 12px;
    }

    .header-nav .sub-menu .btn-search button {
        padding: 0;
    }

    .header-nav .sub-menu .btn-menu {
        display: block;
        position: relative;
        width: 60px;
        height: 100%;
        margin-left: 2px;
        cursor: pointer;
    }

    .header-nav .sub-menu .btn-menu span {
        display: block;
        position: absolute;
        left: 18px;
        top: calc(50% - 1px);
        width: 24px;
        height: 2px;
        background-color: #2e2e2e;
        overflow: hidden;
        text-indent: -400px;
        opacity: 1;
        transform: translateY(-6px);
        transition: opacity 0.2s ease-out;
    }

    .header-nav .sub-menu .btn-menu::before {
        content: "";
        display: block;
        position: absolute;
        left: 18px;
        top: calc(50% - 1px);
        width: 24px;
        height: 2px;
        background-color: #2e2e2e;
        transform-origin: 50%;
        transform: rotate(0);
        transition: transform 0.2s ease-out;
    }

    .header-nav .sub-menu .btn-menu::after {
        content: "";
        display: block;
        position: absolute;
        left: 18px;
        top: calc(50% - 1px);
        width: 24px;
        height: 2px;
        background-color: #2e2e2e;
        transform-origin: 50%;
        transform: rotate(0) translateY(6px);
        transition: transform 0.2s ease-out;
    }

    .spmenu-open .header-nav .sub-menu .btn-menu span {
        opacity: 0;
    }

    .spmenu-open .header-nav .sub-menu .btn-menu::before {
        transform: rotate(-45deg);
    }

    .spmenu-open .header-nav .sub-menu .btn-menu::after {
        transform: rotate(45deg) translateY(0);
    }

    nav.header-nav {
        position: fixed;
        z-index: 2;
        display: none;
        width: 100%;
        height: calc(100% - 65px);
        top: 65px;
        left: 0;
        background-color: #fff;
        overflow-y: scroll;
    }

    .megamenu {
        position: relative;
        display: none;
    }

    .megamenu-col1 {
        display: none;
    }

    .megamenu-col3 {
        display: none;
        background-color: #f4f4f4;
    }

    .megamenu-col4 {
        display: none;
        background-color: #e4e4e4;
    }

    .gnav {
        margin: -1px 0 50px;
        border-bottom: solid 1px rgba(0, 0, 0, 0.1);
    }

    .gnav br {
        display: none;
    }

    .gnav li {
        position: relative;
        border-top: solid 1px rgba(0, 0, 0, 0.1);
    }

    .gnav li a {
        position: relative;
        display: block;
        padding: 20px 60px 20px 5vw;
        text-decoration: none;
        color: #2e2e2e;
        line-height: 1.5;
    }

    /*
  .gnav a:before {
    content: "";
    position: absolute;
    display: block;
    width: 100%;
    height: 1px;
    left: 0;
    bottom: 0;
    background-color: rgba(0,0,0,.1);
  }
  */
    /*
  .gnav a:before{
    content: "";
    position: absolute;
    display: block;
    width: 60px;
    height: calc(1em * 1.5 + 40px);
    top: 0;
    right: 0;
    background: url(../images/icon_arrow.svg) center no-repeat;
  }

  .gnav .megamenu-col2 > li > a:before {
    height: calc(1em * 1.5 + 34px);
  }

  .gnav .megamenu-col3 > li > a:before {
    height: calc(1em * 1.5 + 34px);
  }

  .gnav .megamenu-col4 > li > a:before {
    height: calc(1em * 1.5 + 30px);
  }
  */
    .megamenu-col2>li {
        font-size: 15px;
        line-height: 1.5;
    }

    .megamenu-col3>li {
        font-size: 14px;
        line-height: 1.5;
    }

    .megamenu-col4>li {
        font-size: 13px;
        line-height: 1.5;
    }

    .megamenu-col2>li>a {
        padding: 17px 5vw 17px 10vw;
    }

    .megamenu-col2>li>a.has-submenu {
        padding-right: 79px;
    }

    .megamenu-col3>li>a {
        padding: 17px 5vw 17px 15vw;
    }

    .megamenu-col3>li>a.has-submenu {
        padding-right: 79px;
    }

    .megamenu-col4>li>a {
        padding: 15px 5vw 15px 20vw;
    }

    .btn-submenu {
        position: absolute;
        display: block;
        width: 60px;
        height: 100%;
        top: 0;
        right: 0;
        margin: 0;
        padding: 0;
        text-indent: -9999px;
        border: 0 none;
        background-color: transparent;
        cursor: pointer;
        outline: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        appearance: none;
        transition: background-color 0.2s linear;
    }

    .btn-submenu:before {
        content: "";
        position: absolute;
        display: block;
        width: 2px;
        height: 16px;
        top: calc(50% - 8px);
        left: calc(50% - 1px);
        background-color: #2e2e2e;
        transition: transform 0.2s ease-out;
    }

    .btn-submenu.submenu-open:before {
        transform: rotate(90deg);
    }

    .btn-submenu:after {
        content: "";
        position: absolute;
        display: block;
        width: 16px;
        height: 2px;
        top: calc(50% - 1px);
        left: calc(50% - 8px);
        background-color: #2e2e2e;
    }

    .megamenu-col2>li>.btn-submenu {
        height: calc(1.5em + 34px);
    }

    .megamenu-col3>li>.btn-submenu {
        height: calc(1.5em + 34px);
    }

    .megamenu-col2>li>a>.btn-submenu.submenu-open {
        background-color: #f4f4f4;
    }

    .megamenu-col3>li>a>.btn-submenu.submenu-open {
        background-color: #e4e4e4;
    }

    .has-submenu::after {
        content: "";
        position: absolute;
        display: block;
        width: 1px;
        top: 20px;
        bottom: 20px;
        right: 59px;
        background-color: rgba(0, 0, 0, 0.2);
    }

    /*
  .btn-submenu + a {
    width: calc(100% - 60px);
  }

  .btn-submenu + a:before {
    width: calc(100% + 60px);
  }

  .btn-submenu + a:after {
    content: "";
    position: absolute;
    display: block;
    width: 1px;
    height: 20px;
    top: calc(50% - 10px);
    right: 0;
    background-color: rgba(0,0,0,.2);
  }
  */
    .spmenu-open .bg-megamenu {
        height: 100vh;
        opacity: 1;
        transition: height 0s linear 0.1s, opacity 0.3s linear 0.1s;
    }
}

/* ---- language ---- */
.header-nav .sub-menu .btn-language {
    position: relative;
    width: 100px;
    height: 32px;
}

.header-nav .sub-menu .btn-language button {
    display: block;
    position: relative;
    z-index: 3;
    width: 100%;
    height: 100%;
    padding-right: 16px;
    border: 1px solid #d0d0d0;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 30px;
    text-align: center;
}

.header-nav .sub-menu .btn-language button::before {
    content: "";
    display: block;
    position: absolute;
    right: 12px;
    top: calc(50% - 4px);
    width: 6px;
    height: 6px;
    border-bottom: 2px solid #2e2e2e;
    border-left: 2px solid #2e2e2e;
    transform: rotate(-45deg);
}

.header-nav .sub-menu .btn-language .drawer {
    position: absolute;
    left: 0;
    top: calc(50% + 12px);
    z-index: 2;
    min-width: 100px;
    height: 0;
    padding: 4px 15px 0;
    border-radius: 0 0 4px 4px;
    background-color: #e8e8e8;
    overflow: hidden;
    opacity: 0;
    transition: height 0.15s ease-out, opacity 0.15s ease-out;
}

.header-nav .sub-menu .btn-language .drawer li {
    border-bottom: 1px solid #d9d9d9;
}

.header-nav .sub-menu .btn-language .drawer li:last-child {
    border-bottom-style: none;
}

.header-nav .sub-menu .btn-language .drawer a {
    display: block;
    padding: 15px 0;
    color: #2e2e2e;
    font-size: 1.3rem;
    text-align: center;
    opacity: 1;
    transition: opacity 0.2s;
}

.header-nav .sub-menu .btn-language .drawer a:hover,
.header-nav .sub-menu .btn-language .drawer a:active {
    opacity: 0.6;
}

.header-nav .sub-menu .btn-language .drawer a.en {
    letter-spacing: 0.03em;
}

@media screen and (max-width: 1199.9px) {
    .header-nav .sub-menu .btn-language {
        width: 60px;
    }

    .header-nav .sub-menu .btn-language button {
        padding-right: 10px;
        border-color: #fff;
        transition: border-color 0.2s;
    }

    .header-nav .sub-menu .btn-language button span {
        display: none;
    }

    .header-nav .sub-menu .btn-language button::before {
        right: 7px;
    }

    .header-nav .sub-menu .btn-language button.is-open {
        border-color: #d0d0d0;
    }

    .header-nav .sub-menu .btn-language .drawer {
        left: auto;
        right: 0;
        padding: 4px 10px 0;
        border-radius: 4px 0 4px 4px;
        background-color: #f4f4f4;
    }

    .header-nav .sub-menu .btn-language .drawer a {
        transition: none;
    }

    .header-nav .sub-menu .btn-language .drawer a:hover,
    .header-nav .sub-menu .btn-language .drawer a:active {
        opacity: 1;
    }
}

/* ---- search ---- */
.header-search {
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 1;
    width: 100%;
    height: 0;
    padding: 0 40px;
    background-color: #f4f4f4;
    overflow: hidden;
    pointer-events: none;
    transition: height 0.12s ease-out;
}

.header-search.is-open {
    height: 88px;
    pointer-events: auto;
    transition: height 0.16s ease-out;
}

.header-search form {
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: 630px;
    height: 88px;
    margin: 0 auto;
    padding: 16px 0;
}

.header-search form input {
    width: calc(100% - 108px);
    height: 56px;
    padding: 0 4%;
    border: 1px solid #e2e2e2;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.6rem;
    line-height: 55px;
}

.header-search form input::-moz-placeholder {
    color: #d9d9d9;
}

.header-search form input::placeholder {
    color: #d9d9d9;
}

.header-search form button {
    width: 100px;
    height: 56px;
    border-radius: 4px;
    background-color: #2e2e2e;
    color: #fff;
    font-size: 1.6rem;
    line-height: 55px;
    text-align: center;
    opacity: 1;
    transition: opacity 0.2s;
}

.header-search form button:hover,
.header-search form button:active {
    opacity: 0.7;
}

.bg-search {
    position: absolute;
    left: 0;
    top: 100px;
    z-index: 0;
    width: 100%;
    height: calc(100vh - 100px);
    background-color: rgba(0, 0, 0, 0.3);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.12s ease-out;
}

.is-scroll .bg-search {
    top: 70px;
    height: calc(100vh - 70px);
}

.bg-search.is-shown {
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.16s ease-out;
}

@media screen and (max-width: 1199.9px) {
    .header-search {
        padding: 0 5vw;
    }

    .header-search.is-open {
        height: 84px;
    }

    .header-search form {
        height: 84px;
        padding: 20px 0;
    }

    .header-search form input {
        width: calc(100% - 71px);
        height: 44px;
        padding: 0 5%;
        font-size: 1.4rem;
        line-height: 43px;
    }

    .header-search form button {
        width: 68px;
        height: 44px;
        font-size: 1.4rem;
        line-height: 43px;
        transition: none;
    }

    .header-search form button:hover,
    .header-search form button:active {
        opacity: 1;
    }

    .bg-search {
        top: 65px;
        height: calc(100vh - 65px);
        background-color: rgba(0, 0, 0, 0.6);
    }

    .is-scroll .bg-search {
        top: 65px;
        height: calc(100vh - 65px);
    }
}

/*
--------------------------------
	footer
--------------------------------
*/
/* ---- navigation ---- */
.page-footer .upper {
    padding-top: 65px;
    padding-bottom: 65px;
    background-color: #ececec;
}

.page-footer .upper .body-inner {
    display: flex;
    flex-wrap: wrap;
    gap: min(3.8vw, 55px) min(3.4vw, 50px);
}

.page-footer .upper .body-inner>* {
    width: max(25% - 2.55vw, 25% - 37.5px);
}

.page-footer .upper .body-inner>*:last-child {
    width: max(50% - 1.7vw, 50% - 25px);
}

.page-footer .upper .body-inner.col-3>* {
    width: max(33.3333% - 2.27vw, 33.3333% - 33.4px);
}

.page-footer .upper .body-inner.col-3>*:last-child {
    width: max(33.3333% - 2.27vw, 33.3333% - 33.4px);
}

.page-footer .upper .body-inner.col-5>* {
    width: max(20% - 2.72vw, 20% - 40px);
}

.page-footer .upper .body-inner.col-5>*:last-child {
    width: max(20% - 2.72vw, 20% - 40px);
}

.page-footer .upper a {
    color: #2e2e2e;
    opacity: 1;
    transition: opacity 0.2s;
}

.page-footer .upper a:hover,
.page-footer .upper a:active {
    color: #2e2e2e;
    opacity: 0.6;
}

.page-footer .upper dt {
    margin-top: 70px;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
}

.page-footer .upper dt:first-child {
    margin-top: 0;
}

.page-footer .upper dt+dt {
    margin-top: 40px;
}

.page-footer .upper dt button {
    display: none;
}

.page-footer .upper dd {
    margin-top: 30px;
}

.page-footer .upper dd li {
    margin-top: 5px;
    font-size: 1.2rem;
    line-height: 1.65;
}

.page-footer .upper dd+dt {
    margin-top: 40px;
}

.page-footer .upper .body-inner>ul li {
    margin-top: 40px;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
}

.page-footer .upper .body-inner>ul li:first-child {
    margin-top: 0;
}

.page-footer .upper .button-col a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 90px;
    border-radius: 4px;
    background-color: #e0e0e0;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.5;
    transition: background-color 0.3s ease-out, color 0.3s ease-out;
}

.page-footer .upper .button-col a:hover,
.page-footer .upper .button-col a:active {
    background-color: #2e2e2e;
    color: #fff;
    opacity: 1;
}

.page-footer .lower {
    padding: 43px 0 55px;
    background-color: #2e2e2e;
    /*
  .footer-logo {

    padding-top: 48px;
    text-align: center;

    a {

      opacity: 1;
      transition: opacity .2s;

      &:hover, &:active {
        opacity: .6;
      }

      img {
        width: 240px;
      }

    }

  }
  */
}

.page-footer .lower .body-container {
    padding-top: 0;
    padding-bottom: 43px;
    border-bottom: 1px solid #464646;
}

.page-footer .lower .body-inner {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
}

.page-footer .lower .sns {
    display: flex;
    -moz-column-gap: 15px;
    column-gap: 15px;
}

.page-footer .lower .sns a {
    display: block;
    width: 40px;
    opacity: 1;
    transition: opacity 0.2s;
}

.page-footer .lower .sns a:hover,
.page-footer .lower .sns a:active {
    opacity: 0.6;
}

.page-footer .lower .legal {
    display: flex;
    -moz-column-gap: 1.4em;
    column-gap: 1.4em;
    font-size: 1.4rem;
    font-weight: 700;
}

.page-footer .lower .legal a {
    color: #fff;
    opacity: 1;
    transition: opacity 0.2s;
}

.page-footer .lower .legal a:hover,
.page-footer .lower .legal a:active {
    color: #fff;
    opacity: 0.6;
}

.page-footer .lower p {
    margin-top: 48px;
    color: #6a6a6a;
    font-size: 1.2rem;
    letter-spacing: 0.02em;
    text-align: center;
}

@media screen and (max-width: 849px) {
    .page-footer .lower .legal {
        -moz-column-gap: 1.2em;
        column-gap: 1.2em;
        font-size: 1.3rem;
    }
}

@media screen and (max-width: 767.9px) {
    .page-footer .upper {
        padding-top: 5vw;
        padding-bottom: 10vw;
    }

    .page-footer .upper .body-inner {
        display: block;
    }

    .page-footer .upper .body-inner>* {
        width: auto;
    }

    .page-footer .upper .body-inner>*:last-child {
        width: auto;
    }

    .page-footer .upper .body-inner.col-3>* {
        width: auto;
    }

    .page-footer .upper .body-inner.col-3>*:last-child {
        width: auto;
    }

    .page-footer .upper .body-inner.col-5>* {
        width: auto;
    }

    .page-footer .upper .body-inner.col-5>*:last-child {
        width: auto;
    }

    .page-footer .upper a {
        transition: none;
    }

    .page-footer .upper a:hover,
    .page-footer .upper a:active {
        opacity: 1;
    }

    .page-footer .upper dt {
        position: relative;
        margin-top: 0;
    }

    .page-footer .upper dt+dt {
        margin-top: 0;
        border-top: 1px solid #dfdfdf;
    }

    .page-footer .upper dt:last-child {
        border-bottom: 1px solid #dfdfdf;
    }

    .page-footer .upper dt a,
    .page-footer .upper dt span {
        display: block;
        position: relative;
        width: calc(100% - 5vw - 14px);
        padding: 20px 20px 20px 0;
    }

    .page-footer .upper dt a::after,
    .page-footer .upper dt span::after {
        content: "";
        display: block;
        position: absolute;
        right: 0;
        top: calc(50% - 10px);
        width: 1px;
        height: 20px;
        background-color: #c0c0c0;
    }

    .page-footer .upper dt a:only-child,
    .page-footer .upper dt span:only-child {
        width: auto;
    }

    .page-footer .upper dt a:only-child::after,
    .page-footer .upper dt span:only-child::after {
        content: none;
    }

    .page-footer .upper dt button {
        display: block;
        position: absolute;
        right: -5vw;
        top: 0;
        width: calc(10vw + 14px);
        height: 100%;
        overflow: hidden;
        text-indent: -400px;
    }

    .page-footer .upper dt button::before {
        content: "";
        display: block;
        position: absolute;
        right: 5vw;
        top: calc(50% - 1px);
        width: 14px;
        height: 2px;
        background-color: #2e2e2e;
    }

    .page-footer .upper dt button::after {
        content: "";
        display: block;
        position: absolute;
        right: 5vw;
        top: calc(50% - 1px);
        width: 14px;
        height: 2px;
        background-color: #2e2e2e;
        opacity: 1;
        transform: rotate(-90deg);
        transition: opacity 0.2s, transform 0.2s;
    }

    .page-footer .upper dt button.is-open::after {
        opacity: 0;
        transform: rotate(0);
    }

    .page-footer .upper dd {
        height: 0;
        margin-top: 0;
        border-bottom: 1px solid #dfdfdf;
        overflow: hidden;
        transition: height 0.25s ease-out;
    }

    .page-footer .upper dd ul {
        padding: 0 5vw 18px 0;
    }

    .page-footer .upper dd li {
        margin-top: 0;
        padding-left: 5vw;
    }

    .page-footer .upper dd li.wide {
        width: 100%;
    }

    .page-footer .upper dd li a {
        display: block;
        padding: 8px 0;
    }

    .page-footer .upper dd+dt {
        margin-top: 0;
    }

    .page-footer .upper .body-inner>ul li {
        margin-top: 0;
        border-bottom: 1px solid #dfdfdf;
    }

    .page-footer .upper .body-inner>ul li a {
        display: block;
        padding: 20px 0;
    }

    .page-footer .upper .button-col a {
        margin-top: 10vw;
        transition: none;
    }

    .page-footer .upper .button-col a:hover,
    .page-footer .upper .button-col a:active {
        background-color: #e0e0e0;
        color: #2e2e2e;
    }

    .page-footer .lower {
        padding: 10vw 0 10vw;
        /*
    .footer-logo {

      padding-top: 9vw;

      a {

        transition: none;

        &:hover, &:active {
          opacity: 1;
        }

        img {
          width: 200px;
        }

      }

    }
    */
    }

    .page-footer .lower .body-container {
        padding-bottom: 9vw;
    }

    .page-footer .lower .body-inner {
        display: block;
    }

    .page-footer .lower .sns {
        justify-content: center;
        -moz-column-gap: 32px;
        column-gap: 32px;
    }

    .page-footer .lower .sns a {
        transition: none;
    }

    .page-footer .lower .sns a:hover,
    .page-footer .lower .sns a:active {
        opacity: 1;
    }

    .page-footer .lower .legal {
        flex-wrap: wrap;
        justify-content: center;
        -moz-column-gap: 0;
        column-gap: 0;
        margin-top: 20px;
    }

    .page-footer .lower .legal a {
        display: inline-block;
        padding: 13px 16px;
        transition: none;
    }

    .page-footer .lower .legal a:hover,
    .page-footer .lower .legal a:active {
        opacity: 1;
    }

    .page-footer .lower p {
        margin-top: 9vw;
        letter-spacing: -0.02em;
    }
}

/*
--------------------------------
	breadcrumbs
--------------------------------
*/
.breadcrumbs {
    padding: 120px 65px 0;
}

.breadcrumbs ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    color: #2e2e2e;
    font-size: 1.2rem;
    line-height: 1.8;
}

.breadcrumbs ul a {
    color: #2e2e2e;
    font-weight: 400;
    opacity: 0.6;
    transition: opacity 0.2s;
}

.breadcrumbs ul a:hover,
.breadcrumbs ul a:active {
    color: #2e2e2e;
    opacity: 1;
}

.breadcrumbs ul li {
    position: relative;
}

.breadcrumbs ul li:first-child {
    padding-right: 24px;
}

.breadcrumbs ul li:first-child::after {
    content: "";
    display: block;
    position: absolute;
    right: 12px;
    top: 0;
    width: 1px;
    height: 14px;
    background-color: #aaa;
}

.breadcrumbs ul li:first-child img {
    display: block;
    width: 14px;
}

.breadcrumbs ul li:nth-child(n+2) {
    padding-right: 24px;
}

.breadcrumbs ul li:nth-child(n+2)::after {
    content: "";
    display: block;
    position: absolute;
    right: 10px;
    top: calc(50% - 3px);
    width: 6px;
    height: 6px;
    border-top: 1px solid #aaa;
    border-right: 1px solid #aaa;
    transform: rotate(45deg);
}

.breadcrumbs ul li:last-child {
    padding-right: 0;
}

.breadcrumbs ul li:last-child::after {
    content: none;
}

@media screen and (max-width: 1199.9px) {
    .breadcrumbs {
        padding: 78px 5vw 0;
    }

    .breadcrumbs ul a {
        transition: none;
    }

    .breadcrumbs ul a:hover,
    .breadcrumbs ul a:active {
        opacity: 0.6;
    }
}

/*
--------------------------------
	page top button
--------------------------------
*/
a.page-top {
    display: block;
    position: fixed;
    right: 30px;
    bottom: 30px;
    z-index: 100;
    width: 50px;
    height: 50px;
    border: 1px solid #ebebeb;
    border-radius: 50%;
    background-color: #fff;
    overflow: hidden;
    text-indent: -400px;
    transform: translateY(110px);
    transition: transform 0.8s ease-in-out;
    /*
  &.is-floor {
    position: absolute;
    bottom: auto;
    transform: translateY(50px);
  }
  */
}

a.page-top::before {
    content: "";
    display: block;
    position: absolute;
    left: calc(50% - 4px);
    top: calc(50% - 2px);
    width: 8px;
    height: 8px;
    border-top: 2px solid #2e2e2e;
    border-left: 2px solid #2e2e2e;
    transform: rotate(45deg);
}

a.page-top::after {
    content: "";
    display: block;
    position: absolute;
    left: calc(50% - 4px);
    top: calc(50% - 2px);
    width: 8px;
    height: 8px;
    border-top: 2px solid #2e2e2e;
    border-right: 2px solid #2e2e2e;
    transform: rotate(-45deg);
}

a.page-top:hover::before,
a.page-top:active::before {
    animation: arrow-up 0.5s ease-in-out;
}

a.page-top:hover::after,
a.page-top:active::after {
    animation: arrow-up-iphone 0.5s ease-in-out;
}

a.page-top.is-shown {
    transform: translateY(0);
}

#js-pagetop-ceil {
    position: absolute;
    left: 0;
    top: 180vh;
    bottom: 0;
    z-index: -100;
    width: 1px;
    pointer-events: none;
}

/*
#js-pagetop-floor {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: -100;
  width: 1px;
  pointer-events: none;
}
*/
@media screen and (max-width: 767.9px) {
    a.page-top {
        right: 4vw;
        bottom: 4vw;
    }

    a.page-top:hover::before,
    a.page-top:active::before {
        animation: none;
    }
}

/*
--------------------------------
	page headings
--------------------------------
*/
/* ---- level 2 page ---- */
.page-heading-lv2 {
    position: relative;
    height: max(400px, 26vw);
    margin-top: 20px;
    padding: 0 40px;
}

.page-heading-lv2 .inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    max-width: 1184px;
    height: 100%;
    margin: 0 auto;
    padding: 0 40px;
}

.page-heading-lv2 h1 {
    padding: 8px 10px 5px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 3.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.page-heading-lv2 h1:lang(en) {
    padding: 8px 10px 8px;
    letter-spacing: 0.02em;
}

.page-heading-lv2 h1.multi-line {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0;
    border-radius: 0;
    background-color: transparent;
}

.page-heading-lv2 h1.multi-line span {
    margin-top: 8px;
    padding: 8px 10px 5px;
    border-radius: 8px;
    background-color: #fff;
}

.page-heading-lv2 h1.multi-line span:first-child {
    margin-top: 0;
}

.page-heading-lv2 p {
    margin-top: 8px;
    padding: 5px 9px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.page-heading-lv2 img {
    display: block;
    position: absolute;
    left: 40px;
    top: 0;
    z-index: -1;
    width: calc(100% - 80px);
    height: 100%;
    border-radius: 20px;
    -o-object-fit: cover;
    object-fit: cover;
}

.page-heading-lv2 .buttons {
    display: flex;
    position: absolute;
    right: calc(40px - 1px);
    bottom: -1px;
    max-width: calc(100vw - 120px);
    padding: 32px 1px 7px 0;
    border-radius: 4px 0 0 0;
    background-color: #fff;
}

.page-heading-lv2 .buttons li {
    width: 50%;
    padding-left: 40px;
}

.page-heading-lv2 .buttons li:only-child {
    width: auto;
}

.page-heading-lv2.large {
    height: max(600px, 37.5vw);
}

@media screen and (max-width: 767.9px) {
    .page-heading-lv2 {
        height: auto;
        margin-top: 13px;
        padding: 0 5vw;
    }

    .page-heading-lv2 .inner {
        width: 100%;
        max-width: none;
        height: auto;
        margin: 0;
        padding: 24vw 5vw;
    }

    .page-heading-lv2 h1 {
        padding: 14px 8px 12px;
        font-size: 2.8rem;
        letter-spacing: 0.05em;
    }

    .page-heading-lv2 h1.multi-line {
        padding: 0;
    }

    .page-heading-lv2 h1.multi-line span {
        padding: 7px 8px 5px;
    }

    .page-heading-lv2 p {
        padding: 6px 7px;
        font-size: 1.4rem;
        letter-spacing: normal;
    }

    .page-heading-lv2 img {
        left: 5vw;
        width: calc(100% - 10vw);
    }

    .page-heading-lv2 ul.buttons {
        display: block;
        position: static;
        max-width: none;
        margin: 20vw -5vw -24vw auto;
        padding: calc(5vw - 16px) 1px 1px 5vw;
    }

    .page-heading-lv2 ul.buttons li {
        padding: 16px 0 0;
    }

    .page-heading-lv2 ul.buttons li a.c-button {
        width: 80vw;
        max-width: 336px;
    }

    .page-heading-lv2.large {
        height: auto;
    }
}

/* ---- level 3 page ---- */
.page-heading-lv3 {
    margin-top: 100px;
    padding: 0 5vw;
}

.page-heading-lv3 .inner {
    max-width: 1104px;
    margin: 0 auto;
}

.page-heading-lv3 h1 {
    font-size: 3.8rem;
    font-weight: 700;
    line-height: 1.7;
    letter-spacing: 0.1em;
}

.page-heading-lv3 h1:lang(en) {
    letter-spacing: 0.02em;
}

.page-heading-lv3 p {
    margin-top: 20px;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.6;
}

.page-heading-lv3 p:lang(en) {
    line-height: 1.5;
}

@media screen and (max-width: 767.9px) {
    .page-heading-lv3 {
        margin-top: 8.5vw;
        padding: 0 5vw;
    }

    .page-heading-lv3 .inner {
        max-width: none;
        margin: 0;
    }

    .page-heading-lv3 h1 {
        font-size: 2.8rem;
        line-height: 1.4;
    }

    .page-heading-lv3 p {
        margin-top: 20px;
        font-size: 1.4rem;
    }
}

/* ---- interview page ---- */
.page-heading-interview {
    margin-top: 20px;
    padding: 0 5vw;
}

.page-heading-interview .inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    position: relative;
    max-width: 1104px;
    min-height: 400px;
    margin: 0 auto;
    padding: 50px min(7%, 80px);
}

.page-heading-interview h1 {
    padding: 8px 10px 5px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 3.8rem;
    font-weight: 700;
}

.page-heading-interview .job,
.page-heading-interview .kana {
    margin-top: 8px;
    padding: 6px 10px 5px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: normal;
}

.page-heading-interview .post {
    margin-top: 40px;
    padding: 9px 10px 6px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: normal;
}

.page-heading-interview p {
    margin-top: 40px;
    padding: 8px 10px 5px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 2.4rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.page-heading-interview p+p {
    margin-top: 8px;
}

.page-heading-interview img {
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    border-radius: 20px;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: right;
    object-position: right;
}

@media screen and (max-width: 767.9px) {
    .page-heading-interview {
        margin-top: 8.5vw;
        padding: 0 5vw;
    }

    .page-heading-interview .inner {
        display: block;
        max-width: none;
        min-height: auto;
        margin: 0;
        padding: 0;
    }

    .page-heading-interview h1 {
        padding: 0;
        border-radius: 0;
        background-color: transparent;
        font-size: 2.8rem;
        font-weight: 700;
    }

    .page-heading-interview .job,
    .page-heading-interview .kana {
        margin-top: 4px;
        padding: 0;
        border-radius: 0;
        background-color: transparent;
        font-size: 1.5rem;
    }

    .page-heading-interview .post {
        margin-top: 24px;
        padding: 0;
        border-radius: 0;
        background-color: transparent;
        font-size: 1.6rem;
    }

    .page-heading-interview p {
        margin-top: 24px;
        padding: 0;
        border-radius: 0;
        background-color: transparent;
        font-size: 2rem;
        line-height: 1.5;
    }

    .page-heading-interview p+p {
        margin-top: 0;
    }

    .page-heading-interview img {
        position: static;
        height: 47vw;
        margin-top: 24px;
        -o-object-position: 50%;
        object-position: 50%;
    }
}

/*
--------------------------------
	column set
--------------------------------
*/
/* ---- 2 columns ---- */
.c-col-set-2 {
    display: flex;
    flex-wrap: wrap;
    gap: min(2.8vw, 40px);
    margin-top: 50px;
}

.c-col-set-2 .c-col {
    width: max(50% - 1.402vw, 50% - 20px);
}

@media screen and (max-width: 767.9px) {
    .c-col-set-2 {
        display: block;
        margin-top: 5vw;
    }

    .c-col-set-2 .c-col {
        width: auto;
        margin-top: 5vw;
    }

    .c-col-set-2 .c-col:first-child {
        margin-top: 0;
    }
}

/* ---- 3 columns ---- */
.c-col-set-3 {
    display: flex;
    flex-wrap: wrap;
    gap: min(2.8vw, 40px);
    margin-top: 50px;
}

.c-col-set-3 .c-col {
    width: max(33.3333% - 1.86667vw, 33.3333% - 26.6667px);
}

@media screen and (max-width: 767.9px) {
    .c-col-set-3 {
        display: block;
        margin-top: 5vw;
    }

    .c-col-set-3 .c-col {
        width: auto;
        margin-top: 5vw;
    }

    .c-col-set-3 .c-col:first-child {
        margin-top: 0;
    }
}

/* ---- 4 columns ---- */
.c-col-set-4 {
    display: flex;
    flex-wrap: wrap;
    gap: min(2.8vw, 40px);
    margin-top: 50px;
}

.c-col-set-4 .c-col {
    width: max(25% - 2.102vw, 25% - 30px);
}

@media screen and (max-width: 767.9px) {
    .c-col-set-4 {
        display: flex;
        flex-wrap: wrap;
        gap: 5vw;
        margin-top: 5vw;
    }

    .c-col-set-4 .c-col {
        width: calc((100% - 5vw) / 2);
        margin-top: 0;
    }

    .c-col-set-4.sp-col-1 {
        display: block;
    }

    .c-col-set-4.sp-col-1 .c-col {
        width: auto;
        margin-top: 5vw;
    }

    .c-col-set-4.sp-col-1 .c-col:first-child {
        margin-top: 0;
    }
}

/* ---- 5 columns ---- */
.c-col-set-5 {
    display: flex;
    flex-wrap: wrap;
    gap: min(2.2vw, 24px);
    margin-top: 50px;
}

.c-col-set-5 .c-col {
    width: max(20% - 1.7617vw, 20% - 19.2px);
}

@media screen and (max-width: 767.9px) {
    .c-col-set-5 {
        display: flex;
        flex-wrap: wrap;
        gap: 5vw;
        margin-top: 5vw;
    }

    .c-col-set-5 .c-col {
        width: calc((100% - 5vw) / 2);
        margin-top: 0;
    }

    .c-col-set-5.sp-col-1 {
        display: block;
    }

    .c-col-set-5.sp-col-1 .c-col {
        width: auto;
        margin-top: 5vw;
    }

    .c-col-set-5.sp-col-1 .c-col:first-child {
        margin-top: 0;
    }
}

/*
@include g.sp {

  .c-col-set-4 {

    display: block;

    .c-col {

      width: auto;
      margin-top: g.$side_margin_sp;

      &:first-child {
        margin-top: 0;
      }

    }

  }

}
*/
/* ---- 2 columns on sp ---- */
/*
@include g.sp {

  .c-col-set-2-sp {

    display: flex;
    flex-wrap: wrap;
    gap: g.$side_margin_sp;

    .c-col {
      width: calc((100% - 5vw) / 2);
      margin-top: 0;
    }

  }

}
*/
/* ---- form elements ---- */
.c-col-set-form {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.c-col-set-form li {
    width: 180px;
}

@media screen and (max-width: 767.9px) {
    .c-col-set-form {
        gap: 5px 0;
    }

    .c-col-set-form li {
        width: 50%;
    }

    .c-col-set-form li:nth-child(2n+1) {
        padding-right: 16px;
    }
}

/* ---- in accordions ---- */
.c-accordion dd>.inner>* {
    margin-top: 0;
}

.c-accordion .c-col-set-1 {
    padding: min(3.4vw, 35px);
    background-color: #fff;
}

.c-accordion .c-col-set-1> :first-child {
    margin-top: 0;
}

.c-accordion .c-col-set-2 {
    gap: min(3.4vw, 35px);
}

.c-accordion .c-col-set-2 .c-col {
    width: max(50% - 1.702vw, 50% - 17.5px);
    padding: min(3.4vw, 35px);
    background-color: #fff;
}

.c-accordion .c-col-set-2 .c-col> :first-child {
    margin-top: 0;
}

.c-accordion .c-col-set-3 {
    gap: min(3.3vw, 35px);
}

.c-accordion .c-col-set-3 .c-col {
    width: max(33.3333% - 2.2vw, 33.3333% - 23.3333px);
    padding: min(3.3vw, 35px);
    background-color: #fff;
}

.c-accordion .c-col-set-3 .c-col> :first-child {
    margin-top: 0;
}

.c-accordion .c-col-set-4 {
    gap: min(2.8vw, 35px);
}

.c-accordion .c-col-set-4 .c-col {
    width: max(25% - 2.102vw, 25% - 26.25px);
    padding: min(2.8vw, 35px);
    background-color: #fff;
}

.c-accordion .c-col-set-4 .c-col> :first-child {
    margin-top: 0;
}

.bg-gray .c-accordion .c-col-set-1,
.bg-gray .c-accordion .c-col-set-2 .c-col,
.bg-gray .c-accordion .c-col-set-3 .c-col,
.bg-gray .c-accordion .c-col-set-4 .c-col {
    background-color: #f4f4f4;
}

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

    .c-accordion .c-col-set-2 .c-col,
    .c-accordion .c-col-set-3 .c-col {
        width: auto;
        padding: 5vw;
    }

    .c-accordion .c-col-set-4 {
        gap: 5vw;
    }

    .c-accordion .c-col-set-4 .c-col {
        width: calc((100% - 5vw) / 2);
        padding: 5vw;
    }
}

/* ---- reverse direction ---- */
.c-col-set-2.reverse,
.c-col-set-2.reverse,
.c-col-set-3.reverse,
.c-col-set-4.reverse {
    flex-direction: row-reverse;
}

/*
--------------------------------
	text
--------------------------------
*/
/* ---- color ---- */
.red {
    color: #f03;
}

.green {
    color: #06c755;
}

.blue {
    color: #6080fb;
}

.yellow {
    color: #ffdc5d;
}

/* ---- body text ---- */
.c-body {
    margin-top: 50px;
    font-size: 1.6rem;
    line-height: 2;
    overflow-wrap: break-word;
}

.c-body.small {
    margin-top: 2em;
    font-size: 1.4rem;
}

.c-body+.c-body {
    margin-top: 2em;
}

.c-body:lang(en) {
    line-height: 1.5;
}

.gray {
    color: #808080;
}

.gray a {
    color: #808080;
}

.gray a:link,
.gray a:visited {
    color: #808080;
}

.c-note {
    margin-top: 40px;
    color: #808080;
    font-size: 1.4rem;
    line-height: 2;
    overflow-wrap: break-word;
}

.c-note:lang(en) {
    line-height: 1.5;
}

.c-note a {
    color: #808080;
}

.c-note a:link,
.c-note a:visited {
    color: #808080;
}

@media screen and (max-width: 767.9px) {
    .c-body {
        margin-top: 8.5vw;
        font-size: 1.6rem;
    }

    .c-body.small {
        font-size: 1.3rem;
    }

    .c-note {
        margin-top: 8.5vw;
        font-size: 1.3rem;
    }
}

/* ---- lead text ---- */
.c-lead {
    padding: 80px 0 90px;
    font-size: 2rem;
    font-weight: 700;
    line-height: 2;
}

.c-lead:lang(en) {
    line-height: 1.5;
}

@media screen and (max-width: 767.9px) {
    .c-lead {
        padding: 8.5vw 0 17.1vw;
        font-size: 1.8rem;
    }
}

/* ---- heading: index pages ---- */
.c-heading,
.c-index-h2 {
    margin-top: 120px;
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.06em;
    /*
  .body-inner > &:first-child {
  	margin-top: 0;
  }
  */
}

.c-heading:lang(en),
.c-index-h2:lang(en) {
    letter-spacing: 0.02em;
}

.c-index-h3 {
    margin-top: 80px;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-index-h4 {
    margin-top: 80px;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-index-h5 {
    margin-top: 80px;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;
}

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

    .c-heading,
    .c-index-h2 {
        margin-top: 21.3vw;
        font-size: 2.4rem;
        /*
    .body-inner > &:first-child {
    	margin-top: 0;
    }
    */
    }

    .c-index-h3 {
        margin-top: 14.9vw;
        font-size: 2.2rem;
    }

    .c-index-h4 {
        margin-top: 14.9vw;
    }

    .c-index-h5 {
        margin-top: 14.9vw;
    }
}

/* ---- heading: article pages ---- */
.c-h1 {
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-h1.colored {
    color: #f03;
}

.c-h2 {
    position: relative;
    margin-top: 80px;
    padding-bottom: 30px;
    color: #2e2e2e;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-h2::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: #ebebeb;
}

.c-h2::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 17.5%;
    height: 1px;
    background-color: #2e2e2e;
}

.c-h2.colored {
    color: #f03;
}

.c-h3 {
    display: flex;
    align-items: center;
    position: relative;
    min-height: 3em;
    margin-top: 80px;
    padding: 4px 0 4px 25px;
    color: #2e2e2e;
    font-size: 2.1rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-h3::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 3px;
    height: 100%;
    background-color: #2e2e2e;
}

.c-h3.colored {
    color: #f03;
}

.c-h4 {
    margin-top: 80px;
    color: #2e2e2e;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-h4::before {
    content: "■";
    margin-right: 0.3em;
}

.c-h4.colored {
    color: #f03;
}

.c-h5 {
    margin-top: 80px;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-h5.colored {
    color: #f03;
}

@media screen and (max-width: 767.9px) {
    .c-h1 {
        font-size: 2.4rem;
        line-height: 1.6;
    }

    .c-h2 {
        margin-top: 14.9vw;
        padding-bottom: 18px;
        font-size: 2.2rem;
        line-height: 1.6;
    }

    .c-h2::after {
        width: 24%;
    }

    .c-h3 {
        margin-top: 14.9vw;
        font-size: 2rem;
        line-height: 1.5;
    }

    .c-h4 {
        margin-top: 14.9vw;
        font-size: 1.8rem;
    }

    .c-h5 {
        margin-top: 14.9vw;
        font-size: 1.4rem;
    }
}

/* ---- top margin of parts under headings ---- */
.c-heading+ :not(#dummy),
.c-index-h2+ :not(#dummy),
.c-index-h3+ :not(#dummy),
.c-h1+ :not(#dummy),
.c-h2+ :not(#dummy),
.c-h3+ :not(#dummy) {
    margin-top: 40px;
}

.c-index-h4+ :not(#dummy),
.c-index-h5+ :not(#dummy),
.c-h4+ :not(#dummy),
.c-h5+ :not(#dummy) {
    margin-top: 30px;
}

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

    .c-heading+ :not(#dummy),
    .c-index-h2+ :not(#dummy),
    .c-index-h3+ :not(#dummy),
    .c-h1+ :not(#dummy),
    .c-h2+ :not(#dummy),
    .c-h3+ :not(#dummy) {
        margin-top: 10vw;
    }

    .c-index-h4+ :not(#dummy),
    .c-index-h5+ :not(#dummy),
    .c-h4+ :not(#dummy),
    .c-h5+ :not(#dummy) {
        margin-top: 5vw;
    }
}

/* ---- annotation ---- */
.c-annotation {
    padding-top: 4px;
    font-size: 1.5rem;
    line-height: 2;
}

.c-index-h3+.c-annotation,
.c-index-h4+.c-annotation,
.c-index-h5+.c-annotation,
.c-h3+.c-annotation,
.c-h4+.c-annotation,
.c-h5+.c-annotation {
    margin-top: 0 !important;
}

.c-annotation:lang(en) {
    padding-top: 0;
    line-height: 1.5;
}

.c-annotation dt {
    margin-top: 12px;
    color: #2e2e2e;
    font-weight: 700;
}

.c-annotation dt:lang(en) {
    margin-top: 18px;
}

.c-annotation dd {
    color: #6a6a6a;
}

.c-annotation dd:lang(en) {
    margin-top: 3px;
}

@media screen and (max-width: 767.9px) {
    .c-annotation {
        font-size: 1.4rem;
    }
}

/* ---- reference ---- */
.c-reference {
    padding-top: 12px;
    color: #6a6a6a;
    font-size: 1.5rem;
    line-height: 1.6;
}

.c-index-h3+.c-reference,
.c-index-h4+.c-reference,
.c-index-h5+.c-reference,
.c-h3+.c-reference,
.c-h4+.c-reference,
.c-h5+.c-reference {
    margin-top: 0 !important;
}

.c-reference:lang(en) {
    line-height: 1.5;
}

.c-reference li {
    display: flex;
    margin-top: 0.4em;
}

.c-reference li span {
    width: 2.7em;
}

.c-reference li span:lang(en) {
    padding-top: 1px;
}

.c-reference li cite {
    width: calc(100% - 2.7em);
    font-style: normal;
}

@media screen and (max-width: 767.9px) {
    .c-reference {
        padding-top: 14px;
        font-size: 1.4rem;
    }
}

/*
--------------------------------
	text link
--------------------------------
*/
/* ---- basic link ---- */
a.c-link {
    background: linear-gradient(0deg, rgba(46, 46, 46, 0.2) 0%, rgba(46, 46, 46, 0.2) 5%, rgba(46, 46, 46, 0) 6%);
}

a.c-link:hover,
a.c-link:active {
    background: linear-gradient(0deg, rgb(46, 46, 46) 0%, rgb(46, 46, 46) 5%, rgba(46, 46, 46, 0) 6%);
}

/* ---- link with arrow and underline: 14px bold ---- */
a.c-arrow-link {
    display: inline-block;
    position: relative;
    padding-right: 18px;
    opacity: 1;
    color: #2e2e2e;
    font-size: 1.5rem;
    font-weight: 700;
    transition: opacity 0.2s;
    /*
  &::before {
  	content: "";
  	display: block;
  	position: absolute;
  	left: 0;
  	bottom: -1px;
  	width: 100%;
  	height: 1px;
  	background-color: g.$color_1;
  	transform-origin: 0 0;
  	transform: scale(0, 1);
  	transition: transform .24s ease-in-out;
  }
  */
}

a.c-arrow-link::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 6px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

a.c-arrow-link:hover,
a.c-arrow-link:active {
    color: #2e2e2e;
    opacity: 0.6;
    /*
  &::before {
  	transform: scale(1, 1);
  }
  */
}

a.c-arrow-link:hover::after,
a.c-arrow-link:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

a.c-arrow-link.outbound::after {
    right: -3px;
    top: calc(50% - 11px);
    width: 16px;
    height: 16px;
    background: url(../images/icon_outbound.svg) center no-repeat;
}

a.c-arrow-link.outbound:hover::after,
a.c-arrow-link.outbound:active::after {
    animation: none;
}

a.c-arrow-link.anchor::after {
    top: calc(50% - 7px);
    transform: translate3d(0, 0, 0) rotate(90deg);
}

a.c-arrow-link.anchor:hover::after,
a.c-arrow-link.anchor:active::after {
    animation: arrow-down 0.5s ease-in-out;
}

a.c-arrow-link.pdf::after {
    right: 0;
    top: calc(50% - 15px);
    width: 20px;
    height: 24px;
    background: url(../images/icon_pdf.svg) center no-repeat;
}

a.c-arrow-link.pdf:hover::after,
a.c-arrow-link.pdf:active::after {
    animation: none;
}

@media screen and (max-width: 767.9px) {
    a.c-arrow-link {
        padding: 12px 25px 12px 0;
        line-height: 1.3;
    }

    a.c-arrow-link::before {
        content: none;
    }

    a.c-arrow-link::after {
        top: calc(50% - 5px);
    }

    a.c-arrow-link:hover::before,
    a.c-arrow-link:active::before {
        transform: none;
    }

    a.c-arrow-link:hover::after,
    a.c-arrow-link:active::after {
        animation: none;
    }

    a.c-arrow-link.outbound::after {
        top: calc(50% - 8px);
    }

    a.c-arrow-link.anchor::after {
        top: calc(50% - 5px);
    }

    a.c-arrow-link.anchor:hover::after,
    a.c-arrow-link.anchor:active::after {
        animation: none;
    }
}

/* ---- link with arrow and underline: 16px regular ---- */
a.c-icon-link {
    display: inline-block;
    position: relative;
    padding: 0 25px 0 0;
    color: #2e2e2e;
    font-size: 1.6rem;
    line-height: 1.3;
    opacity: 1;
    transition: opacity 0.2s;
    /*
  &::before {
  	content: "";
  	display: block;
  	position: absolute;
  	left: 0;
  	bottom: -1px;
  	width: 100%;
  	height: 1px;
  	background-color: g.$color_1;
  	transform-origin: 0 0;
  	transform: scale(0, 1);
  	transition: transform .24s ease-in-out;
  }
  */
}

a.c-icon-link::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 6px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

a.c-icon-link:hover,
a.c-icon-link:active {
    color: #2e2e2e;
    opacity: 0.6;
    /*
  &::before {
  	transform: scale(1, 1);
  }
  */
}

a.c-icon-link:hover::after,
a.c-icon-link:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

a.c-icon-link.outbound::after {
    right: -3px;
    top: calc(50% - 11px);
    width: 16px;
    height: 16px;
    background: url(../images/icon_outbound.svg) center no-repeat;
}

a.c-icon-link.outbound:hover::after,
a.c-icon-link.outbound:active::after {
    animation: none;
}

a.c-icon-link.download::after {
    right: 0;
    top: calc(50% - 8px);
    width: 12px;
    height: 16px;
    background: url(../images/icon_download.svg) center no-repeat;
}

a.c-icon-link.download:hover::after,
a.c-icon-link.download:active::after {
    animation: none;
}

a.c-icon-link.anchor::after {
    top: calc(50% - 6px);
    transform: translate3d(0, 0, 0) rotate(90deg);
}

a.c-icon-link.anchor:hover::after,
a.c-icon-link.anchor:active::after {
    animation: arrow-down 0.5s ease-in-out;
}

a.c-icon-link.pdf {
    padding-right: 30px;
}

a.c-icon-link.pdf::after {
    right: 0;
    top: calc(50% - 11px);
    width: 16px;
    height: 19px;
    background-image: url(../images/icon_pdf.svg);
    background-size: contain;
}

a.c-icon-link.pdf:hover::after,
a.c-icon-link.pdf:active::after {
    animation: none;
}

@media screen and (max-width: 767.9px) {
    a.c-icon-link {
        font-size: 1.4rem;
    }

    a.c-icon-link::before {
        content: none;
    }

    a.c-icon-link:hover::before,
    a.c-icon-link:active::before {
        transform: none;
    }

    a.c-icon-link:hover::after,
    a.c-icon-link:active::after {
        animation: none;
    }

    a.c-icon-link.anchor:hover::after,
    a.c-icon-link.anchor:active::after {
        animation: none;
    }
}

/* ---- DAY2: link text in panels ---- */
.c-link-text-d2 {
    position: relative;
    padding-right: 25px;
    color: #2e2e2e;
    font-size: 1.4rem;
    font-weight: 700;
    text-align: right;
}

.c-link-text-d2::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

a:hover .c-link-text-d2,
a:active .c-link-text-d2 {
    color: #2e2e2e;
}

a:hover .c-link-text-d2::after,
a:active .c-link-text-d2::after {
    animation: arrow-right 0.5s ease-in-out;
}

/*
--------------------------------
	list
--------------------------------
*/
/* ---- unordered list ---- */
ul.c-list {
    margin-top: 50px;
    color: #2e2e2e;
    font-size: 1.6rem;
    line-height: 2;
}

ul.c-list:lang(en) {
    line-height: 1.5;
}

ul.c-list li {
    position: relative;
    margin-top: 0.4em;
    padding-left: 1em;
}

ul.c-list li:lang(en) {
    margin-top: 1em;
}

ul.c-list li:first-child {
    margin-top: 0;
}

ul.c-list li::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: calc(1em - 2px);
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background-color: #2e2e2e;
}

ul.c-list li:lang(en)::before {
    top: calc(0.75em - 2px);
}

ul.c-list ul.c-list {
    margin: 0.4em 0 0 0.3em;
}

ul.c-list ul.c-list:lang(en) {
    margin-top: 1em;
}

ul.c-list ul.c-list li::before {
    top: calc(1em - 1.5px);
    width: 3px;
    height: 3px;
    background-color: #808080;
}

ul.c-list ul.c-list:lang(en) li::before {
    top: calc(0.75em - 2px);
}

@media screen and (max-width: 767.9px) {
    ul.c-list {
        margin-top: 8.5vw;
        font-size: 1.4rem;
    }
}

/* ---- ordered list ---- */
ol.c-list {
    margin-top: 50px;
    color: #2e2e2e;
    font-size: 1.6rem;
    line-height: 2;
    counter-reset: count;
}

ol.c-list:lang(en) {
    line-height: 1.5;
}

ol.c-list li {
    position: relative;
    margin-top: 0.4em;
    padding-left: 1.3em;
}

ol.c-list li:lang(en) {
    margin-top: 1em;
}

ol.c-list li:first-child {
    margin-top: 0;
}

ol.c-list li::before {
    content: counter(count) ".";
    counter-increment: count;
    position: absolute;
    left: 0;
    top: 0;
}

ol.c-list ol.c-list {
    margin: 0.4em 0 0 0.3em;
}

ol.c-list ol.c-list:lang(en) {
    margin-top: 1em;
}

ol.c-list ol.c-list li::before {
    color: #808080;
}

@media screen and (max-width: 767.9px) {
    ol.c-list {
        margin-top: 8.5vw;
        font-size: 1.4rem;
    }
}

/*
--------------------------------
	image
--------------------------------
*/
/* ---- image ---- */
.c-image {
    display: block;
    margin-top: 50px;
}

.c-image img {
    max-width: 100%;
    border-radius: 20px;
}

.c-image.full img {
    width: 100%;
}

.c-image.has-caption {
    display: table;
}

.c-image.has-caption.center {
    margin: 0 auto;
}

.c-image.has-caption.right {
    margin: 0 0 0 auto;
}

.c-image.has-caption .caption {
    display: table-caption;
    caption-side: bottom;
    margin-top: 1em;
    color: #808080;
    font-size: 1.4rem;
    line-height: 1.4;
    text-align: left;
}

@media screen and (max-width: 767.9px) {
    .c-image {
        margin-top: 8.5vw;
    }

    .c-image.has-caption .caption {
        font-size: 1.3rem;
    }
}

/* ---- image + text ---- */
.c-img-set {
    margin-top: 50px;
    overflow: hidden;
}

.c-img-set .c-image,
.c-img-set>img {
    float: left;
    max-width: max(50% - 1.702vw, 50% - 25px);
    margin: 0 min(3.4vw, 50px) 3% 0;
    border-radius: 20px;
}

.c-img-set.img-right .c-image,
.c-img-set.img-right>img {
    float: right;
    margin: 0 0 3% min(3.4vw, 50px);
}

.c-img-set>p {
    margin-top: -0.5em;
    overflow: hidden;
    font-size: 1.6rem;
    line-height: 2;
    overflow-wrap: break-word;
}

.c-img-set>p:lang(en) {
    margin-top: -0.2em;
    line-height: 1.5;
}

.c-img-set.float>p {
    overflow: visible;
}

@media screen and (max-width: 767.9px) {
    .c-img-set {
        margin-top: 8.5vw;
    }

    .c-img-set .c-image,
    .c-img-set>img {
        float: none;
        max-width: 100%;
        margin: 0 0 5vw 0;
    }

    .c-img-set.img-right .c-image,
    .c-img-set.img-right>img {
        float: none;
        margin: 0 0 5vw 0;
    }

    .c-img-set>p {
        margin-top: 0;
        overflow: visible;
        font-size: 1.4rem;
    }
}

/*
--------------------------------
	video
--------------------------------
*/
/* ---- embedded video ---- */
.c-video {
    margin-top: 50px;
}

.c-video .player {
    width: 100%;
    max-width: 640px;
    aspect-ratio: 16/9;
    margin: 0 auto;
}

.c-video iframe {
    width: 100%;
    height: 100%;
}

@media screen and (max-width: 767.9px) {
    .c-video {
        margin-top: 8.5vw;
    }
}

/*
--------------------------------
	button
--------------------------------
*/
.c-button {
    display: inline-block;
    position: relative;
    width: 336px;
    max-width: 100%;
    padding: 15px 50px 12px;
    border: 1px solid #2e2e2e;
    border-radius: 8px;
    background-color: #2e2e2e;
    color: #fff;
    font-size: 1.5rem;
    font-weight: bold;
    line-height: 1.3;
    text-align: center;
    transition: background-color 0.2s ease-out, color 0.2s ease-out;
}

.c-button+.c-button {
    margin-left: 40px;
}

.c-button.full {
    width: 100%;
    padding: 24px 50px 21px;
    border-radius: 12px;
}

.c-button.large {
    padding: 35px 50px 33px;
    font-size: 2rem;
}

.c-button:link,
.c-button:visited {
    color: #fff;
}

.c-button::after {
    content: "";
    display: block;
    position: absolute;
    right: 24px;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow_wht.svg) center no-repeat;
}

.c-button.back::after {
    content: none;
}

.c-button.pdf::after {
    right: 16px;
    top: calc(50% - 11px);
    width: 18px;
    height: 22px;
    background-image: url(../images/icon_pdf_wht.svg);
    background-size: contain;
    background-position: 50%;
    background-repeat: no-repeat;
}

.c-button.none::after {
    content: none;
}

.c-button:hover,
.c-button:active {
    background-color: #fff;
    color: #2e2e2e;
    /*
  &.back::after {
    animation: arrow-left .5s ease-in-out;
  }
  */
}

.c-button:hover::after,
.c-button:active::after {
    background-image: url(../images/icon_arrow.svg);
    animation: arrow-right 0.5s ease-in-out;
}

.c-button:hover.pdf::after,
.c-button:active.pdf::after {
    background-image: url(../images/icon_pdf.svg);
    animation: none;
}

.c-button:hover.none::after,
.c-button:active.none::after {
    animation: none;
}

.c-button.compact {
    display: inline-block;
    width: auto;
    min-width: 160px;
    padding: 15px 40px 12px;
    /*
  &.back::after {
    right: auto;
    left: 12px;
  }
  */
}

.c-button.compact::after {
    right: 12px;
}

.c-button.compact.pdf::after {
    right: 6px;
}

.c-button.gray {
    border: 1px solid #f4f4f4;
    background-color: #f4f4f4;
}

.c-button.gray::after {
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-button.gray:link,
.c-button.gray:visited {
    color: #2e2e2e;
}

.c-button.gray:hover,
.c-button.gray:active {
    background-color: #eaeaea;
}

@media screen and (max-width: 767.9px) {
    .c-button+.c-button {
        margin: 16px 0 0;
    }

    .c-button.large {
        padding: 22px 50px 20px;
        font-size: 1.5rem;
    }

    .c-button.compact {
        min-width: 130px;
        margin-right: 8px;
        padding: 15px 25px 12px;
    }
}

@media (hover: none) {
    .c-button {
        transition: none;
    }

    .c-button:hover,
    .c-button:active {
        background-color: #2e2e2e;
        color: #fff;
        /*
    &.back::after {
      animation: none;
    }
    */
    }

    .c-button:hover::after,
    .c-button:active::after {
        background-image: url(../images/icon_arrow_wht.svg);
        animation: none;
    }

    .c-button:hover.pdf::after,
    .c-button:active.pdf::after {
        background-image: url(../images/icon_pdf_wht.svg);
        animation: none;
    }

    .c-button.gray::after {
        background-image: url(../images/icon_arrow.svg);
        animation: none;
    }

    .c-button.gray:hover,
    .c-button.gray:active {
        background-color: #f4f4f4;
    }
}

/*
--------------------------------
	frame
--------------------------------
*/
/* ---- frame ---- */
/*
.c-frame,
.c-info {

	margin-top: 50px;
	padding: 3.2% 3.6%;
	background-color: g.$color_bg;
	border-radius: 4px;

	> :first-child {
		margin-top: 0;
	}

	&.bg-yellow { background-color: #fffbe7; }
	&.bg-red { background-color: #fff6f8; }
	&.bg-green { background-color: #f2fdf7; }
	&.bg-blue { background-color: #ecfcff; }

	&.border-gray { border: 1px solid #eee; }
	&.border-yellow { border: 1px solid #ffdc5d; }
	&.border-red { border: 1px solid #f03; }
	&.border-green { border: 1px solid #06c755; }
	&.border-blue { border: 1px solid #6080fb; }

	.bg-gray & {
		background-color: #fff;
	}

}

@include g.sp {

	.c-frame,
	.c-info {
		margin-top: g.$sp_margin_32;
		padding: calc(5vw * .8) g.$side_margin_sp;
	}

}
*/
/* ---- DAY2: frame (replaced) ---- */
.c-frame,
.c-info {
    margin-top: 50px;
    padding: 3.2% 5%;
    border: 2px solid #7A99FF;
    border-radius: 20px;
}

.c-frame> :first-child,
.c-info> :first-child {
    margin-top: 0;
}

.c-frame.no-border,
.c-info.no-border {
    border-style: none;
    background-color: #f4f4f4;
}

.bg-gray .c-frame.no-border,
.bg-gray .c-info.no-border {
    background-color: #fff;
}

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

    .c-frame,
    .c-info {
        border-width: 1px;
        margin-top: 8.5vw;
        padding: 6.5vw 5vw;
    }
}

/*
--------------------------------
	table
--------------------------------
*/
/* ---- table ---- */
.c-table {
    table-layout: fixed;
    width: 100%;
    margin-top: 50px;
    border-top: 1px solid #d9d9d9;
    border-left: 1px solid #d9d9d9;
    color: #2e2e2e;
    word-break: break-all;
}

.c-table.non-fixed {
    table-layout: auto;
}

.c-table-scroll .c-table {
    margin-top: 0;
}

.c-table th {
    padding: 16px 16px 14px;
    border-right: 1px solid #d9d9d9;
    border-bottom: 1px solid #d9d9d9;
    background-color: #f4f4f4;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.6;
    vertical-align: middle;
}

.c-table th:lang(en) {
    line-height: 1.5;
}

.c-table td {
    padding: 16px 16px 14px;
    border-right: 1px solid #d9d9d9;
    border-bottom: 1px solid #d9d9d9;
    background-color: #fff;
    font-size: 1.4rem;
    line-height: 1.6;
}

.c-table td:lang(en) {
    line-height: 1.5;
}

.bg-gray .c-table th {
    background-color: #eaeaea;
}

.c-table-scroll {
    margin-top: 50px;
}

@media screen and (max-width: 767.9px) {
    .c-table {
        margin-top: 8.5vw;
    }

    .c-table-scroll .c-table {
        width: 1104px;
        margin-top: 0;
    }

    .c-table.sp-break {
        display: block;
    }

    .c-table.sp-break thead,
    .c-table.sp-break tbody,
    .c-table.sp-break tr,
    .c-table.sp-break th,
    .c-table.sp-break td {
        display: block;
    }

    .c-table-scroll {
        margin-top: 8.5vw;
        padding-bottom: 30px;
        overflow-x: scroll;
    }

    .c-table-scroll::-webkit-scrollbar {
        height: 8px;
    }

    .c-table-scroll::-webkit-scrollbar-track {
        background-color: transparent;
    }

    .c-table-scroll::-webkit-scrollbar-thumb {
        background-color: #2e2e2e;
        border-radius: 4px;
    }

    .c-table-scroll th.center {
        text-align: left;
    }
}

/* ---- dl in table ---- */
.c-table td dl dt {
    margin-top: 1em;
    font-weight: 700;
}

.c-table td dl dt:first-child {
    margin-top: 0;
}

.c-table td dl dd {
    margin-top: 0.5em;
}

/* ---- borderless table ---- */
.c-borderless-table {
    margin-top: 50px;
}

.c-borderless-table>tbody>tr>th {
    width: 150px;
    padding: 0 30px 40px 0;
    font-size: 1.6rem;
    font-weight: 700;
    white-space: nowrap;
    line-height: 2;
    vertical-align: top;
}

.c-borderless-table>tbody>tr>td {
    padding: 0 0 40px;
    font-size: 1.6rem;
    line-height: 2;
}

.c-borderless-table>tbody>tr>td> :first-child {
    margin-top: 0 !important;
}

.c-borderless-table>tbody>tr>td .full-width {
    margin-left: -150px;
}

.c-borderless-table>tbody>tr:last-child>th,
.c-borderless-table>tbody>tr:last-child>td {
    padding-bottom: 0;
}

.c-borderless-table.border {
    border-top: 1px solid #eee;
}

.c-borderless-table.border>tbody>tr>th {
    padding: 32px 30px 32px 0;
    border-bottom: 1px solid #eee;
}

.c-borderless-table.border>tbody>tr>td {
    padding: 32px 0;
    border-bottom: 1px solid #eee;
}

.c-borderless-table.border>tbody>tr:last-child>th,
.c-borderless-table.border>tbody>tr:last-child>td {
    padding-bottom: 32px;
}

@media screen and (max-width: 767.9px) {
    .c-borderless-table {
        display: block;
        margin-top: 8.5vw;
    }

    .c-borderless-table>tbody,
    .c-borderless-table>tbody>tr {
        display: block;
    }

    .c-borderless-table>tbody>tr>th {
        display: block;
        width: auto;
        padding: 0;
    }

    .c-borderless-table>tbody>tr>td {
        display: block;
        padding: 10px 0 20px;
        font-size: 1.4rem;
    }

    .c-borderless-table>tbody>tr>td .full-width {
        margin-left: 0;
    }

    .c-borderless-table.border>tbody>tr>th {
        padding: 20px 0 0;
        border-bottom-style: none;
    }

    .c-borderless-table.border>tbody>tr>td {
        padding: 10px 0 20px;
    }

    .c-borderless-table.border>tbody>tr:last-child>th {
        padding-bottom: 0;
    }

    .c-borderless-table.border>tbody>tr:last-child>td {
        padding-bottom: 20px;
    }
}

/*
--------------------------------
	ScrollHint
--------------------------------
*/
@keyframes scroll-hint-appear {
    0% {
        transform: translateX(40px);
        opacity: 0;
    }

    10% {
        opacity: 1;
    }

    50%,
    100% {
        transform: translateX(-40px);
        opacity: 0;
    }
}

.scroll-hint.is-right-scrollable {
    background: linear-gradient(270deg, rgba(0, 0, 0, 0.15) 0, rgba(0, 0, 0, 0) 16px, rgba(0, 0, 0, 0));
}

.scroll-hint.is-right-scrollable.is-left-scrollable {
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.15) 0, rgba(0, 0, 0, 0) 16px, rgba(0, 0, 0, 0)), linear-gradient(270deg, rgba(0, 0, 0, 0.15) 0, rgba(0, 0, 0, 0) 16px, rgba(0, 0, 0, 0));
}

.scroll-hint.is-left-scrollable {
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.15) 0, rgba(0, 0, 0, 0) 16px, rgba(0, 0, 0, 0));
}

.scroll-hint-icon {
    position: absolute;
    top: calc(50% - 56px);
    left: calc(50% - 60px);
    box-sizing: border-box;
    width: 120px;
    height: 82px;
    border-radius: 5px;
    transition: opacity 0.3s;
    opacity: 0;
    background: rgba(0, 0, 0, 0.7);
    text-align: center;
    padding: 20px 10px 10px 10px;
}

.scroll-hint-icon-wrap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    max-height: 100%;
    pointer-events: none;
}

.scroll-hint-text {
    font-size: 10px;
    color: #FFF;
    margin-top: 5px;
}

.scroll-hint-icon-wrap.is-active .scroll-hint-icon {
    opacity: 0.8;
}

.scroll-hint-icon:before {
    display: inline-block;
    width: 40px;
    height: 40px;
    color: #FFF;
    vertical-align: middle;
    text-align: center;
    content: "";
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat;
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNS43NyIgaGVpZ2h0PSIzMC41MiIgdmlld0JveD0iMCAwIDI1Ljc3IDMwLjUyIj48dGl0bGU+44Ki44K744OD44OIIDM8L3RpdGxlPjxnIGlkPSLjg6zjgqTjg6Tjg7xfMiIgZGF0YS1uYW1lPSLjg6zjgqTjg6Tjg7wgMiI+PGcgaWQ9IuODrOOCpOODpOODvF8xLTIiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8IDEiPjxwYXRoIGQ9Ik0yMS4zMywzMC41Mkg3Ljg1QTEuNTUsMS41NSwwLDAsMSw2LjMsMjlhMTIuNDYsMTIuNDYsMCwwLDAtLjYzLTQuNDIsMjUuMTYsMjUuMTYsMCwwLDAtNC4yNS01bC0uMDYtLjA2QTUsNSwwLDAsMSwwLDE1Ljg2YTMuNjQsMy42NCwwLDAsMSwxLjE3LTIuNjIsMy42MywzLjYzLDAsMCwxLDUuMTQuMDdWMy43N2EzLjc3LDMuNzcsMCwxLDEsNy41NCwwVjguMzNhMy4zNSwzLjM1LDAsMCwxLDEuMjYsMCwzLDMsMCwwLDEsMiwxLjIyLDMuNSwzLjUsMCwwLDEsMi0uMDYsMy4yMSwzLjIxLDAsMCwxLDIsMS41NCwzLjc0LDMuNzQsMCwwLDEsMywuNDdBNC4yMSw0LjIxLDAsMCwxLDI1Ljc0LDE1YzAsLjExLDAsLjI3LDAsLjQ2YTE5LjI2LDE5LjI2LDAsMCwxLS44NCw3Yy0uMTQuMzgtLjM2LjgxLS41NiwxLjIybC0uMTEuMjJjMCwuMDctLjA5LjE0LS4xNC4yMWE3LjEzLDcuMTMsMCwwLDAtMS4xNywyLjE3Yy0uMDYuNTYtLjA2LDIuMTUtLjA1LDIuNzFBMS41NSwxLjU1LDAsMCwxLDIxLjMzLDMwLjUyWk04LjYxLDI4LjIxaDEyYzAtLjcxLDAtMS43MS4wNy0yLjIzYTguNzQsOC43NCwwLDAsMSwxLjU5LTMuMjVsLjA2LS4xMmExMCwxMCwwLDAsMCwuNDYtMSwxNi44LDE2LjgsMCwwLDAsLjctNi4xMmMwLS4yMywwLS40MSwwLS41NGgwYTIsMiwwLDAsMC0uNjQtMS41MiwxLjMzLDEuMzMsMCwwLDAtMS41NS4wOCwxLjEzLDEuMTMsMCwwLDEtMS4xOC4yOCwxLjE1LDEuMTUsMCwwLDEtLjc4LS45NCwxLjI2LDEuMjYsMCwwLDAtLjc1LTEuMTEsMSwxLDAsMCwwLTEuMTEuMjhsLS4xLjFhMS4xNSwxLjE1LDAsMCwxLTEuMTkuMjksMS4xNiwxLjE2LDAsMCwxLS43OC0uOTVjLS4wOS0uNjgtLjIxLS43Ny0uNy0uODdhLjgyLjgyLDAsMCwwLTEsLjQ4LDEuMTYsMS4xNiwwLDAsMS0yLjE2LS41OFYzLjc3YTEuNDYsMS40NiwwLDEsMC0yLjkyLDB2Ny44NWwwLDQuMzNhMS4xNywxLjE3LDAsMCwxLS44MywxLjExLDEuMTUsMS4xNSwwLDAsMS0xLjItLjM1bC0xLS45MWMtLjQ3LS40Mi0uNzMtLjY2LS44NC0uNzdhMS4zNSwxLjM1LDAsMCwwLTItLjEyTDIuNywxNWExLjMyLDEuMzIsMCwwLDAtLjM5LDFBMi41NywyLjU3LDAsMCwwLDMsMTcuODVsMCwwYTI3LjI0LDI3LjI0LDAsMCwxLDQuNyw1LjYyQTEyLjYzLDEyLjYzLDAsMCwxLDguNjEsMjguMjFaTTIzLjIsMjMuMzVaTTYuNTEsMTYuNTlaIiBmaWxsPSIjZmZmIi8+PC9nPjwvZz48L3N2Zz4=);
}

.scroll-hint-icon:after {
    content: "";
    width: 34px;
    height: 14px;
    display: block;
    position: absolute;
    top: 10px;
    left: 50%;
    margin-left: -20px;
    background-repeat: no-repeat;
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMy4yOSIgaGVpZ2h0PSIxMi4wMiIgdmlld0JveD0iMCAwIDMzLjI5IDEyLjAyIj48dGl0bGU+44Ki44K744OD44OIIDE8L3RpdGxlPjxnIGlkPSLjg6zjgqTjg6Tjg7xfMiIgZGF0YS1uYW1lPSLjg6zjgqTjg6Tjg7wgMiI+PGcgaWQ9IuODrOOCpOODpOODvF8xLTIiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8IDEiPjxsaW5lIHgxPSIxLjg1IiB5MT0iNi4wMSIgeDI9IjEwLjQiIHkyPSI2LjAxIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTEwLjQsNy4xN0gxLjg1YTEuMTYsMS4xNiwwLDEsMSwwLTIuMzFIMTAuNGExLjE2LDEuMTYsMCwxLDEsMCwyLjMxWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik03LjQsMTJhMS4xNSwxLjE1LDAsMCwxLS43Mi0uMjVsLTYuMjUtNUExLjIsMS4yLDAsMCwxLDAsNS44NywxLjE0LDEuMTQsMCwwLDEsLjQ2LDVMNi43LjIzQTEuMTYsMS4xNiwwLDAsMSw4LjEsMi4wOEwzLDUuOTEsOC4xMiwxMEExLjE2LDEuMTYsMCwwLDEsNy40LDEyWiIgZmlsbD0iI2ZmZiIvPjxsaW5lIHgxPSIzMS40NSIgeTE9IjYuMDEiIHgyPSIyMi44OSIgeTI9IjYuMDEiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMzEuNDUsNy4xN0gyMi44OWExLjE2LDEuMTYsMCwxLDEsMC0yLjMxaDguNTZhMS4xNiwxLjE2LDAsMCwxLDAsMi4zMVoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMjUuOSwxMmExLjE4LDEuMTgsMCwwLDEtLjkxLS40M0ExLjE3LDEuMTcsMCwwLDEsMjUuMTcsMTBsNS4wOS00LjA1TDI1LjIsMi4wOEExLjE2LDEuMTYsMCwwLDEsMjYuNTkuMjNMMzIuODQsNWExLjE2LDEuMTYsMCwwLDEsLjQ1LjkxLDEuMTQsMS4xNCwwLDAsMS0uNDMuOTJsLTYuMjQsNUExLjE3LDEuMTcsMCwwLDEsMjUuOSwxMloiIGZpbGw9IiNmZmYiLz48L2c+PC9nPjwvc3ZnPg==);
    opacity: 0;
    transition-delay: 2.4s;
}

.scroll-hint-icon-wrap.is-active .scroll-hint-icon:after {
    opacity: 1;
}

.scroll-hint-icon-wrap.is-active .scroll-hint-icon:before {
    animation: scroll-hint-appear 1.2s linear;
    animation-iteration-count: 2;
}

.scroll-hint-icon-white {
    background-color: #FFF;
    box-shadow: 0 4px 5px rgba(0, 0, 0, 0.4);
}

.scroll-hint-icon-white:before {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNS43NyIgaGVpZ2h0PSIzMC41MiIgdmlld0JveD0iMCAwIDI1Ljc3IDMwLjUyIj48dGl0bGU+44Ki44K744OD44OIIDQ8L3RpdGxlPjxnIGlkPSLjg6zjgqTjg6Tjg7xfMiIgZGF0YS1uYW1lPSLjg6zjgqTjg6Tjg7wgMiI+PGcgaWQ9IuODrOOCpOODpOODvF8xLTIiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8IDEiPjxwYXRoIGQ9Ik0yMS4zMywzMC41Mkg3Ljg1QTEuNTUsMS41NSwwLDAsMSw2LjMsMjlhMTIuNDYsMTIuNDYsMCwwLDAtLjYzLTQuNDIsMjUuMTYsMjUuMTYsMCwwLDAtNC4yNS01bC0uMDYtLjA2QTUsNSwwLDAsMSwwLDE1Ljg2YTMuNjQsMy42NCwwLDAsMSwxLjE3LTIuNjIsMy42MywzLjYzLDAsMCwxLDUuMTQuMDdWMy43N2EzLjc3LDMuNzcsMCwxLDEsNy41NCwwVjguMzNhMy4zNSwzLjM1LDAsMCwxLDEuMjYsMCwzLDMsMCwwLDEsMiwxLjIyLDMuNSwzLjUsMCwwLDEsMi0uMDYsMy4yMSwzLjIxLDAsMCwxLDIsMS41NCwzLjc0LDMuNzQsMCwwLDEsMywuNDdBNC4yMSw0LjIxLDAsMCwxLDI1Ljc0LDE1YzAsLjExLDAsLjI3LDAsLjQ2YTE5LjI2LDE5LjI2LDAsMCwxLS44NCw3Yy0uMTQuMzgtLjM2LjgxLS41NiwxLjIybC0uMTEuMjJjMCwuMDctLjA5LjE0LS4xNC4yMWE3LjEzLDcuMTMsMCwwLDAtMS4xNywyLjE3Yy0uMDYuNTYtLjA2LDIuMTUtLjA1LDIuNzFBMS41NSwxLjU1LDAsMCwxLDIxLjMzLDMwLjUyWk04LjYxLDI4LjIxaDEyYzAtLjcxLDAtMS43MS4wNy0yLjIzYTguNzQsOC43NCwwLDAsMSwxLjU5LTMuMjVsLjA2LS4xMmExMCwxMCwwLDAsMCwuNDYtMSwxNi44LDE2LjgsMCwwLDAsLjctNi4xMmMwLS4yMywwLS40MSwwLS41NGgwYTIsMiwwLDAsMC0uNjQtMS41MiwxLjMzLDEuMzMsMCwwLDAtMS41NS4wOCwxLjEzLDEuMTMsMCwwLDEtMS4xOC4yOCwxLjE1LDEuMTUsMCwwLDEtLjc4LS45NCwxLjI2LDEuMjYsMCwwLDAtLjc1LTEuMTEsMSwxLDAsMCwwLTEuMTEuMjhsLS4xLjFhMS4xNSwxLjE1LDAsMCwxLTEuMTkuMjksMS4xNiwxLjE2LDAsMCwxLS43OC0uOTVjLS4wOS0uNjgtLjIxLS43Ny0uNy0uODdhLjgyLjgyLDAsMCwwLTEsLjQ4LDEuMTYsMS4xNiwwLDAsMS0yLjE2LS41OFYzLjc3YTEuNDYsMS40NiwwLDEsMC0yLjkyLDB2Ny44NWwwLDQuMzNhMS4xNywxLjE3LDAsMCwxLS44MywxLjExLDEuMTUsMS4xNSwwLDAsMS0xLjItLjM1bC0xLS45MWMtLjQ3LS40Mi0uNzMtLjY2LS44NC0uNzdhMS4zNSwxLjM1LDAsMCwwLTItLjEyTDIuNywxNWExLjMyLDEuMzIsMCwwLDAtLjM5LDFBMi41NywyLjU3LDAsMCwwLDMsMTcuODVsMCwwYTI3LjI0LDI3LjI0LDAsMCwxLDQuNyw1LjYyQTEyLjYzLDEyLjYzLDAsMCwxLDguNjEsMjguMjFaTTIzLjIsMjMuMzVaTTYuNTEsMTYuNTlaIi8+PC9nPjwvZz48L3N2Zz4=);
}

.scroll-hint-icon-white:after {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMy4yOSIgaGVpZ2h0PSIxMi4wMiIgdmlld0JveD0iMCAwIDMzLjI5IDEyLjAyIj48dGl0bGU+44Ki44K744OD44OIIDI8L3RpdGxlPjxnIGlkPSLjg6zjgqTjg6Tjg7xfMiIgZGF0YS1uYW1lPSLjg6zjgqTjg6Tjg7wgMiI+PGcgaWQ9IuODrOOCpOODpOODvF8xLTIiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8IDEiPjxsaW5lIHgxPSIxLjg1IiB5MT0iNi4wMSIgeDI9IjEwLjQiIHkyPSI2LjAxIi8+PHBhdGggZD0iTTEwLjQsNy4xN0gxLjg1YTEuMTYsMS4xNiwwLDEsMSwwLTIuMzFIMTAuNGExLjE2LDEuMTYsMCwxLDEsMCwyLjMxWiIvPjxwYXRoIGQ9Ik03LjQsMTJhMS4xNSwxLjE1LDAsMCwxLS43Mi0uMjVsLTYuMjUtNUExLjIsMS4yLDAsMCwxLDAsNS44NywxLjE0LDEuMTQsMCwwLDEsLjQ2LDVMNi43LjIzQTEuMTYsMS4xNiwwLDAsMSw4LjEsMi4wOEwzLDUuOTEsOC4xMiwxMEExLjE2LDEuMTYsMCwwLDEsNy40LDEyWiIvPjxsaW5lIHgxPSIzMS40NSIgeTE9IjYuMDEiIHgyPSIyMi44OSIgeTI9IjYuMDEiLz48cGF0aCBkPSJNMzEuNDUsNy4xN0gyMi44OWExLjE2LDEuMTYsMCwxLDEsMC0yLjMxaDguNTZhMS4xNiwxLjE2LDAsMCwxLDAsMi4zMVoiLz48cGF0aCBkPSJNMjUuOSwxMmExLjE4LDEuMTgsMCwwLDEtLjkxLS40M0ExLjE3LDEuMTcsMCwwLDEsMjUuMTcsMTBsNS4wOS00LjA1TDI1LjIsMi4wOEExLjE2LDEuMTYsMCwwLDEsMjYuNTkuMjNMMzIuODQsNWExLjE2LDEuMTYsMCwwLDEsLjQ1LjkxLDEuMTQsMS4xNCwwLDAsMS0uNDMuOTJsLTYuMjQsNUExLjE3LDEuMTcsMCwwLDEsMjUuOSwxMloiLz48L2c+PC9nPjwvc3ZnPg==);
}

.scroll-hint-icon-white .scroll-hint-text {
    color: #2e2e2e;
}

/*
--------------------------------
	article list
--------------------------------
*/
/* ---- news: press release archive ---- */
.c-article-list-topics {
    margin-top: 50px;
    border-top: 1px solid #eee;
}

.c-article-list-topics li {
    border-bottom: 1px solid #eee;
}

.c-article-list-topics.col-2 {
    display: flex;
    flex-wrap: wrap;
    -moz-column-gap: min(3.4vw, 50px);
    column-gap: min(3.4vw, 50px);
    border-top-style: none;
}

.c-article-list-topics.col-2 li {
    width: max(50% - 1.702vw, 50% - 25px);
}

.c-article-list-topics.col-2 li:nth-child(-n+2) {
    border-top: 1px solid #eee;
}

.c-article-list-topics a {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    position: relative;
    padding: 27px 30px 23px;
    background-color: rgba(234, 234, 234, 0);
    color: #333;
    transition: background-color 0.2s ease-out;
    /*
  &::after {
    content: "";
    display: block;
    position: absolute;
    right: 30px;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
  }
  */
}

.c-article-list-topics a:hover,
.c-article-list-topics a:active {
    background-color: rgb(234, 234, 234);
    /*
  &::after {
    animation: arrow-right .5s ease-in-out;
  }
  */
}

.c-article-list-topics a time {
    min-width: 8.5em;
    color: #2e2e2e;
    font-size: 1.3rem;
}

.c-article-list-topics a time:lang(en) {
    min-width: 5.5em;
}

.c-article-list-topics a .category {
    color: #2e2e2e;
    font-size: 1.2rem;
}

.c-article-list-topics a .category::before {
    content: "｜";
    display: inline-block;
    margin: 0 0.7em;
    transform: scale(1, 0.8);
}

.c-article-list-topics a p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    width: 100%;
    margin-top: 0.4em;
    font-weight: 700;
    line-height: 1.75;
}

.c-article-list-topics a p:lang(en) {
    line-height: 1.4;
}

.c-article-list-topics a.pdf {
    padding: 27px 60px 23px 30px;
}

.c-article-list-topics a.pdf::after {
    content: "";
    display: block;
    position: absolute;
    right: 30px;
    top: calc(50% - 12px);
    width: 20px;
    height: 24px;
    background-image: url(../images/icon_pdf.svg);
    background-size: contain;
}

.c-article-list-topics.short-desc a p {
    -webkit-line-clamp: 1;
}

.c-article-list-topics .no-article {
    padding: 80px 30px;
    color: #333;
    font-size: 1.6rem;
    line-height: 2;
}

.c-article-list-topics .no-article:lang(en) {
    line-height: 1.5;
}

@media screen and (max-width: 767.9px) {
    .c-article-list-topics {
        margin-top: 8.5vw;
    }

    .body-inner>.c-article-list-topics {
        margin-left: -5vw;
        margin-right: -5vw;
    }

    .c-article-list-topics.col-2 {
        display: block;
        border-top: 1px solid #eee;
    }

    .c-article-list-topics.col-2 li {
        width: auto;
    }

    .c-article-list-topics.col-2 li:nth-child(-n+2) {
        border-top-style: none;
    }

    .c-article-list-topics a {
        padding: 27px 5vw 23px;
        transition: none;
        /*
    &::after {
      right: g.$side_margin_sp;
    }
    */
    }

    .c-article-list-topics a:hover,
    .c-article-list-topics a:active {
        background-color: rgba(234, 234, 234, 0);
        /*
    &::after {
      animation: none;
    }
    */
    }

    .c-article-list-topics a p {
        margin-top: 0.6em;
    }

    .c-article-list-topics a.pdf {
        padding: 27px calc(5vw + 35px) 23px 5vw;
    }

    .c-article-list-topics a.pdf::after {
        right: 5vw;
    }

    .c-article-list-topics.short-desc a p {
        -webkit-line-clamp: 3;
    }

    .c-article-list-topics .no-article {
        padding: 25vw 5vw;
        font-size: 1.5rem;
        text-align: center;
    }
}

/* ---- recruit: event ---- */
.c-article-list-event {
    margin-top: 50px;
    border-top: 1px solid #eee;
}

.c-article-list-event>li {
    position: relative;
    border-bottom: 1px solid #eee;
}

.c-article-list-event>li>a {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 20px 30px 16px;
    color: #333;
    /*
  &::after {
    content: "";
    display: block;
    position: absolute;
    right: 30px;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
  }
  */
}

.c-article-list-event>li>a::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    opacity: 0;
    transition: opacity 0.2s ease-out;
}

.c-article-list-event>li>a time {
    display: inline-block;
    padding: 4px 0;
    color: #2e2e2e;
    font-size: 1.3rem;
}

.c-article-list-event>li>a .venue {
    display: inline-block;
    color: #2e2e2e;
    font-size: 1.2rem;
}

.c-article-list-event>li>a .venue::before {
    content: "…";
    display: inline-block;
    padding: 0 0.8em;
    transform: rotate(90deg);
}

.c-article-list-event>li>a p {
    width: 100%;
    margin-top: 0.4em;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4;
    /*
  span {
    background: linear-gradient(0deg, rgba(46,46,46,0) 0%, rgba(46,46,46,0) 2%, rgba(46,46,46,0) 3%);
  }
  */
}

.c-article-list-event>li>a:hover,
.c-article-list-event>li>a:active {
    /*
  &::after {
    animation: arrow-right .5s ease-in-out;
  }
  */
}

.c-article-list-event>li>a:hover::after,
.c-article-list-event>li>a:active::after {
    opacity: 0.07;
}

.c-article-list-event>li>a:hover time,
.c-article-list-event>li>a:hover .venue,
.c-article-list-event>li>a:active time,
.c-article-list-event>li>a:active .venue {
    color: #2e2e2e;
}

.c-article-list-event>li>a:hover p,
.c-article-list-event>li>a:active p {
    color: #333;
    /*
  span {
    background: linear-gradient(0deg, rgba(46,46,46,1) 0%, rgba(46,46,46,1) 2%, rgba(46,46,46,0) 3%);
  }
  */
}

.c-article-list-event .tag {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    position: relative;
    z-index: 1;
    padding: 0 60px 24px 30px;
    pointer-events: none;
}

.c-article-list-event .tag a {
    display: inline-block;
    padding: 5px 8px 3px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1rem;
    font-weight: 700;
    white-space: nowrap;
    pointer-events: auto;
    transition: border-color 0.2s, background-color 0.2s, color 0.2s;
}

.c-article-list-event .tag a:hover,
.c-article-list-event .tag a:active {
    border: 1px solid #2e2e2e;
    background-color: #2e2e2e;
    color: #fff;
}

.c-article-list-event>li.closed .closed-label {
    display: inline-block;
    margin-right: 16px;
    padding: 4px 16px;
    background-color: #2e2e2e;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
    opacity: 0.6;
}

.c-article-list-event>li.closed>a time {
    opacity: 0.6;
}

.c-article-list-event>li.closed>a .venue {
    opacity: 0.6;
}

.c-article-list-event>li.closed>a p {
    opacity: 0.6;
}

.c-article-list-event>li.closed .tag {
    opacity: 0.6;
}

.c-article-list-event .no-article {
    padding: 160px 30px;
    color: #333;
    font-size: 1.6rem;
}

@media screen and (max-width: 767.9px) {
    .c-article-list-event {
        margin-top: 8.5vw;
    }

    .body-inner .c-article-list-event {
        margin-left: -5vw;
        margin-right: -5vw;
    }

    .c-article-list-event>li>a {
        padding: 20px 5vw 16px;
        /*
    &::after {
      right: g.$side_margin_sp;
    }
    */
    }

    .c-article-list-event>li>a .venue {
        display: none;
    }

    .c-article-list-event>li>a p {
        font-size: 1.7rem;
    }

    .c-article-list-event>li>a p span {
        background: none;
    }

    .c-article-list-event>li>a:hover,
    .c-article-list-event>li>a:active {
        /*
    &::after {
      animation: none;
    }
    */
    }

    .c-article-list-event>li>a:hover p span,
    .c-article-list-event>li>a:active p span {
        background: none;
    }

    .c-article-list-event .tag {
        padding: 0 45px 24px 5vw;
    }

    .c-article-list-event .tag a {
        transition: none;
    }

    .c-article-list-event .tag a:hover,
    .c-article-list-event .tag a:active {
        border: 1px solid #d9d9d9;
        background-color: #fff;
        color: #2e2e2e;
    }

    .c-article-list-event .no-article {
        padding: 25vw 5vw;
        font-size: 1.5rem;
        text-align: center;
    }
}

/* ---- recruit: job search ---- */
.c-article-list-search {
    margin-top: 50px;
    border-top: 1px solid #eee;
}

.c-article-list-search>li {
    position: relative;
    border-bottom: 1px solid #eee;
}

.c-article-list-search>li>a {
    display: block;
    padding: 20px 30px 16px;
    color: #333;
    /*
  &::after {
    content: "";
    display: block;
    position: absolute;
    right: 30px;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
  }
  */
}

.c-article-list-search>li>a::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    background-color: #000;
    opacity: 0;
    transition: opacity 0.2s ease-out;
}

.c-article-list-search>li>a .category {
    display: inline-block;
    padding: 5px 16px 4px;
    background-color: #2e2e2e;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
}

.c-article-list-search>li>a .title {
    margin-top: 0.8em;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4;
    /*
  span {
    background: linear-gradient(0deg, rgba(46,46,46,0) 0%, rgba(46,46,46,0) 2%, rgba(46,46,46,0) 3%);
  }
  */
}

.c-article-list-search>li>a p {
    margin-top: 0.8em;
    font-size: 1.4rem;
    line-height: 1.4;
}

.c-article-list-search>li>a:hover,
.c-article-list-search>li>a:active {
    color: #333;
    /*
  &::after {
    animation: arrow-right .5s ease-in-out;
  }
  */
    /*
  .title {

    span {
      background: linear-gradient(0deg, rgba(46,46,46,1) 0%, rgba(46,46,46,1) 2%, rgba(46,46,46,0) 3%);
    }

  }
  */
}

.c-article-list-search>li>a:hover::after,
.c-article-list-search>li>a:active::after {
    opacity: 0.07;
}

.c-article-list-search>li>a:hover .category,
.c-article-list-search>li>a:active .category {
    color: #fff;
}

.c-article-list-search .tag {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    position: relative;
    z-index: 1;
    padding: 0 60px 24px 30px;
    pointer-events: none;
}

.c-article-list-search .tag button {
    display: inline-block;
    padding: 5px 8px 3px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1rem;
    font-weight: 700;
    white-space: nowrap;
    pointer-events: auto;
    transition: border-color 0.2s, background-color 0.2s, color 0.2s;
}

.c-article-list-search .tag button:hover,
.c-article-list-search .tag button:active {
    border: 1px solid #2e2e2e;
    background-color: #2e2e2e;
    color: #fff;
}

.c-article-list-search .no-article {
    padding: 80px 30px;
    color: #333;
    font-size: 1.6rem;
    line-height: 2;
}

.c-article-list-search .no-article:lang(en) {
    line-height: 1.5;
}

@media screen and (max-width: 767.9px) {
    .c-article-list-search {
        margin-top: 8.5vw;
    }

    .body-inner .c-article-list-search {
        margin-left: -5vw;
        margin-right: -5vw;
    }

    .c-article-list-search>li>a {
        padding: 20px 5vw 14px;
        /*
    &::after {
      right: g.$side_margin_sp;
    }
    */
    }

    .c-article-list-search>li>a .title {
        font-size: 1.6rem;
    }

    .c-article-list-search>li>a .title span {
        background: none;
    }

    .c-article-list-search>li>a p {
        margin-top: 0.6em;
        font-size: 1.4rem;
        line-height: 1.6;
    }

    .c-article-list-search>li>a p:lang(en) {
        line-height: 1.4;
    }

    .c-article-list-search>li>a:hover,
    .c-article-list-search>li>a:active {
        /*
    &::after {
      animation: none;
    }
    */
    }

    .c-article-list-search>li>a:hover p span,
    .c-article-list-search>li>a:active p span {
        background: none;
    }

    .c-article-list-search .tag {
        padding: 0 45px 20px 5vw;
    }

    .c-article-list-search .tag button {
        transition: none;
    }

    .c-article-list-search .tag button:hover,
    .c-article-list-search .tag button:active {
        border: 1px solid #d9d9d9;
        background-color: #fff;
        color: #2e2e2e;
    }

    .c-article-list-search .no-article {
        padding: 25vw 5vw;
        font-size: 1.5rem;
        text-align: center;
    }
}

/* ---- news: press release panel, recruit: interview ---- */
#news-search+ul .no-article,
#interview-search+ul .no-article {
    padding: 80px 30px;
    color: #333;
    font-size: 1.6rem;
    line-height: 2;
}

#news-search+ul .no-article:lang(en),
#interview-search+ul .no-article:lang(en) {
    line-height: 1.5;
}

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

    #news-search+ul .no-article,
    #interview-search+ul .no-article {
        padding: 25vw 0;
        font-size: 1.5rem;
        text-align: center;
    }
}

/*
--------------------------------
	article panel
--------------------------------
*/
/* ---- news ---- */
.c-article-panel {
    display: block;
    color: #2e2e2e;
}

.c-article-panel .img {
    position: relative;
}

.c-article-panel .img img {
    display: block;
    width: 100%;
    aspect-ratio: 1.91/1;
    -o-object-fit: cover;
    object-fit: cover;
    margin-bottom: 16px;
    border-radius: 12px;
    transform: translate3d(0, 0, 0);
    filter: brightness(1);
    transition: filter 0.18s ease-out;
}

.c-article-panel .img::before {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 1;
    width: 32px;
    height: 32px;
    border-radius: 8px 0 0 0;
    background-color: #fff;
}

.c-article-panel .img::after {
    content: "";
    display: block;
    position: absolute;
    right: 9px;
    bottom: 10px;
    z-index: 2;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-article-panel p {
    margin-top: 8px;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.75;
}

.c-article-panel p:lang(en) {
    line-height: 1.5;
}

.c-article-panel time {
    margin-right: -0.2em;
    font-size: 1.3rem;
    line-height: 1.4;
}

.c-article-panel .category {
    font-size: 1.25rem;
    line-height: 1.4;
}

.c-article-panel .category::before {
    content: "｜";
    display: inline-block;
    margin: 0 0.7em;
    transform: scale(1, 0.8);
}

.c-article-panel:hover,
.c-article-panel:active {
    color: #2e2e2e;
}

.c-article-panel:hover .img img,
.c-article-panel:active .img img {
    filter: brightness(0.8);
}

.c-article-panel:hover .img::after,
.c-article-panel:active .img::after {
    animation: arrow-right 0.5s ease-in-out;
}

.c-article-panel:hover p,
.c-article-panel:active p {
    text-decoration: underline;
}

@media screen and (max-width: 767.9px) {
    .c-article-panel {
        margin-bottom: 10.7vw;
    }

    .c-article-panel .img img {
        transition: none;
    }

    .c-article-panel p {
        font-size: 1.5rem;
    }

    .c-article-panel:hover .img img,
    .c-article-panel:active .img img {
        filter: brightness(1);
    }

    .c-article-panel:hover .img::after,
    .c-article-panel:active .img::after {
        animation: none;
    }

    .c-article-panel:hover p,
    .c-article-panel:active p {
        text-decoration: none;
    }
}

/* ---- interview ---- */
.c-interview-panel {
    display: block;
    position: relative;
    height: 100%;
    padding: 9%;
    border-radius: 12px;
    background-color: #fdfdfd;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    transition: background-color 0.2s, box-shadow 0.2s;
}

.bg-gray .c-interview-panel {
    background-color: #fff;
}

.c-interview-panel::after {
    content: "";
    display: block;
    position: absolute;
    right: 16px;
    bottom: 16px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-interview-panel .inner img {
    display: block;
    width: 120px;
    height: 120px;
    margin: 0 auto;
    border-radius: 50%;
    overflow: hidden;
    -o-object-fit: cover;
    object-fit: cover;
    transform: translate3d(0, 0, 0);
    filter: brightness(1);
    transition: filter 0.18s ease-out;
}

.c-interview-panel .inner p {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
    height: 150px;
    margin-top: 24px;
    color: #2e2e2e;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: normal;
    line-height: 1.6;
}

.c-interview-panel .name {
    color: #2e2e2e;
    font-size: 1.5rem;
    font-weight: 700;
}

.c-interview-panel .job {
    display: inline-block;
    color: #2e2e2e;
    font-size: 1.25rem;
    text-transform: uppercase;
    transform: translateY(-0.1em);
}

.c-interview-panel .job::before {
    content: "｜";
    display: inline-block;
    margin: 0 0.6em 0 0.2em;
    transform: scale(1, 0.8);
}

.c-interview-panel>p {
    margin-top: 0.5em;
    color: #808080;
    font-size: 1.45rem;
    line-height: 1.4;
}

.c-interview-panel:hover,
.c-interview-panel:active {
    background-color: #eaeaea;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0);
}

.c-interview-panel:hover::after,
.c-interview-panel:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

.c-interview-panel:hover .inner img,
.c-interview-panel:active .inner img {
    filter: brightness(0.8);
}

@media screen and (max-width: 767.9px) {
    .c-interview-panel {
        height: auto;
        padding: 30px 5vw 20px;
        transition: none;
    }

    .c-interview-panel .inner {
        display: flex;
        align-items: center;
        margin-bottom: 60px;
    }

    .c-interview-panel .inner img {
        width: 100px;
        height: 100px;
        margin: 0 5vw 0 0;
    }

    .c-interview-panel .inner p {
        width: calc(100% - 100px - 5vw);
        height: auto;
        margin-top: 0;
        font-size: 1.8rem;
        line-height: 1.4;
    }

    .c-interview-panel:hover,
    .c-interview-panel:active {
        background-color: #f4f4f4;
        box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    }

    .c-interview-panel:hover::after,
    .c-interview-panel:active::after {
        animation: none;
    }

    .c-interview-panel:hover .inner img,
    .c-interview-panel:active .inner img {
        filter: brightness(1);
    }

    .bg-gray .c-interview-panel:hover,
    .bg-gray .c-interview-panel:active {
        background-color: #fff;
    }
}

/* ---- job ---- */
.c-job-panel {
    display: block;
    position: relative;
    height: 100%;
    padding: 35px 9% 55px;
    border-radius: 12px;
    background-color: #fdfdfd;
    color: #2e2e2e;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    transition: background-color 0.2s, box-shadow 0.2s;
}

.bg-gray .c-job-panel {
    background-color: #fff;
}

.c-job-panel::after {
    content: "";
    display: block;
    position: absolute;
    right: 8%;
    bottom: 28px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-job-panel .title {
    margin-top: 12px;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.6;
}

.c-job-panel .title:lang(en) {
    line-height: 1.4;
}

.c-job-panel p {
    margin-top: 20px;
    font-size: 1.6rem;
    line-height: 2;
}

.c-job-panel p:lang(en) {
    line-height: 1.5;
}

.c-job-panel:hover,
.c-job-panel:active {
    background-color: #eaeaea;
    color: #2e2e2e;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0);
}

.c-job-panel:hover::after,
.c-job-panel:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

@media screen and (max-width: 767.9px) {
    .c-job-panel {
        padding: 22px 5vw 44px;
        transition: none;
    }

    .c-job-panel::after {
        right: 5vw;
        bottom: 20px;
    }

    .c-job-panel .title {
        margin-top: 10px;
        font-size: 1.8rem;
    }

    .c-job-panel p {
        margin-top: 16px;
        font-size: 1.4rem;
    }

    .c-job-panel:hover,
    .c-job-panel:active {
        background-color: #f4f4f4;
        box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    }

    .c-job-panel:hover::after,
    .c-job-panel:active::after {
        animation: none;
    }

    .bg-gray .c-job-panel:hover,
    .bg-gray .c-job-panel:active {
        background-color: #fff;
    }
}

/* ---- DAY2: news ---- */
.c-article-panel-d2 {
    display: block;
    position: relative;
    height: 100%;
    min-height: min(380px, 45vw);
    border-radius: 12px;
    background-color: #fff;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    color: #2e2e2e;
}

.c-article-panel-d2::before {
    content: "";
    display: block;
    position: absolute;
    right: 6%;
    bottom: 16px;
    z-index: 2;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-article-panel-d2::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: #2e2e2e;
    opacity: 0;
    transition: opacity 0.2s ease-out;
    pointer-events: none;
}

.c-article-panel-d2 img {
    display: block;
    width: 100%;
    aspect-ratio: 1.91/1;
    -o-object-fit: cover;
    object-fit: cover;
}

.c-article-panel-d2 .txt {
    margin-top: 20px;
    padding: 0 6% 7%;
}

.c-article-panel-d2 time {
    margin-right: -0.2em;
    font-size: 1.3rem;
    line-height: 1.4;
}

.c-article-panel-d2 .category {
    font-size: 1.25rem;
    line-height: 1.4;
}

.c-article-panel-d2 .category::before {
    content: "｜";
    display: inline-block;
    margin: 0 0.7em;
    transform: scale(1, 0.8);
}

.c-article-panel-d2 p {
    display: -webkit-box;
    margin-top: 12px;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
}

.c-article-panel-d2:hover,
.c-article-panel-d2:active {
    color: #2e2e2e;
}

.c-article-panel-d2:hover::before,
.c-article-panel-d2:active::before {
    animation: arrow-right 0.5s ease-in-out;
}

.c-article-panel-d2:hover::after,
.c-article-panel-d2:active::after {
    opacity: 0.12;
}

@media screen and (max-width: 767.9px) {
    .c-article-panel-d2 {
        height: auto;
        min-height: calc(65vw + 12rem);
        margin-bottom: 10.7vw;
    }
}

/*
--------------------------------
	article navigation
--------------------------------
*/
/* ---- prev / next ---- */
.c-article-nav {
    position: relative;
    display: flex;
    margin-top: 110px;
    border-radius: 20px;
    background-color: #f4f4f4;
    overflow: hidden;
}

.c-article-nav::after {
    content: "";
    display: block;
    position: absolute;
    left: 50%;
    top: 30px;
    bottom: 30px;
    width: 1px;
    background-color: #d9d9d9;
}

.c-article-nav a {
    display: block;
    position: relative;
    width: 50%;
    color: #2e2e2e;
    opacity: 1;
    transition: opacity 0.2s;
}

.c-article-nav a p {
    margin-top: 18px;
    font-size: 1.6rem;
    line-height: 1.5;
}

.c-article-nav a p:lang(en) {
    line-height: 1.5;
}

.c-article-nav a.prev {
    padding: 40px 5% 40px 3.6%;
}

.c-article-nav a.prev span {
    display: inline-block;
    position: relative;
    padding: 0 0 0 25px;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-article-nav a.prev span::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: calc(50% - 6px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
    transform: translate3d(0, 0, 0) rotate(180deg);
}

.c-article-nav a.next {
    padding: 40px 3.6% 40px 5%;
    text-align: right;
}

.c-article-nav a.next:only-child {
    margin-left: auto;
}

.c-article-nav a.next span {
    display: inline-block;
    position: relative;
    padding: 0 25px 0 0;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-article-nav a.next span::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 6px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-article-nav a.next p {
    text-align: left;
}

.c-article-nav a:hover,
.c-article-nav a:active {
    opacity: 0.6;
    color: #2e2e2e;
}

.c-article-nav a:hover.prev span::before,
.c-article-nav a:active.prev span::before {
    transform: scale(1, 1);
}

.c-article-nav a:hover.prev span::after,
.c-article-nav a:active.prev span::after {
    animation: arrow-left 0.5s ease-in-out;
}

.c-article-nav a:hover.next span::before,
.c-article-nav a:active.next span::before {
    transform: scale(1, 1);
}

.c-article-nav a:hover.next span::after,
.c-article-nav a:active.next span::after {
    animation: arrow-right 0.5s ease-in-out;
}

@media screen and (max-width: 767.9px) {
    .c-article-nav {
        margin-top: 14.9vw;
        border-radius: 12px;
    }

    .c-article-nav::after {
        top: 20px;
        bottom: 20px;
    }

    .c-article-nav a p {
        margin-top: 16px;
        font-size: 1.2rem;
        line-height: 1.5;
    }

    .c-article-nav a.prev {
        padding: 24px 5vw 20px;
    }

    .c-article-nav a.prev span {
        padding: 0 0 0 20px;
        font-size: 1.2rem;
    }

    .c-article-nav a.next {
        padding: 24px 5vw 20px;
    }

    .c-article-nav a.next span {
        padding: 0 20px 0 0;
        font-size: 1.2rem;
    }

    .c-article-nav a.next p {
        text-align: left;
    }

    .c-article-nav a:hover p,
    .c-article-nav a:active p {
        text-decoration: none;
    }

    .c-article-nav a:hover.prev span::after,
    .c-article-nav a:active.prev span::after {
        animation: none;
    }

    .c-article-nav a:hover.next span::after,
    .c-article-nav a:active.next span::after {
        animation: none;
    }
}

/* ---- prev / index / next ---- */
.c-page-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 110px;
    padding: 5% 3.6% calc(5% - 4px);
    background-color: #f4f4f4;
    border-radius: 20px;
}

.c-page-nav a {
    opacity: 1;
    transition: opacity 0.2s;
}

.c-page-nav a:hover,
.c-page-nav a:active {
    opacity: 0.6;
}

.c-page-nav a:nth-child(1) {
    display: block;
    position: relative;
    padding: 0 0 0 25px;
    color: #2e2e2e;
    font-size: 1.4rem;
    font-weight: 700;
}

.c-page-nav a:nth-child(1)::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
    transform: rotate(180deg);
}

.c-page-nav a:nth-child(1):hover,
.c-page-nav a:nth-child(1):active {
    color: #2e2e2e;
}

.c-page-nav a:nth-child(1):hover::after,
.c-page-nav a:nth-child(1):active::after {
    animation: arrow-left 0.5s ease-in-out;
}

.c-page-nav a:nth-child(2) {
    display: block;
    position: relative;
    padding: 0;
    color: #2e2e2e;
    font-size: 1.4rem;
    font-weight: 700;
}

.c-page-nav a:nth-child(2)::after {
    content: "";
    display: block;
    position: absolute;
    right: -36px;
    top: calc(50% - 12.5px);
    width: 25px;
    height: 25px;
    background: url(../images/icon_index.svg) center no-repeat;
}

.c-page-nav a:nth-child(2):hover,
.c-page-nav a:nth-child(2):active {
    color: #2e2e2e;
}

.c-page-nav a:nth-child(3) {
    display: block;
    position: relative;
    padding: 0 25px 0 0;
    color: #2e2e2e;
    font-size: 1.4rem;
    font-weight: 700;
}

.c-page-nav a:nth-child(3)::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-page-nav a:nth-child(3):hover,
.c-page-nav a:nth-child(3):active {
    color: #2e2e2e;
}

.c-page-nav a:nth-child(3):hover::after,
.c-page-nav a:nth-child(3):active::after {
    animation: arrow-right 0.5s ease-in-out;
}

.c-page-nav a.disabled {
    opacity: 0.2;
    pointer-events: none;
}

@media screen and (max-width: 767.9px) {
    .c-page-nav {
        margin-top: 14.9vw;
        padding: 9% 5vw;
    }

    .c-page-nav a:nth-child(1) {
        padding: 35px 8px 6px;
    }

    .c-page-nav a:nth-child(1)::after {
        left: calc(50% - 6px);
        top: 7px;
    }

    .c-page-nav a:nth-child(1):hover::after,
    .c-page-nav a:nth-child(1):active::after {
        animation: none;
    }

    .c-page-nav a:nth-child(2) {
        padding: 35px 8px 6px;
    }

    .c-page-nav a:nth-child(2)::after {
        left: calc(50% - 12px);
        top: 0;
    }

    .c-page-nav a:nth-child(3) {
        padding: 35px 8px 6px;
    }

    .c-page-nav a:nth-child(3)::after {
        left: calc(50% - 6px);
        top: 7px;
    }

    .c-page-nav a:nth-child(3):hover::after,
    .c-page-nav a:nth-child(3):active::after {
        animation: none;
    }
}

/*
--------------------------------
	link list
--------------------------------
*/
/* ---- horizontal ---- */
.c-horizontal-link-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px 50px;
    margin-top: 50px;
    padding: 30px 40px;
    border-radius: 12px;
    background-color: #f4f4f4;
}

.bg-gray .c-horizontal-link-list {
    background-color: #fff;
}

@media screen and (max-width: 767.9px) {
    .c-horizontal-link-list {
        display: block;
        margin-top: 8.5vw;
        padding: 24px 6vw;
    }

    .c-horizontal-link-list a {
        display: block;
        white-space: normal;
    }
}

/* ---- vertical ---- */
.c-vertical-link-list {
    margin-top: 50px;
    padding: 40px 5%;
    border-radius: 12px;
    background-color: #f4f4f4;
}

.bg-gray .c-vertical-link-list {
    background-color: #fff;
}

.c-vertical-link-list> :first-child {
    margin-top: 0;
}

.c-vertical-link-list.no-frame {
    padding: 0;
    background-color: transparent;
}

.bg-gray .c-vertical-link-list.no-frame {
    background-color: transparent;
}

.c-vertical-link-list .heading {
    margin-bottom: 24px;
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.3;
    text-transform: uppercase;
}

.c-vertical-link-list ul li {
    margin-top: 20px;
}

.c-vertical-link-list ul li:first-child {
    margin-top: 0;
}

.c-vertical-link-list ul li a {
    font-size: 1.5rem;
    line-height: 1.4;
}

.c-vertical-link-list ul li ul li::before {
    content: "–";
    margin-right: 0.8em;
    font-size: 1.4rem;
}

.c-vertical-link-list ul li ul li:first-child {
    margin-top: 20px;
}

.c-vertical-link-list ul li ul li a {
    font-size: 1.4rem;
}

.c-vertical-link-list ul li ul li a.c-icon-link.anchor::after {
    top: calc(50% - 7px);
}

.c-vertical-link-list button {
    display: none;
}

@media screen and (max-width: 767.9px) {
    .c-vertical-link-list {
        margin-top: 8.5vw;
        padding: calc(5vw + 8px) 6.5vw calc(5vw + 10px);
    }

    .c-vertical-link-list.no-frame {
        padding: 0;
    }

    .c-vertical-link-list .heading {
        font-size: 1.6rem;
        text-align: center;
    }

    .c-vertical-link-list ul li {
        margin-top: 20px;
    }

    .c-vertical-link-list ul li a {
        font-size: 1.5rem;
    }

    .c-vertical-link-list ul li ul li:first-child {
        margin-top: 20px;
    }

    .c-vertical-link-list.sp-viewmore {
        position: relative;
        height: 270px;
        overflow: hidden;
        transition: height 0.3s ease-out;
    }

    .c-vertical-link-list.sp-viewmore button {
        display: flex;
        justify-content: center;
        align-items: center;
        position: absolute;
        left: 0;
        bottom: 0;
        width: 100%;
        height: 70px;
        padding-top: 8px;
        background: linear-gradient(180deg, rgba(244, 244, 244, 0) 0%, rgb(244, 244, 244) 15%);
        opacity: 1;
        transition: opacity 0.2s;
    }

    .c-vertical-link-list.sp-viewmore button span {
        display: block;
        position: relative;
        padding-right: 24px;
        color: #2e2e2e;
        font-size: 1.4rem;
        font-weight: 700;
    }

    .c-vertical-link-list.sp-viewmore button span::before {
        content: "";
        display: block;
        position: absolute;
        right: 0;
        top: calc(50% - 2px);
        width: 12px;
        height: 2px;
        background-color: #2e2e2e;
    }

    .c-vertical-link-list.sp-viewmore button span::after {
        content: "";
        display: block;
        position: absolute;
        right: 0;
        top: calc(50% - 2px);
        width: 12px;
        height: 2px;
        background-color: #2e2e2e;
        transform: rotate(-90deg);
    }

    .c-vertical-link-list.sp-viewmore button.is-hidden {
        opacity: 0;
        pointer-events: none;
    }

    .bg-gray .c-vertical-link-list.sp-viewmore button {
        background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 15%);
    }
}

/* ---- panel ---- */
.c-box-link-list {
    position: relative;
    padding-bottom: 100px;
    border-radius: 12px;
    background-color: #fdfdfd;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    /*
  &::before {
    content: "";
    display: block;
    position: absolute;
    left: 30px;
    top: 0;
    width: 20px;
    height: 5px;
    border-radius: 0 0 2px 2px;
    background-color: g.$color_1;
  }
  */
}

.bg-gray .c-box-link-list {
    background-color: #fff;
}

.c-box-link-list .heading {
    padding: 35px 30px;
    font-size: 3.6rem;
    font-weight: 700;
    line-height: 1.3;
}

.c-box-link-list .heading span {
    display: block;
    margin-top: 0.6em;
    font-size: 1.7rem;
    letter-spacing: normal;
}

.c-box-link-list ul {
    border-bottom: 1px solid #eee;
}

.c-box-link-list ul li {
    border-top: 1px solid #eee;
}

.c-box-link-list ul a {
    display: block;
    position: relative;
    padding: 19px 60px 17px 30px;
    background-color: rgba(234, 234, 234, 0);
    line-height: 1.5;
    transition: background-color 0.2s ease-out;
}

.c-box-link-list ul a::after {
    content: "";
    display: block;
    position: absolute;
    right: 30px;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-box-link-list ul a:hover,
.c-box-link-list ul a:active {
    background-color: rgb(234, 234, 234);
}

.c-box-link-list ul a:hover::after,
.c-box-link-list ul a:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

.c-box-link-list ul a.outbound::after {
    right: 26px;
    top: calc(50% - 9px);
    width: 16px;
    height: 16px;
    background-image: url(../images/icon_outbound.svg);
    background-size: contain;
    background-position: 50%;
    background-repeat: no-repeat;
}

.c-box-link-list ul a.outbound:hover::after,
.c-box-link-list ul a.outbound:active::after {
    animation: none;
}

.c-box-link-list ul a.pdf::after {
    right: 28px;
    top: calc(50% - 10px);
    width: 17px;
    height: 20px;
    background-image: url(../images/icon_pdf.svg);
    background-size: contain;
    background-position: 50%;
    background-repeat: no-repeat;
}

.c-box-link-list ul a.pdf:hover::after,
.c-box-link-list ul a.pdf:active::after {
    animation: none;
}

.c-box-link-list:not(.c-col) {
    height: 100%;
    padding-bottom: 16px;
}

.c-box-link-list:not(.c-col) .heading {
    padding: 32px 30px 8px;
    font-size: 2.4rem;
}

.c-box-link-list:not(.c-col) ul {
    border-bottom-style: none;
}

.c-box-link-list:not(.c-col) ul li:first-child {
    border-top-style: none;
}

@media screen and (max-width: 767.9px) {
    .c-box-link-list {
        padding-bottom: 50px;
        /*
    &::before {
      left: g.$side_margin_sp;
      width: 12px;
    }
    */
    }

    .c-box-link-list .heading {
        padding: 25px 5vw 28px;
        font-size: 3.2rem;
        line-height: 1.4;
    }

    .c-box-link-list .heading span {
        font-size: 1.6rem;
    }

    .c-box-link-list ul a {
        padding: 18px calc(5vw + 20px) 18px 5vw;
        font-size: 1.6rem;
        transition: none;
    }

    .c-box-link-list ul a::after {
        right: 5vw;
    }

    .c-box-link-list ul a:hover,
    .c-box-link-list ul a:active {
        background-color: rgba(234, 234, 234, 0);
    }

    .c-box-link-list ul a:hover::after,
    .c-box-link-list ul a:active::after {
        animation: none;
    }

    .c-box-link-list ul a.outbound::after {
        right: calc(5vw - 4px);
    }

    .c-box-link-list ul a.pdf::after {
        right: calc(5vw - 2px);
    }

    .c-box-link-list:not(.c-col) {
        height: auto;
        padding-bottom: 8px;
    }

    .c-box-link-list:not(.c-col) .heading {
        padding: 24px 5vw 8px;
    }
}

/* ---- panel with image header ---- */
.c-image-link-list {
    position: relative;
    height: 100%;
    padding-bottom: 48px;
    border-radius: 12px;
    background-color: #fdfdfd;
    overflow: hidden;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
}

.bg-gray .c-image-link-list {
    background-color: #fff;
}

.c-image-link-list>a {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 1.91/1;
}

.c-image-link-list>a::before {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 3;
    width: 32px;
    height: 32px;
    border-radius: 8px 0 0 0;
    background-color: #fff;
}

.c-image-link-list>a::after {
    content: "";
    display: block;
    position: absolute;
    right: 9px;
    bottom: 10px;
    z-index: 4;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-image-link-list>a img {
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    transform: translate3d(0, 0, 0);
    filter: brightness(1);
    transition: filter 0.18s ease-out;
}

.c-image-link-list>a .txt {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    position: relative;
    z-index: 2;
    height: 100%;
    padding: 40px 7%;
}

.c-image-link-list>a .txt .heading {
    margin-top: 8px;
    padding: 8px 8px 6px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.c-image-link-list>a .txt p {
    margin-top: 8px;
    padding: 8px 8px 6px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.c-image-link-list>a:hover img,
.c-image-link-list>a:active img {
    filter: brightness(0.8);
}

.c-image-link-list>a:hover::after,
.c-image-link-list>a:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

.c-image-link-list ul {
    margin-top: 48px;
    border-bottom: 1px solid #eee;
}

.c-image-link-list ul li {
    border-top: 1px solid #eee;
}

.c-image-link-list ul a {
    display: block;
    position: relative;
    padding: 13px calc(7% + 30px) 11px 7%;
    background-color: rgba(234, 234, 234, 0);
    font-size: 1.6rem;
    line-height: 1.5;
    transition: background-color 0.2s ease-out;
}

.c-image-link-list ul a::after {
    content: "";
    display: block;
    position: absolute;
    right: 7%;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-image-link-list ul a:hover,
.c-image-link-list ul a:active {
    background-color: rgb(234, 234, 234);
}

.c-image-link-list ul a:hover::after,
.c-image-link-list ul a:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

@media screen and (max-width: 767.9px) {
    .c-image-link-list {
        padding-bottom: 40px;
    }

    .c-image-link-list>a img {
        transform: none;
        filter: none;
        transition: none;
    }

    .c-image-link-list>a:hover img,
    .c-image-link-list>a:active img {
        filter: none;
    }

    .c-image-link-list>a:hover::after,
    .c-image-link-list>a:active::after {
        animation: none;
    }

    .c-image-link-list ul {
        margin-top: 40px;
    }

    .c-image-link-list ul a {
        transition: none;
    }

    .c-image-link-list ul a:hover,
    .c-image-link-list ul a:active {
        background-color: rgba(234, 234, 234, 0);
    }

    .c-image-link-list ul a:hover::after,
    .c-image-link-list ul a:active::after {
        animation: none;
    }
}

/* ---- image ---- */
.c-link-panel-image-top,
.c-image-link {
    display: block;
    color: #2e2e2e;
}

.c-link-panel-image-top .img,
.c-image-link .img {
    position: relative;
}

.c-link-panel-image-top .img img,
.c-image-link .img img {
    display: block;
    width: 100%;
    aspect-ratio: 1.91/1;
    -o-object-fit: cover;
    object-fit: cover;
    border-radius: 12px;
    transform: translate3d(0, 0, 0);
    filter: brightness(1);
    transition: filter 0.18s ease-out;
}

.c-link-panel-image-top .img::before,
.c-image-link .img::before {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 1;
    width: 32px;
    height: 32px;
    border-radius: 8px 0 0 0;
    background-color: #fff;
}

.c-link-panel-image-top .img::after,
.c-image-link .img::after {
    content: "";
    display: block;
    position: absolute;
    right: 9px;
    bottom: 10px;
    z-index: 2;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-link-panel-image-top p,
.c-image-link p {
    margin-top: 16px;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.5;
}

.c-link-panel-image-top:hover,
.c-link-panel-image-top:active,
.c-image-link:hover,
.c-image-link:active {
    color: #2e2e2e;
}

.c-link-panel-image-top:hover .img img,
.c-link-panel-image-top:active .img img,
.c-image-link:hover .img img,
.c-image-link:active .img img {
    filter: brightness(0.8);
}

.c-link-panel-image-top:hover .img::after,
.c-link-panel-image-top:active .img::after,
.c-image-link:hover .img::after,
.c-image-link:active .img::after {
    animation: arrow-right 0.5s ease-in-out;
}

@media screen and (max-width: 767.9px) {
    .c-link-panel-image-top .img {
        position: relative;
    }

    .c-link-panel-image-top .img img {
        filter: none;
        transition: none;
    }

    .c-link-panel-image-top p {
        margin-top: 12px;
    }

    .c-link-panel-image-top:hover .img img,
    .c-link-panel-image-top:active .img img {
        filter: none;
    }

    .c-link-panel-image-top:hover .img::after,
    .c-link-panel-image-top:active .img::after {
        animation: none;
    }

    .c-col+.c-col .c-link-panel-image-top {
        margin-top: 10.7vw;
    }
}

/*
--------------------------------
	link panel
--------------------------------
*/
/* ---- text only ---- */
.c-link-panel-text {
    display: flex;
    align-items: center;
    position: relative;
    height: 100%;
    min-height: 160px;
    padding: 25px 62px 25px 32px;
    border-radius: 12px;
    background-color: #f4f4f4;
    color: #2e2e2e;
    font-size: 2rem;
    letter-spacing: 0.1em;
    font-weight: 700;
    line-height: 1.6;
    transition: background-color 0.2s, box-shadow 0.2s;
    /*
  &::before {
    content: "";
    display: block;
    position: absolute;
    left: 9%;
    top: 0;
    width: 20px;
    height: 5px;
    border-radius: 0 0 2px 2px;
    background-color: g.$color_1;
  }
  */
    /*
  &.line::before {
    background-color: g.$color_line;
  }

  &.yahoo::before {
    background-color: g.$color_yahoo;
  }
  */
}

.c-link-panel-text:lang(en) {
    font-size: 1.8rem;
    letter-spacing: 0.02em;
    line-height: 1.4;
}

.bg-gray .c-link-panel-text {
    background-color: #fff;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
}

.c-link-panel-text::after {
    content: "";
    display: block;
    position: absolute;
    right: 32px;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-link-panel-text[target=_blank]::after {
    top: calc(50% - 8px);
    width: 16px;
    height: 16px;
    background: url(../images/icon_outbound.svg) center no-repeat;
}

.c-link-panel-text[target=_blank]:hover::after,
.c-link-panel-text[target=_blank]:active::after {
    animation: none;
}

.c-link-panel-text.small {
    min-height: 120px;
    padding: 25px 54px 25px 24px;
    font-size: 1.8rem;
    line-height: 1.5;
}

.c-link-panel-text.small::after {
    right: 24px;
}

.c-link-panel-text:hover,
.c-link-panel-text:active {
    background-color: #eaeaea;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0);
    color: #2e2e2e;
}

.c-link-panel-text:hover::after,
.c-link-panel-text:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

@media screen and (min-width: 768px) and (max-width: 960px) {
    .c-link-panel-text {
        font-size: 1.8rem;
        letter-spacing: 0.06em;
    }

    .c-link-panel-text:lang(en) {
        letter-spacing: 0.06em;
    }
}

@media screen and (max-width: 767.9px) {
    .c-link-panel-text {
        transition: none;
    }

    .c-link-panel-text:hover,
    .c-link-panel-text:active {
        background-color: #f4f4f4;
        box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    }

    .c-link-panel-text:hover::after,
    .c-link-panel-text:active::after {
        animation: none;
    }

    .bg-gray .c-link-panel-text:hover,
    .bg-gray .c-link-panel-text:active {
        background-color: #fff;
    }
}

/* ---- image: none / text ---- */
.c-link-panel-noimg {
    display: block;
    position: relative;
    height: 100%;
    padding: 40px 8% 50px;
    border-radius: 12px;
    background-color: #fdfdfd;
    overflow: hidden;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    transition: background-color 0.2s, box-shadow 0.2s;
}

.bg-gray .c-link-panel-noimg {
    background-color: #fff;
}

.c-link-panel-noimg::after {
    content: "";
    display: block;
    position: absolute;
    right: 16px;
    bottom: 16px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-link-panel-noimg.outbound::after {
    width: 16px;
    height: 16px;
    bottom: 13px;
    background: url(../images/icon_outbound.svg) center no-repeat;
}

.c-link-panel-noimg .heading {
    color: #2e2e2e;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-link-panel-noimg .heading:lang(en) {
    font-size: 1.8rem;
}

.c-link-panel-noimg .heading.line-2 {
    display: flex;
    align-items: center;
    min-height: 2.8em;
}

.c-link-panel-noimg .heading.line-3 {
    display: flex;
    align-items: center;
    min-height: 4.2em;
}

.c-link-panel-noimg p {
    margin-top: 1.5em;
    color: #2e2e2e;
    font-size: 1.6rem;
    letter-spacing: 0.07em;
    line-height: 2;
}

.c-link-panel-noimg p:lang(en) {
    line-height: 1.5;
}

.c-col-set-3 .c-link-panel-noimg {
    padding: 35px 8% 50px;
}

.c-col-set-4 .c-link-panel-noimg {
    padding: 35px 8% 50px;
}

.c-col-set-4 .c-link-panel-noimg .heading {
    font-size: 1.8rem;
}

.c-link-panel-noimg:hover,
.c-link-panel-noimg:active {
    background-color: #eaeaea;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0);
}

.c-link-panel-noimg:hover::after,
.c-link-panel-noimg:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

.c-link-panel-noimg.outbound:hover::after,
.c-link-panel-noimg.outbound:active::after {
    animation: none;
}

@media screen and (max-width: 767.9px) {
    .c-link-panel-noimg {
        height: auto;
        padding: 28px 9% 40px;
    }

    .c-col-set-3 .c-link-panel-noimg {
        padding: 28px 9% 40px;
    }

    .c-col-set-4 .c-link-panel-noimg {
        height: 100%;
        padding: 18px 9% 36px;
    }

    .c-col-set-4 .c-link-panel-noimg .heading {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        min-height: 2.8em;
        font-size: 1.8rem;
        line-height: 1.4;
    }

    .c-col-set-4 .c-link-panel-noimg .heading:lang(en) {
        font-size: 1.2rem;
    }

    .c-col-set-4 .c-link-panel-noimg .heading.line-2 {
        min-height: 2.8em;
    }

    .c-col-set-4 .c-link-panel-noimg .heading.line-3 {
        min-height: 4.2em;
    }

    .c-col-set-4 .c-link-panel-noimg p {
        margin-top: 10px;
        font-size: 1.4rem;
        line-height: 1.6;
    }

    .c-link-panel-noimg:hover,
    .c-link-panel-noimg:active {
        background-color: #f4f4f4;
        box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    }

    .c-link-panel-noimg:hover::after,
    .c-link-panel-noimg:active::after {
        animation: none;
    }

    .c-link-panel-noimg:hover img,
    .c-link-panel-noimg:active img {
        filter: none;
    }

    .bg-gray .c-link-panel-noimg:hover,
    .bg-gray .c-link-panel-noimg:active {
        background-color: #fff;
    }
}

/* ---- image: full / text: inside ---- */
.c-link-panel-image-full {
    display: block;
    position: relative;
    height: 392px;
    margin-top: 60px;
}

.c-link-panel-image-full .inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    position: relative;
    z-index: 2;
    height: 100%;
    padding: 0 8.7%;
}

.c-link-panel-image-full .heading {
    padding: 8px 10px 5px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 3.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.c-link-panel-image-full .heading:lang(en) {
    letter-spacing: 0.02em;
}

.c-link-panel-image-full p {
    margin-top: 8px;
    padding: 5px 9px 3px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.6rem;
    letter-spacing: 0.08em;
}

.c-link-panel-image-full img {
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    border-radius: 20px;
    -o-object-fit: cover;
    object-fit: cover;
    transform: translate3d(0, 0, 0);
    filter: brightness(1);
    transition: filter 0.18s ease-out;
}

.c-link-panel-image-full span {
    display: block;
    position: absolute;
    right: -1px;
    bottom: -1px;
    z-index: 2;
    width: 36%;
    max-width: 340px;
    padding: 40px 30px 40px 4.3%;
    border-radius: 8px 0 0 0;
    background-color: #fff;
    font-size: 1.6rem;
    font-weight: 700;
}

.c-link-panel-image-full span::after {
    content: "";
    display: block;
    position: absolute;
    right: 2px;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.bg-gray .c-link-panel-image-full span {
    background-color: #f4f4f4;
}

a.c-link-panel-image-full:hover img,
a.c-link-panel-image-full:active img {
    filter: brightness(0.8);
}

a.c-link-panel-image-full:hover span::after,
a.c-link-panel-image-full:active span::after {
    animation: arrow-right 0.5s ease-in-out;
}

@media screen and (max-width: 767.9px) {
    .c-link-panel-image-full {
        width: 100%;
        height: auto;
        aspect-ratio: 1/0.87;
        margin-top: 10.7vw;
    }

    .c-link-panel-image-full .inner {
        padding: 0 5vw;
    }

    .c-link-panel-image-full .heading {
        padding: 7px 8px 5px;
        font-size: 2.4rem;
    }

    .c-link-panel-image-full p {
        padding: 4px 7px;
        font-size: 1.4rem;
        letter-spacing: normal;
    }

    .c-link-panel-image-full img {
        filter: none;
        transition: none;
    }

    .c-link-panel-image-full span {
        width: 160px;
        max-width: none;
        padding: 24px 36px 0 40px;
    }

    .c-link-panel-image-full span::after {
        top: calc((100% - 24px) / 2 + 19px);
    }

    a.c-link-panel-image-full:hover img,
    a.c-link-panel-image-full:active img {
        filter: none;
    }

    a.c-link-panel-image-full:hover span::after,
    a.c-link-panel-image-full:active span::after {
        animation: none;
    }
}

/* ---- image: square / text: inside ---- */
.c-link-panel-image-square {
    display: block;
    position: relative;
    width: 100%;
    aspect-ratio: 12/11;
}

.c-link-panel-image-square::before {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    bottom: 0;
    z-index: 3;
    width: 32px;
    height: 32px;
    border-radius: 8px 0 0 0;
    background-color: #fff;
}

.c-link-panel-image-square::after {
    content: "";
    display: block;
    position: absolute;
    right: 9px;
    bottom: 10px;
    z-index: 4;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-link-panel-image-square img {
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    border-radius: 12px;
    -o-object-fit: cover;
    object-fit: cover;
    transform: translate3d(0, 0, 0);
    filter: brightness(1);
    transition: filter 0.18s ease-out;
}

.c-link-panel-image-square .txt {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    position: relative;
    z-index: 2;
    height: 100%;
    padding: 18% 9%;
}

.c-link-panel-image-square .txt .heading {
    margin-top: 8px;
    padding: 7px 10px 5px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.c-link-panel-image-square .txt .heading:lang(en) {
    letter-spacing: 0.02em;
}

.c-link-panel-image-square .txt p {
    margin-top: 8px;
    padding: 5px 9px 3px;
    border-radius: 8px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.c-link-panel-image-square .txt p:lang(en) {
    letter-spacing: 0.02em;
}

.c-link-panel-image-square:hover img,
.c-link-panel-image-square:active img {
    filter: brightness(0.8);
}

.c-link-panel-image-square:hover::after,
.c-link-panel-image-square:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

@media screen and (max-width: 767.9px) {
    .c-link-panel-image-square img {
        transform: none;
        filter: none;
        transition: none;
    }

    .c-link-panel-image-square:hover img,
    .c-link-panel-image-square:active img {
        filter: none;
    }

    .c-link-panel-image-square:hover::after,
    .c-link-panel-image-square:active::after {
        animation: none;
    }
}

/* ---- image: top / text: bottom ---- */
.c-link-panel-image-head {
    display: block;
    position: relative;
    height: 100%;
    border-radius: 12px;
    background-color: #fdfdfd;
    overflow: hidden;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    transition: background-color 0.2s, box-shadow 0.2s;
}

.bg-gray .c-link-panel-image-head {
    background-color: #fff;
}

.c-link-panel-image-head::after {
    content: "";
    display: block;
    position: absolute;
    right: 16px;
    bottom: 16px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-link-panel-image-head.outbound::after {
    width: 16px;
    height: 16px;
    bottom: 13px;
    background: url(../images/icon_outbound.svg) center no-repeat;
}

.c-link-panel-image-head img {
    display: block;
    width: 100%;
    aspect-ratio: 1.91/1;
    -o-object-fit: cover;
    object-fit: cover;
    transform: translate3d(0, 0, 0);
    filter: brightness(1);
    transition: filter 0.18s ease-out;
}

.c-link-panel-image-head.image-3-2 img {
    aspect-ratio: 3/2;
}

.c-link-panel-image-head.image-3-1 img {
    aspect-ratio: 3/1;
}

.c-link-panel-image-head.image-1-1 img {
    aspect-ratio: 1/1;
}

.c-link-panel-image-head.image-icon img,
.c-link-panel-image-head.image-icon-s img {
    -o-object-fit: contain;
    object-fit: contain;
    filter: none;
    transition: none;
}

.c-col-set-2 .c-link-panel-image-head.image-icon img,
.c-col-set-3 .c-link-panel-image-head.image-icon img {
    transform: scale(0.6) translateY(10%);
}

.c-col-set-4 .c-link-panel-image-head.image-icon img {
    margin: 44px 0 10px;
    transform: scale(0.84);
}

.c-col-set-4 .c-link-panel-image-head.image-icon-s img {
    transform: scale(0.72) translateY(10%);
}

.c-link-panel-image-head .txt {
    padding: 24px 8% 48px;
    color: #2e2e2e;
}

.c-link-panel-image-head .txt .heading {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
}

.c-link-panel-image-head .txt .heading:lang(en) {
    line-height: 1.4;
}

.c-link-panel-image-head .txt .heading:only-child {
    margin: -15px 0 15px;
    text-align: center;
}

.c-link-panel-image-head .txt .heading span {
    display: inline-block;
}

.c-link-panel-image-head .txt .heading+p {
    margin-top: 1em;
}

.c-link-panel-image-head .txt p {
    font-size: 1.6rem;
    letter-spacing: 0.07em;
    line-height: 1.5;
}

.c-link-panel-image-head .txt p:lang(en) {
    line-height: 1.5;
}

.c-link-panel-image-head .txt .c-tag-list+.heading {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
    height: 154px;
    margin-top: 10px;
}

.c-link-panel-image-head .txt .name {
    margin: 14px 0 24px;
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.2;
}

.c-link-panel-image-head .txt .name span {
    display: block;
    margin-top: 2px;
    font-size: 1.1rem;
}

.c-link-panel-image-head .txt .name+p {
    margin-bottom: -16px;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.6;
}

.c-link-panel-image-head .txt .name+p:lang(en) {
    line-height: 1.5;
}

.c-col-set-3 .c-link-panel-image-head .txt {
    padding: 30px 8% 40px;
}

.c-col-set-4 .c-link-panel-image-head .txt,
.c-col-set-5 .c-link-panel-image-head .txt {
    padding: 24px 8% 60px;
}

.c-col-set-4 .c-link-panel-image-head .txt .heading,
.c-col-set-5 .c-link-panel-image-head .txt .heading {
    font-size: 1.6rem;
    line-height: 1.4;
}

.c-col-set-4 .c-link-panel-image-head .txt .heading:only-child,
.c-col-set-5 .c-link-panel-image-head .txt .heading:only-child {
    margin: 0;
    font-size: 2rem;
    line-height: 1.6;
}

.c-col-set-4 .c-link-panel-image-head .txt .heading+p,
.c-col-set-5 .c-link-panel-image-head .txt .heading+p {
    margin-top: 0.7em;
}

.c-col-set-5 .c-link-panel-image-head .txt .name {
    margin-bottom: 0;
}

.c-link-panel-image-head:hover,
.c-link-panel-image-head:active {
    background-color: #eaeaea;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0);
}

.c-link-panel-image-head:hover::after,
.c-link-panel-image-head:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

.c-link-panel-image-head:hover img,
.c-link-panel-image-head:active img {
    filter: brightness(0.8);
}

.c-link-panel-image-head.outbound:hover::after,
.c-link-panel-image-head.outbound:active::after {
    animation: none;
}

.c-link-panel-image-head.image-icon:hover img,
.c-link-panel-image-head.image-icon:active img,
.c-link-panel-image-head.image-icon-s:hover img,
.c-link-panel-image-head.image-icon-s:active img {
    filter: none;
}

@media screen and (max-width: 767.9px) {
    .c-link-panel-image-head {
        height: auto;
    }

    .c-col-set-4 .c-link-panel-image-head,
    .c-col-set-5 .c-link-panel-image-head {
        height: 100%;
    }

    .c-link-panel-image-head img {
        transition: none;
    }

    .c-link-panel-image-head.image-3-2 img,
    .c-link-panel-image-head.image-3-1 img {
        aspect-ratio: 1.91/1;
    }

    .c-col-set-2 .c-link-panel-image-head.image-icon img,
    .c-col-set-3 .c-link-panel-image-head.image-icon img {
        transform: scale(0.65) translateY(10%);
    }

    .c-col-set-4 .c-link-panel-image-head.image-icon img {
        margin: 20% 0 8%;
        transform: scale(1);
    }

    .c-col-set-4 .c-link-panel-image-head.image-icon-s img {
        margin: 10% 0 0;
        transform: scale(0.85);
    }

    .c-link-panel-image-head .txt {
        padding: 28px 9% 40px;
    }

    .c-link-panel-image-head .txt .c-tag-list+.heading {
        height: 150px;
        margin-top: 8px;
        font-size: 1.8rem;
    }

    .c-link-panel-image-head .txt .name+p {
        margin-bottom: 0;
    }

    .c-col-set-3 .c-link-panel-image-head .txt {
        padding: 28px 9% 40px;
    }

    .c-col-set-4 .c-link-panel-image-head .txt,
    .c-col-set-5 .c-link-panel-image-head .txt {
        padding: 20px 9% 32px;
    }

    .c-col-set-4 .c-link-panel-image-head .txt .heading,
    .c-col-set-5 .c-link-panel-image-head .txt .heading {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        min-height: 2.8em;
        font-size: 1.8rem;
        line-height: 1.4;
    }

    .c-col-set-4 .c-link-panel-image-head .txt .heading:only-child,
    .c-col-set-5 .c-link-panel-image-head .txt .heading:only-child {
        justify-content: center;
        min-height: 3.2em;
        font-size: 2rem;
        line-height: 1.6;
    }

    .c-col-set-4 .c-link-panel-image-head .txt .heading span,
    .c-col-set-5 .c-link-panel-image-head .txt .heading span {
        display: block;
    }

    .c-col-set-4 .c-link-panel-image-head .txt .heading+p,
    .c-col-set-5 .c-link-panel-image-head .txt .heading+p {
        margin-top: 0.5em;
    }

    .c-col-set-4 .c-link-panel-image-head .txt p,
    .c-col-set-5 .c-link-panel-image-head .txt p {
        font-size: 1.6rem;
        line-height: 1.5;
    }

    .c-link-panel-image-head:hover,
    .c-link-panel-image-head:active {
        background-color: #f4f4f4;
        box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    }

    .c-link-panel-image-head:hover::after,
    .c-link-panel-image-head:active::after {
        animation: none;
    }

    .c-link-panel-image-head:hover img,
    .c-link-panel-image-head:active img {
        filter: none;
    }

    .bg-gray .c-link-panel-image-head:hover,
    .bg-gray .c-link-panel-image-head:active {
        background-color: #fff;
    }
}

/* ---- image: left / text: right ---- */
.c-link-panel-image-left {
    display: flex;
    margin-top: 50px;
    border-radius: 20px;
    background-color: #fdfdfd;
    overflow: hidden;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
}

.bg-gray .c-link-panel-image-left {
    background-color: #fff;
}

.c-link-panel-image-left>img {
    display: block;
    width: 50%;
    -o-object-fit: cover;
    object-fit: cover;
}

.c-link-panel-image-left picture {
    display: block;
    width: 50%;
}

.c-link-panel-image-left picture img {
    width: 100%;
    max-width: none;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}

.c-link-panel-image-left .txt {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    width: 50%;
    padding: 40px 3.6% 24px;
    /*
  &::before {
    content: "";
    display: block;
    position: absolute;
    left: 7.2%;
    top: 0;
    width: 20px;
    height: 5px;
    border-radius: 0 0 2px 2px;
    background-color: g.$color_1;
  }
  */
}

.c-link-panel-image-left .txt .heading {
    margin: 16px 0;
    color: #2e2e2e;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.6;
}

.c-link-panel-image-left .txt .heading.large {
    margin-top: 40px;
    font-size: 3.2rem;
}

.c-link-panel-image-left .txt .heading.large span {
    display: block;
    margin-top: 12px;
    font-size: 1.6rem;
}

.c-link-panel-image-left .txt p {
    display: -webkit-box;
    margin-bottom: 8px;
    font-size: 1.6rem;
    letter-spacing: 0.07em;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
}

.c-link-panel-image-left .txt ul {
    margin-top: auto;
}

.c-link-panel-image-left .txt ul li {
    margin-top: 14px;
    text-align: right;
}

.c-link-panel-image-left.col-1-2>img,
.c-link-panel-image-left.col-1-2 picture {
    width: 33.3333%;
}

.c-link-panel-image-left.col-1-2 .txt {
    width: 66.6666%;
}

.c-link-panel-image-left.col-2-1>img,
.c-link-panel-image-left.col-2-1 picture {
    width: 66.6666%;
}

.c-link-panel-image-left.col-2-1 .txt {
    width: 33.3333%;
}

@media screen and (max-width: 767.9px) {
    .c-link-panel-image-left {
        display: block;
        margin-top: 8.5vw;
        border-radius: 12px;
    }

    .c-link-panel-image-left>img {
        width: auto;
        aspect-ratio: 1.91/1;
    }

    .c-link-panel-image-left picture {
        width: auto;
    }

    .c-link-panel-image-left picture img {
        aspect-ratio: 1.91/1;
    }

    .c-link-panel-image-left .txt {
        display: block;
        width: auto;
        padding: 28px 9% 24px;
        /*
    &::before {
      left: 9%;
    }
    */
    }

    .c-link-panel-image-left .txt .heading {
        margin-top: 0;
    }

    .c-link-panel-image-left .txt .heading.large {
        margin-top: 0;
        font-size: 2.4rem;
    }

    .c-link-panel-image-left .txt .heading.large span {
        margin-top: 4px;
        font-size: 1.4rem;
    }

    .c-link-panel-image-left .txt ul {
        margin-top: 0;
    }

    .c-link-panel-image-left .txt ul li {
        margin-top: 0;
    }

    .c-link-panel-image-left.col-1-2>img,
    .c-link-panel-image-left.col-1-2 picture {
        width: auto;
    }

    .c-link-panel-image-left.col-1-2 .txt {
        width: auto;
    }

    .c-link-panel-image-left.col-2-1>img,
    .c-link-panel-image-left.col-2-1 picture {
        width: auto;
    }

    .c-link-panel-image-left.col-2-1 .txt {
        width: auto;
    }

    .c-link-panel-image-left.col-2-1 .txt .heading {
        margin-top: 0;
    }
}

/* ---- pict / text ---- */
.c-link-panel-pict {
    display: block;
    position: relative;
    height: 100%;
    padding: 70px 9% 60px;
    border-radius: 12px;
    background-color: #fdfdfd;
    color: #2e2e2e;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    transition: background-color 0.2s, box-shadow 0.2s;
    /*
  &::before {
    content: "";
    display: block;
    position: absolute;
    left: 9%;
    top: 0;
    width: 20px;
    height: 5px;
    border-radius: 0 0 2px 2px;
    background-color: g.$color_1;
  }
  */
}

.bg-gray .c-link-panel-pict {
    background-color: #fff;
}

.c-link-panel-pict::after {
    content: "";
    display: block;
    position: absolute;
    right: 16px;
    bottom: 16px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-link-panel-pict img {
    display: block;
    width: 70%;
    max-width: 200px;
    margin: 0 auto;
}

.c-link-panel-pict p {
    margin-top: 40px;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
}

.c-link-panel-pict:hover,
.c-link-panel-pict:active {
    background-color: #eaeaea;
    color: #2e2e2e;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0);
}

.c-link-panel-pict:hover::after,
.c-link-panel-pict:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

@media screen and (max-width: 767.9px) {
    .c-link-panel-pict {
        padding: 36px 10% 30px;
        transition: none;
        /*
    &::before {
      left: 10%;
    }
    */
    }

    .c-link-panel-pict img {
        width: 80%;
    }

    .c-link-panel-pict p {
        margin-top: 30px;
    }

    .c-link-panel-pict:hover,
    .c-link-panel-pict:active {
        background-color: #f4f4f4;
        box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
    }

    .c-link-panel-pict:hover::after,
    .c-link-panel-pict:active::after {
        animation: none;
    }

    .bg-gray .c-link-panel-pict:hover,
    .bg-gray .c-link-panel-pict:active {
        background-color: #fff;
    }
}

/* ---- with buttons ---- */
.c-link-panel-button {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    padding: 36px 8%;
    border-radius: 12px;
    background-color: #fdfdfd;
    overflow: hidden;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
}

.bg-gray .c-link-panel-button {
    background-color: #fff;
}

.c-link-panel-button>.inner {
    margin-bottom: 30px;
}

.c-link-panel-button .c-tag-list:first-child {
    margin-bottom: 10px;
}

.c-link-panel-button .heading {
    color: #2e2e2e;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-link-panel-button p {
    margin-top: 1.5em;
    color: #2e2e2e;
    font-size: 1.6rem;
    line-height: 2;
}

.c-link-panel-button p:lang(en) {
    line-height: 1.5;
}

.c-link-panel-button .button {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

.c-link-panel-button .button .c-button {
    margin: 0;
}

@media screen and (max-width: 767.9px) {
    .c-link-panel-button {
        display: block;
        padding: 28px 9%;
    }

    .c-link-panel-button>.inner {
        margin-bottom: 20px;
    }

    .c-link-panel-button .c-tag-list:first-child {
        margin-bottom: 8px;
    }

    .c-link-panel-button .heading {
        font-size: 1.8rem;
        line-height: 1.4;
    }

    .c-link-panel-button p {
        margin-top: 1em;
        font-size: 1.4rem;
        line-height: 1.6;
    }

    .c-link-panel-button .button {
        gap: 12px;
    }

    .c-link-panel-button .button .c-button {
        margin: 0;
    }
}

/* ---- DAY2: image: left / text: right ---- */
.c-link-panel-image-left-d2 {
    display: flex;
    position: relative;
    min-height: 290px;
    margin-top: 50px;
    border-radius: 20px;
    background-color: #fdfdfd;
    overflow: hidden;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
}

.c-link-panel-image-left-d2::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: #2e2e2e;
    opacity: 0;
    transition: opacity 0.2s ease-out;
    pointer-events: none;
}

.c-link-panel-image-left-d2:hover::after,
.c-link-panel-image-left-d2:active::after {
    opacity: 0.12;
}

.bg-gray .c-link-panel-image-left-d2 {
    background-color: #fff;
}

.c-link-panel-image-left-d2>img {
    display: block;
    width: 50%;
    -o-object-fit: cover;
    object-fit: cover;
}

.c-link-panel-image-left-d2 picture {
    display: block;
    width: 50%;
}

.c-link-panel-image-left-d2 picture img {
    width: 100%;
    max-width: none;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}

.c-link-panel-image-left-d2 .txt {
    position: relative;
    width: 50%;
    padding: 40px 3.6%;
}

.c-link-panel-image-left-d2 .txt.vertical-center {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.c-link-panel-image-left-d2 .txt .c-module-tag-d2 {
    margin-bottom: 16px;
}

.c-link-panel-image-left-d2 .txt p {
    display: -webkit-box;
    margin-bottom: 40px;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
}

.c-link-panel-image-left-d2 .txt .heading {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    line-height: 1.5;
}

.c-link-panel-image-left-d2 .txt .heading+p {
    margin-top: 20px;
    font-size: 1.6rem;
    font-weight: 400;
}

.c-link-panel-image-left-d2 .txt .c-link-text-d2 {
    position: absolute;
    right: 7.2%;
    bottom: 40px;
    width: 85.6%;
}

.c-link-panel-image-left-d2.col-1-2>img,
.c-link-panel-image-left-d2.col-1-2 picture {
    width: 33.3333%;
}

.c-link-panel-image-left-d2.col-1-2 .txt {
    width: 66.6666%;
}

.c-link-panel-image-left-d2.col-2-1>img,
.c-link-panel-image-left-d2.col-2-1 picture {
    width: 66.6666%;
}

.c-link-panel-image-left-d2.col-2-1 .txt {
    width: 33.3333%;
}

@media screen and (max-width: 767.9px) {
    .c-link-panel-image-left-d2 {
        display: block;
        min-height: auto;
        margin-top: 8.5vw;
        border-radius: 12px;
    }

    .c-link-panel-image-left-d2>img {
        width: auto;
        aspect-ratio: 1.78/1;
    }

    .c-link-panel-image-left-d2 picture {
        width: auto;
    }

    .c-link-panel-image-left-d2 picture img {
        aspect-ratio: 1.78/1;
    }

    .c-link-panel-image-left-d2 .txt {
        width: auto;
        padding: 28px 9% 24px;
    }

    .c-link-panel-image-left-d2 .txt.vertical-center {
        display: block;
    }

    .c-link-panel-image-left-d2 .txt p {
        margin-bottom: 24px;
        font-size: 1.8rem;
    }

    .c-link-panel-image-left-d2 .txt .c-link-text-d2 {
        position: relative;
        right: auto;
        bottom: auto;
        width: auto;
    }

    .c-link-panel-image-left-d2.col-1-2>img,
    .c-link-panel-image-left-d2.col-1-2 picture {
        width: auto;
    }

    .c-link-panel-image-left-d2.col-1-2 .txt {
        width: auto;
    }

    .c-link-panel-image-left-d2.col-2-1>img,
    .c-link-panel-image-left-d2.col-2-1 picture {
        width: auto;
    }

    .c-link-panel-image-left-d2.col-2-1 .txt {
        width: auto;
    }
}

/* ---- slider (Splide) ---- */
@keyframes splide-loading {
    0% {
        transform: rotate(0);
    }

    to {
        transform: rotate(1turn);
    }
}

.splide__track--draggable {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

.splide__track--fade>.splide__list>.splide__slide {
    margin: 0 !important;
    opacity: 0;
    z-index: 0;
}

.splide__track--fade>.splide__list>.splide__slide.is-active {
    opacity: 1;
    z-index: 1;
}

.splide--rtl {
    direction: rtl;
}

.splide__track--ttb>.splide__list {
    display: block;
}

.splide__container {
    box-sizing: border-box;
    position: relative;
}

.splide__list {
    backface-visibility: hidden;
    display: flex;
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.splide.is-initialized:not(.is-active) .splide__list {
    display: block;
}

.splide__pagination {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin: 0;
    pointer-events: none;
}

.splide__pagination li {
    display: inline-block;
    line-height: 1;
    list-style-type: none;
    margin: 0;
    pointer-events: auto;
}

.splide:not(.is-overflow) .splide__pagination {
    display: none;
}

.splide__progress__bar {
    width: 0;
}

.splide {
    position: relative;
    visibility: hidden;
}

.splide.is-initialized,
.splide.is-rendered {
    visibility: visible;
}

.splide__slide {
    backface-visibility: hidden;
    box-sizing: border-box;
    flex-shrink: 0;
    list-style-type: none !important;
    margin: 0;
    position: relative;
}

.splide__slide img {
    vertical-align: bottom;
}

.splide__spinner {
    animation: splide-loading 1s linear infinite;
    border: 2px solid #999;
    border-left-color: transparent;
    border-radius: 50%;
    bottom: 0;
    contain: strict;
    display: inline-block;
    height: 20px;
    left: 0;
    margin: auto;
    position: absolute;
    right: 0;
    top: 0;
    width: 20px;
}

.splide__sr {
    clip: rect(0 0 0 0);
    border: 0;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

.splide__toggle.is-active .splide__toggle__play,
.splide__toggle__pause {
    display: none;
}

.splide__toggle.is-active .splide__toggle__pause {
    display: inline;
}

.splide__track {
    overflow: hidden;
    position: relative;
    z-index: 0;
}

/*
--------------------------------
	panel slider
--------------------------------
*/
/* ---- text measure ---- */
#js-measure {
    position: absolute;
    top: 0;
    z-index: -100;
    visibility: hidden;
    pointer-events: none;
    font-size: 1.6rem;
    font-weight: 700;
    white-space: nowrap;
}

/* ---- panel ---- */
.c-panel-slider {
    position: relative;
    margin-top: 60px;
    padding-top: 40px;
    overflow: hidden;
}

.c-panel-slider .splide__track {
    overflow: visible;
}

.c-panel-slider .bg {
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    width: 100%;
    height: 240px;
    background-image: url(../images/bg_dots.png);
    background-size: 40px;
}

.c-panel-slider a:not([class]) {
    display: block;
    width: 288px;
}

.c-panel-slider a:not([class]) img {
    display: block;
    width: 100%;
    aspect-ratio: 1.91/1;
    -o-object-fit: cover;
    object-fit: cover;
    border-radius: 4px;
    transform: translate3d(0, 0, 0);
    filter: brightness(1);
    transition: filter 0.18s ease-out;
}

.c-panel-slider a:not([class]) p {
    position: relative;
    margin-top: 8px;
    padding: 16px 16px 40px;
    border-radius: 4px;
    background-color: #f4f4f4;
    transition: background-color 0.18s ease-out;
}

.c-panel-slider a:not([class]) p span {
    display: inline-block;
    width: 100%;
    margin-bottom: 4px;
    padding: 7px 12px;
    border-radius: 2px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
}

.c-panel-slider a:not([class]) p span:last-child {
    width: auto;
    margin-bottom: 0;
}

.c-panel-slider a:not([class]) p::after {
    content: "";
    display: block;
    position: absolute;
    right: 15px;
    bottom: 16px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-panel-slider a:not([class]):hover img,
.c-panel-slider a:not([class]):active img {
    filter: brightness(0.8);
}

.c-panel-slider a:not([class]):hover p,
.c-panel-slider a:not([class]):active p {
    color: #2e2e2e;
    background-color: #eaeaea;
}

.c-panel-slider a:not([class]):hover p::after,
.c-panel-slider a:not([class]):active p::after {
    animation: arrow-right 0.5s ease-in-out;
}

.c-panel-slider.bg-gray {
    margin-top: 0;
    padding: 120px 0;
    background-color: #f4f4f4;
}

.c-panel-slider.bg-gray.no-top-padding {
    padding-top: 0;
}

.c-panel-slider.bg-gray.no-bottom-padding {
    padding-bottom: 0;
}

.c-panel-slider.bg-gray .bg {
    display: none;
}

.c-panel-slider.bg-gray a:not([class]) p {
    background-color: #fff;
}

.c-panel-slider.bg-gray a:not([class]) p span {
    background-color: #f4f4f4;
}

@media screen and (max-width: 767.9px) {
    .c-panel-slider {
        margin-top: 10.7vw;
        padding-top: 10.7vw;
    }

    .c-panel-slider .bg {
        height: 70vw;
    }

    .c-panel-slider.bg-gray {
        margin-top: 0;
        padding: 21.3vw 0;
    }

    .c-panel-slider.bg-gray.no-top-padding {
        padding-top: 0;
    }

    .c-panel-slider.bg-gray.no-bottom-padding {
        padding-bottom: 0;
    }
}

@media (hover: none) {
    .c-panel-slider a:not([class]) img {
        filter: none;
        transition: none;
    }

    .c-panel-slider a:not([class]):hover img,
    .c-panel-slider a:not([class]):active img {
        filter: none;
    }

    .c-panel-slider a:not([class]):hover p,
    .c-panel-slider a:not([class]):active p {
        background-color: #f4f4f4;
    }

    .c-panel-slider a:not([class]):hover p::after,
    .c-panel-slider a:not([class]):active p::after {
        animation: none;
    }
}

/* ---- controls ---- */
.c-panel-slider .controls {
    margin-top: 40px;
    text-align: center;
}

.c-panel-slider .controls .inner {
    display: inline-flex;
    align-items: center;
    position: relative;
    height: 40px;
    padding: 0 88px 0 64px;
}

.c-panel-slider .controls .splide__arrows {
    display: flex;
    justify-content: space-between;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
}

.c-panel-slider .controls .splide__arrows button {
    display: block;
    position: relative;
    width: 40px;
    height: 40px;
    border: 1px solid #2e2e2e;
    border-radius: 50%;
    background-color: transparent;
    overflow: hidden;
    text-indent: -400px;
    transition: background-color 0.2s;
}

.c-panel-slider .controls .splide__arrows button.splide__arrow--prev::after {
    content: "";
    display: block;
    position: absolute;
    left: 13px;
    top: 15px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
    transform: rotate(180deg);
}

.c-panel-slider .controls .splide__arrows button.splide__arrow--next::after {
    content: "";
    display: block;
    position: absolute;
    right: 13px;
    top: 15px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-panel-slider .controls .splide__arrows button:hover,
.c-panel-slider .controls .splide__arrows button:active {
    background-color: #2e2e2e;
}

.c-panel-slider .controls .splide__arrows button:hover.splide__arrow--prev::after,
.c-panel-slider .controls .splide__arrows button:active.splide__arrow--prev::after {
    background: url(../images/icon_arrow_wht.svg) center no-repeat;
    animation: arrow-left 0.4s ease-in-out;
}

.c-panel-slider .controls .splide__arrows button:hover.splide__arrow--next::after,
.c-panel-slider .controls .splide__arrows button:active.splide__arrow--next::after {
    background: url(../images/icon_arrow_wht.svg) center no-repeat;
    animation: arrow-right 0.4s ease-in-out;
}

.c-panel-slider .controls .splide__toggle {
    display: block;
    position: absolute;
    right: 64px;
    top: 8px;
    width: 24px;
    height: 24px;
}

.c-panel-slider .controls .splide__toggle span {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    text-indent: -400px;
    opacity: 1;
    transition: opacity 0.2s;
}

.c-panel-slider .controls .splide__toggle span.splide__toggle__play {
    display: block;
}

.c-panel-slider .controls .splide__toggle span.splide__toggle__play::after {
    content: "";
    display: block;
    position: absolute;
    left: calc(50% - 3px);
    top: calc(50% - 6px);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px 0 6px 8px;
    border-color: transparent transparent transparent #2e2e2e;
}

.c-panel-slider .controls .splide__toggle span.splide__toggle__pause {
    display: none;
}

.c-panel-slider .controls .splide__toggle span.splide__toggle__pause::before {
    content: "";
    display: block;
    position: absolute;
    left: calc(50% - 3px);
    top: calc(50% - 6px);
    width: 2px;
    height: 12px;
    background-color: #2e2e2e;
}

.c-panel-slider .controls .splide__toggle span.splide__toggle__pause::after {
    content: "";
    display: block;
    position: absolute;
    left: calc(50% + 2px);
    top: calc(50% - 6px);
    width: 2px;
    height: 12px;
    background-color: #2e2e2e;
}

.c-panel-slider .controls .splide__toggle span:hover,
.c-panel-slider .controls .splide__toggle span:active {
    opacity: 0.25;
}

.c-panel-slider .controls .splide__toggle.is-active span.splide__toggle__play {
    display: none;
}

.c-panel-slider .controls .splide__toggle.is-active span.splide__toggle__pause {
    display: block;
}

.c-panel-slider .controls .splide__pagination {
    display: flex;
}

.c-panel-slider .controls .splide__pagination .splide__pagination__page {
    display: block;
    position: relative;
    width: 24px;
    height: 24px;
}

.c-panel-slider .controls .splide__pagination .splide__pagination__page::after {
    content: "";
    display: block;
    position: absolute;
    left: 8px;
    top: 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #2e2e2e;
    transition: background-color 0.2s;
}

.c-panel-slider .controls .splide__pagination .splide__pagination__page:hover::after,
.c-panel-slider .controls .splide__pagination .splide__pagination__page:active::after,
.c-panel-slider .controls .splide__pagination .splide__pagination__page.is-active::after {
    background-color: #d9d9d9;
}

@media screen and (max-width: 767.9px) {
    .c-panel-slider .controls {
        margin-top: 32px;
    }

    .c-panel-slider .controls .inner {
        padding: 0 76px 0 52px;
    }

    .c-panel-slider .controls .splide__toggle {
        right: 52px;
    }

    .c-panel-slider .controls .splide__toggle span:hover,
    .c-panel-slider .controls .splide__toggle span:active {
        opacity: 1;
    }

    .c-panel-slider .controls .splide__pagination .splide__pagination__page:hover::after,
    .c-panel-slider .controls .splide__pagination .splide__pagination__page:active::after {
        background-color: #2e2e2e;
    }
}

/* ---- not overflow (views all slides) ---- */
.splide:not(.is-overflow) .splide__list {
    justify-content: center;
}

.splide:not(.is-overflow) .splide__slide:last-child {
    margin: 0 !important;
}

.splide:not(.is-overflow) .controls {
    display: none;
}

/* ---- DAY2: panel ---- */
.c-panel-slider-d2 {
    position: relative;
    margin-top: 120px;
    padding: 80px 0;
    background-color: #353a3f;
    overflow: hidden;
}

.c-panel-slider-d2.wide {
    margin-top: 180px;
    padding: 180px 0 130px;
}

.c-panel-slider-d2.wide a {
    width: 420px;
}

.c-panel-slider-d2.wide a .img {
    aspect-ratio: 1/0.524;
}

.c-panel-slider-d2.wide a .txt {
    min-height: 200px;
    padding: 32px 6%;
}

.c-panel-slider-d2.wide a .txt:has(.c-module-tag-d2) {
    min-height: 224px;
}

.c-panel-slider-d2.wide a .txt p {
    font-size: 1.8rem;
}

.c-panel-slider-d2 .splide__track {
    overflow: visible;
}

.c-panel-slider-d2 a {
    display: block;
    width: 288px;
}

.c-panel-slider-d2 a .img {
    display: block;
    width: 100%;
    aspect-ratio: 1/0.667;
    border-radius: 20px;
    overflow: hidden;
}

.c-panel-slider-d2 a .img img {
    display: block;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    transform: scale(1);
    transition: transform 0.2s ease-out;
}

.c-panel-slider-d2 a .txt {
    position: relative;
    min-height: 172px;
    margin-top: 10px;
    padding: 26px 9% 22px;
    border-radius: 20px;
    background-color: #fff;
    transform: translateY(0);
    transition: transform 0.2s ease-out;
}

.c-panel-slider-d2 a .txt:has(.c-module-tag-d2) {
    min-height: 200px;
}

.c-panel-slider-d2 a .txt::after {
    content: "";
    display: block;
    position: absolute;
    right: 16px;
    bottom: 16px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
    opacity: 0;
    transform: translateX(-100%);
    transition: opacity 0.2s ease-out, transform 0.2s ease-out;
}

.c-panel-slider-d2 a .txt .c-module-tag-d2 {
    margin-bottom: 12px;
}

.c-panel-slider-d2 a .txt p {
    display: -webkit-box;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
    overflow: hidden;
}

.c-panel-slider-d2 a:hover .img img,
.c-panel-slider-d2 a:active .img img {
    transform: scale(1.05);
}

.c-panel-slider-d2 a:hover .txt,
.c-panel-slider-d2 a:active .txt {
    transform: translateY(-5px);
}

.c-panel-slider-d2 a:hover .txt::after,
.c-panel-slider-d2 a:active .txt::after {
    opacity: 1;
    transform: translateX(0);
}

@media screen and (max-width: 767.9px) {
    .c-panel-slider-d2 {
        margin-top: 21vw;
        padding: 21vw 0;
    }

    .c-panel-slider-d2.wide {
        padding: 21vw 0;
    }

    .c-panel-slider-d2.wide a {
        width: 288px;
    }

    .c-panel-slider-d2.wide a .txt p {
        font-size: 1.6rem;
    }
}

@media (hover: none) {
    .c-panel-slider-d2 a .img img {
        transform: none;
        transition: none;
    }

    .c-panel-slider-d2 a .txt {
        transform: none;
        transition: none;
    }

    .c-panel-slider-d2 a .txt::after {
        opacity: 1;
        transform: translateX(0);
    }

    .c-panel-slider-d2 a:hover .img img,
    .c-panel-slider-d2 a:active .img img {
        transform: none;
    }

    .c-panel-slider-d2 a:hover .txt,
    .c-panel-slider-d2 a:active .txt {
        transform: none;
    }

    .c-panel-slider-d2 a:hover .txt::after,
    .c-panel-slider-d2 a:active .txt::after {
        opacity: 1;
        transform: translateX(0);
    }
}

/* ---- DAY2: controls ---- */
.c-panel-slider-d2 .controls {
    margin-top: 60px;
    text-align: center;
}

.c-panel-slider-d2 .controls .inner {
    display: inline-flex;
    align-items: center;
    position: relative;
    height: 50px;
    padding: 0 86px;
}

.c-panel-slider-d2 .controls .splide__pagination .splide__pagination__page {
    display: block;
    position: relative;
    width: 16px;
    height: 24px;
}

.c-panel-slider-d2 .controls .splide__pagination .splide__pagination__page::after {
    content: "";
    display: block;
    position: absolute;
    left: 6px;
    top: 7px;
    width: 5px;
    height: 10px;
    background-color: rgba(255, 255, 255, 0.3);
    transform: skewX(-30deg);
    transition: background-color 0.2s;
}

.c-panel-slider-d2 .controls .splide__pagination .splide__pagination__page.is-active::after {
    background-color: #fff;
}

.c-panel-slider-d2 .controls .splide__pagination .splide__pagination__page:hover::after,
.c-panel-slider-d2 .controls .splide__pagination .splide__pagination__page:active::after {
    background-color: #fff;
}

.c-panel-slider-d2 .controls .splide__arrows {
    display: flex;
    justify-content: space-between;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
}

.c-panel-slider-d2 .controls .splide__arrows button {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.3);
    overflow: hidden;
    text-indent: -400px;
    transition: background-color 0.2s;
}

.c-panel-slider-d2 .controls .splide__arrows button::after {
    content: "";
    display: block;
    position: absolute;
    width: 16px;
    height: 12px;
    background: url(../images/icon_arrow.svg) center no-repeat;
    background-size: 16px 12px;
}

.c-panel-slider-d2 .controls .splide__arrows button.splide__arrow--prev {
    transform: rotate(180deg);
}

.c-panel-slider-d2 .controls .splide__arrows button:hover,
.c-panel-slider-d2 .controls .splide__arrows button:active {
    background-color: #fff;
}

@media screen and (max-width: 767.9px) {
    .c-panel-slider-d2 .controls {
        margin-top: 32px;
    }

    .c-panel-slider-d2 .controls .inner {
        padding: 0 70px;
    }
}

@media (hover: none) {
    .c-panel-slider-d2 .controls .splide__pagination .splide__pagination__page.is-active::after {
        background-color: #fff !important;
    }

    .c-panel-slider-d2 .controls .splide__pagination .splide__pagination__page:hover::after,
    .c-panel-slider-d2 .controls .splide__pagination .splide__pagination__page:active::after {
        background-color: rgba(255, 255, 255, 0.3);
    }

    .c-panel-slider-d2 .controls .splide__arrows button:hover,
    .c-panel-slider-d2 .controls .splide__arrows button:active {
        background-color: rgba(255, 255, 255, 0.3);
    }
}

/* ---- DAY2: pc: col-4 / sp: slider ---- */
@media screen and (min-width: 768px) {
    .c-panel-slider-responsive-d2.is-initialized:not(.is-active) .splide__list {
        display: flex;
        flex-wrap: wrap;
        gap: min(2.8vw, 40px);
        height: auto;
    }

    .c-panel-slider-responsive-d2.is-initialized:not(.is-active) .splide__list .splide__slide {
        width: max(25% - 2.102vw, 25% - 30px);
    }

    .c-panel-slider-responsive-d2 .controls {
        display: none;
    }
}

@media screen and (max-width: 767.9px) {
    .c-panel-slider-responsive-d2 {
        margin: 0 -5vw;
    }

    .c-panel-slider-responsive-d2 .controls {
        margin-top: 32px;
        text-align: center;
    }

    .c-panel-slider-responsive-d2 .controls .inner {
        display: inline-flex;
        align-items: center;
        position: relative;
        height: 50px;
        padding: 0 70px;
    }

    .c-panel-slider-responsive-d2 .controls .splide__pagination .splide__pagination__page {
        display: block;
        position: relative;
        width: 16px;
        height: 24px;
    }

    .c-panel-slider-responsive-d2 .controls .splide__pagination .splide__pagination__page::after {
        content: "";
        display: block;
        position: absolute;
        left: 6px;
        top: 7px;
        width: 5px;
        height: 10px;
        background-color: #2e2e2e;
        transform: skewX(-30deg);
        transition: background-color 0.2s;
    }

    .c-panel-slider-responsive-d2 .controls .splide__pagination .splide__pagination__page.is-active::after {
        background-color: #d9d9d9;
    }

    .c-panel-slider-responsive-d2 .controls .splide__pagination .splide__pagination__page:hover::after,
    .c-panel-slider-responsive-d2 .controls .splide__pagination .splide__pagination__page:active::after {
        background-color: #d9d9d9;
    }

    .c-panel-slider-responsive-d2 .controls .splide__arrows {
        display: flex;
        justify-content: space-between;
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
    }

    .c-panel-slider-responsive-d2 .controls .splide__arrows button {
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
        width: 50px;
        height: 50px;
        border-radius: 50%;
        background-color: #2e2e2e;
        overflow: hidden;
        text-indent: -400px;
        transition: background-color 0.2s;
    }

    .c-panel-slider-responsive-d2 .controls .splide__arrows button::after {
        content: "";
        display: block;
        position: absolute;
        width: 16px;
        height: 12px;
        background: url(../images/icon_arrow_wht.svg) center no-repeat;
        background-size: 16px 12px;
    }

    .c-panel-slider-responsive-d2 .controls .splide__arrows button.splide__arrow--prev {
        transform: rotate(180deg);
    }

    .c-panel-slider-responsive-d2 .controls .splide__arrows button:hover,
    .c-panel-slider-responsive-d2 .controls .splide__arrows button:active {
        background-color: #d9d9d9;
    }
}

@media (hover: none) {
    .c-panel-slider-responsive-d2 .controls .splide__pagination .splide__pagination__page.is-active::after {
        background-color: #d9d9d9 !important;
    }

    .c-panel-slider-responsive-d2 .controls .splide__pagination .splide__pagination__page:hover::after,
    .c-panel-slider-responsive-d2 .controls .splide__pagination .splide__pagination__page:active::after {
        background-color: #2e2e2e;
    }

    .c-panel-slider-responsive-d2 .controls .splide__arrows button:hover,
    .c-panel-slider-responsive-d2 .controls .splide__arrows button:active {
        background-color: #2e2e2e;
    }
}

/*
--------------------------------
	search
--------------------------------
*/
/* ---- header ---- */
.c-search-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 70px 0 !important;
}

.c-search-header h2 {
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.4;
}

@media screen and (max-width: 767.9px) {
    .c-search-header {
        margin: 17.1vw 0 10.7vw !important;
    }

    .c-search-header h2 {
        font-size: 2.4rem;
    }

    .page-heading-lv3~.body-container .c-search-header {
        margin-top: 10.7vw !important;
    }
}

/* ---- modal open button ---- */
.c-search-header button {
    display: inline-block;
    position: relative;
    padding: 13px 50px 11px 18px;
    background-color: #fff;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    transition: background-color 0.2s;
}

.c-search-header button::after {
    content: "";
    display: block;
    position: absolute;
    right: 12px;
    top: calc(50% - 11px);
    width: 24px;
    height: 24px;
    background-image: url(../images/icon_modal.svg);
    background-repeat: no-repeat;
    background-size: 24px;
}

.c-search-header button:hover,
.c-search-header button:active {
    background-color: #eaeaea;
}

@media screen and (max-width: 767.9px) {
    .c-search-header button {
        display: block;
        width: 43px;
        height: 44px;
        padding: 0;
        background-color: transparent;
        background-image: url(../images/btn_filter.svg);
        background-repeat: no-repeat;
        background-size: 100%;
        border-style: none;
        border-radius: 0;
        overflow: hidden;
        text-indent: -400px;
        transition: none;
    }

    .c-search-header button::after {
        content: none;
    }

    .c-search-header button:hover,
    .c-search-header button:active {
        background-color: transparent;
    }
}

/* ---- mordal ---- */
.search-modal {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 3001;
    width: 100%;
    height: 100vh;
    padding: 5vw;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease-out;
}

.search-modal.is-open {
    opacity: 1;
    transition: opacity 0.25s ease-out;
}

.search-modal.is-open .inner {
    pointer-events: auto;
}

.search-modal .inner {
    position: relative;
    width: 100%;
    max-width: 1104px;
    max-height: calc(100vh - 5vw * 2);
    padding: 50px 0 30px;
    border-radius: 4px;
    background-color: #f4f4f4;
}

.search-modal .head {
    display: none;
}

.search-modal .anchor-head {
    display: flex;
    height: 50px;
    padding: 0 4.5%;
}

.search-modal .anchor-head li {
    margin-right: 30px;
}

.search-modal .anchor-head+.scroll {
    max-height: calc(100vh - 10vw - 240px);
}

.search-modal .scroll {
    position: relative;
    margin: 0 4.5%;
    overflow-y: auto;
    max-height: calc(100vh - 10vw - 190px);
}

.search-modal .scroll::-webkit-scrollbar {
    width: 8px;
}

.search-modal .scroll::-webkit-scrollbar-track {
    background-color: transparent;
}

.search-modal .scroll::-webkit-scrollbar-thumb {
    border-radius: 4px;
    background-color: #2e2e2e;
}

.search-modal .category-head {
    margin: 60px 0 24px;
    padding-top: 60px;
    border-top: 1px solid #d9d9d9;
    font-size: 2.4rem;
    font-weight: 700;
}

.search-modal .category-head:first-child {
    margin: 40px 0 32px;
    padding-top: 0;
    border-top-style: none;
}

.search-modal .category-head button {
    display: none;
}

.search-modal .category-body:last-child {
    padding-bottom: 60px;
}

.search-modal .category-body>ul:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom-style: none;
}

.search-modal .category-body li {
    width: 20%;
    padding-right: 20px;
}

.search-modal dt {
    margin-top: 32px;
    font-size: 2rem;
    font-weight: 700;
}

.search-modal dt:first-child {
    margin-top: 0;
}

.search-modal dt button {
    display: none;
}

.search-modal dd {
    margin-top: 20px;
}

.search-modal dd:last-child ul {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom-style: none;
}

.search-modal .scroll ul {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 32px;
    padding-bottom: 25px;
    border-bottom: 1px solid #d9d9d9;
}

.search-modal .scroll ul#js-year li {
    width: 96px;
}

.search-modal .scroll ul#js-month li {
    padding-right: 20px;
}

.search-modal .scroll ul#js-category li {
    width: 190px;
    padding-right: 20px;
}

.search-modal .scroll ul a {
    position: relative;
    display: inline-block;
    padding: 8px 25px 6px 0;
    color: #2e2e2e;
    font-size: 1.3rem;
    line-height: 1.6;
}

.search-modal .scroll ul a::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: 3px;
    width: 100%;
    height: 1px;
    background-color: #e2e2e2;
}

.search-modal .scroll ul a::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 6px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.search-modal .scroll ul a:hover,
.search-modal .scroll ul a:active {
    color: #2e2e2e;
}

.search-modal .scroll ul a:hover::after,
.search-modal .scroll ul a:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

.search-modal .button {
    display: flex;
    justify-content: space-between;
    margin-top: 30px;
    padding: 30px 4.5% 0;
    border-top: 1px solid #d9d9d9;
}

.search-modal .button .btn-close {
    display: none;
}

.search-modal .button .btn-reset {
    display: block;
    padding: 2px 0 0 24px;
    background-image: url(../images/icon_reset.svg);
    background-repeat: no-repeat;
    background-size: 16px;
    background-position: 0 50%;
    color: #bfbfbf;
    font-size: 1.5rem;
}

.search-modal .button .btn-submit {
    display: block;
    width: 336px;
    padding: 16px;
    border: 1px solid #2e2e2e;
    border-radius: 4px;
    background-color: #2e2e2e;
    color: #fff;
    font-size: 1.5rem;
    font-weight: bold;
    text-align: center;
    transition: background-color 0.2s ease-out, color 0.2s ease-out;
}

.search-modal .button .btn-submit:hover,
.search-modal .button .btn-submit:active {
    background-color: #fff;
    color: #2e2e2e;
}

.search-modal .btn-close-pc {
    display: block;
    position: absolute;
    right: -15px;
    top: -15px;
    width: 40px;
    height: 40px;
    border: 1px solid #2e2e2e;
    border-radius: 50%;
    background-color: #fff;
    overflow: hidden;
    text-indent: -400px;
    transition: background-color 0.2s;
}

.search-modal .btn-close-pc::before {
    content: "";
    display: block;
    position: absolute;
    left: 13px;
    top: 18px;
    width: 12px;
    height: 2px;
    background-color: #2e2e2e;
    transform: rotate(45deg);
    transition: background-color 0.2s;
}

.search-modal .btn-close-pc::after {
    content: "";
    display: block;
    position: absolute;
    left: 13px;
    top: 18px;
    width: 12px;
    height: 2px;
    background-color: #2e2e2e;
    transform: rotate(-45deg);
    transition: background-color 0.2s;
}

.search-modal .btn-close-pc:hover,
.search-modal .btn-close-pc:active {
    background-color: #2e2e2e;
}

.search-modal .btn-close-pc:hover::before,
.search-modal .btn-close-pc:active::before {
    background-color: #fff;
}

.search-modal .btn-close-pc:hover::after,
.search-modal .btn-close-pc:active::after {
    background-color: #fff;
}

@media screen and (min-width: 1200px) {

    .search-modal .category-body,
    .search-modal dd {
        height: auto !important;
    }
}

@media screen and (max-width: 767.9px) {
    .search-modal {
        display: block;
        height: 100dvh;
        padding: 0;
    }

    .search-modal .inner {
        max-width: none;
        height: 100%;
        max-height: none;
        padding: 65px 0 87px;
        border-radius: 0;
    }

    .search-modal .head {
        display: flex;
        justify-content: space-between;
        align-items: center;
        position: fixed;
        top: 0;
        left: 0;
        z-index: 2;
        width: 100%;
        height: 65px;
        padding-left: calc(5vw - 5px);
        background-color: #fff;
    }

    .search-modal .head p {
        padding: 10px 0 10px 37px;
        background-image: url(../images/icon_modal.svg);
        background-repeat: no-repeat;
        background-size: 36px;
        background-position: 0 50%;
        font-size: 2rem;
        font-weight: 700;
    }

    .search-modal .head button {
        display: inline-block;
        height: 65px;
        padding: 0 5vw 0 calc(5vw + 24px);
        background-image: url(../images/icon_reset.svg);
        background-repeat: no-repeat;
        background-size: 16px;
        background-position: 5vw 50%;
        color: #bfbfbf;
        font-size: 1.5rem;
        line-height: 64px;
    }

    .search-modal .anchor-head {
        display: none;
    }

    .search-modal .anchor-head+.scroll {
        max-height: calc(100dvh - 152px);
    }

    .search-modal .scroll {
        max-height: calc(100dvh - 152px);
        margin: 0;
    }

    .search-modal .category-head {
        display: block;
        position: relative;
        margin: 0 !important;
        padding: 22px calc(5vw * 2 + 12px) 22px 5vw !important;
        border-top-style: none;
        font-size: 1.8rem;
    }

    .search-modal .category-body {
        height: 0;
        border-bottom: 1px solid #d9d9d9;
        overflow: hidden;
    }

    .search-modal .category-body:last-child {
        padding-bottom: 0;
    }

    .search-modal .category-body>ul {
        margin-bottom: 0;
        padding-bottom: 20px;
        border-bottom-style: none;
    }

    .search-modal .category-body>ul:last-child {
        padding-bottom: 20px;
    }

    .search-modal .category-body li {
        width: 50%;
        padding-right: 15px;
    }

    .search-modal .category-body dt {
        padding: 16px 5vw 8px 5vw;
        border-top-style: none;
        font-size: 1.6rem;
    }

    .search-modal .category-body dd {
        height: auto;
        border-bottom-style: none;
    }

    .search-modal .category-body dd:last-child {
        padding-bottom: 20px;
    }

    .search-modal #job+.category-body {
        transition: height 0.7s ease-in-out;
    }

    .search-modal #business+.category-body {
        transition: height 0.25s ease-in-out;
    }

    .search-modal #employ+.category-body {
        transition: height 0.2s ease-in-out;
    }

    .search-modal dt {
        position: relative;
        padding: 22px calc(5vw * 2 + 12px) 22px 5vw;
        font-size: 1.8rem;
    }

    .search-modal dt:nth-child(n+2) {
        margin-top: 0;
        padding-top: 23px;
        border-top-style: none;
    }

    .search-modal dd {
        height: 0;
        margin-top: 0;
        border-bottom: 1px solid #d9d9d9;
        overflow: hidden;
        transition: height 0.2s ease-out;
    }

    .search-modal .category-head button,
    .search-modal dt button {
        display: block;
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        overflow: hidden;
        text-align: left;
        text-indent: -400px;
    }

    .search-modal .category-head button::before,
    .search-modal dt button::before {
        content: "";
        display: block;
        position: absolute;
        right: 5vw;
        top: calc(50% - 1px);
        width: 14px;
        height: 2px;
        background-color: #2e2e2e;
    }

    .search-modal .category-head button::after,
    .search-modal dt button::after {
        content: "";
        display: block;
        position: absolute;
        right: 5vw;
        top: calc(50% - 1px);
        width: 14px;
        height: 2px;
        background-color: #2e2e2e;
        opacity: 1;
        transform: rotate(-90deg);
        transition: opacity 0.2s, transform 0.2s;
    }

    .search-modal .category-head button.is-open::after,
    .search-modal dt button.is-open::after {
        opacity: 0;
        transform: rotate(0);
    }

    .search-modal .scroll ul {
        margin-bottom: 0;
        padding: 0 5vw 20px;
        border-bottom-style: none;
    }

    .search-modal .scroll ul:last-child {
        padding-bottom: 20px;
    }

    .search-modal .scroll ul#js-year li,
    .search-modal .scroll ul#js-year-all li,
    .search-modal .scroll ul#js-month li {
        width: 25%;
        padding-right: 0;
    }

    .search-modal .scroll ul#js-category li {
        width: 50%;
        padding-right: 15px;
    }

    .search-modal .button {
        justify-content: space-between;
        align-items: center;
        position: fixed;
        left: 0;
        bottom: 0;
        z-index: 3;
        width: 100%;
        height: 88px;
        margin-top: 0;
        padding: 0 5vw;
        border-top: 1px solid #d9d9d9;
        background-color: #f4f4f4;
    }

    .search-modal .button .btn-close {
        display: block;
        width: calc((100% - 5vw) / 2);
        padding: 16px;
        border: 1px solid #ebebeb;
        background-color: #fff;
        color: #2e2e2e;
        font-size: 1.5rem;
        font-weight: bold;
        transition: none;
    }

    .search-modal .button .btn-close:hover,
    .search-modal .button .btn-close:active {
        background-color: #fff;
        color: #2e2e2e;
    }

    .search-modal .button .btn-reset {
        display: none;
    }

    .search-modal .button .btn-submit {
        display: block;
        width: calc((100% - 5vw) / 2);
        padding: 16px;
        border: 1px solid #2e2e2e;
        background-color: #2e2e2e;
        color: #fff;
        font-size: 1.5rem;
        font-weight: bold;
        transition: none;
    }

    .search-modal .button .btn-submit:hover,
    .search-modal .button .btn-submit:active {
        background-color: #2e2e2e;
        color: #fff;
    }

    .search-modal .btn-close-pc {
        display: none;
    }
}

@media (hover: none) {
    .search-modal .scroll::-webkit-scrollbar {
        display: none;
    }

    .search-modal .scroll::-webkit-scrollbar-track {
        display: none;
    }

    .search-modal .scroll::-webkit-scrollbar-thumb {
        display: none;
    }
}

/* ---- mordal bg ---- */
.bg-search-modal {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 3000;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.3);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.12s ease-out;
}

.bg-search-modal.is-open {
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.16s ease-out;
}

@media screen and (max-width: 767.9px) {
    .bg-search-modal {
        display: none;
    }
}

/* ---- radio button ---- */
.search-modal input[type=radio],
.c-radio {
    display: none;
}

.search-modal input[type=radio]+label,
.c-radio+label {
    position: relative;
    display: inline-block;
    padding: 8px 0 6px 24px;
    font-size: 1.3rem;
    letter-spacing: normal;
    line-height: 1.6;
    cursor: pointer;
}

.search-modal input[type=radio]+label::before,
.c-radio+label::before {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 9px);
    left: 0;
    width: 18px;
    height: 18px;
    border: 1px solid #d9d9d9;
    border-radius: 50%;
    background-color: #fff;
}

.search-modal input[type=radio]+label::after,
.c-radio+label::after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 5px);
    left: 4px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #fff;
    transform: scale(0.5);
    transition: background-color 0.2s, transform 0.2s;
}

.search-modal input[type=radio]:checked+label::after,
.c-radio:checked+label::after {
    background-color: #2e2e2e;
    transform: scale(1);
}

@media screen and (max-width: 767.9px) {
    .search-modal input[type=radio]+label {
        padding: 11px 0 9px 26px;
    }

    .search-modal input[type=radio]+label::before {
        top: 11px;
    }

    .search-modal input[type=radio]+label::after {
        top: 15px;
    }
}

/* ---- checkbox ---- */
.search-modal input[type=checkbox],
.c-checkbox {
    display: none;
}

.search-modal input[type=checkbox]+label,
.c-checkbox+label {
    position: relative;
    display: inline-block;
    padding: 9px 0 6px 24px;
    font-size: 1.3rem;
    letter-spacing: normal;
    line-height: 1.6;
    cursor: pointer;
}

.search-modal input[type=checkbox]+label::before,
.c-checkbox+label::before {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 9px);
    left: 0;
    width: 18px;
    height: 18px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    background-color: #fff;
    transition: border-color 0.12s, background-color 0.12s;
}

.search-modal input[type=checkbox]+label::after,
.c-checkbox+label::after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 4px);
    left: 4px;
    width: 10px;
    height: 5px;
    border-left: 1px solid #fff;
    border-bottom: 1px solid #fff;
    transform: rotate(-45deg);
}

.search-modal input[type=checkbox]:checked+label::before,
.c-checkbox:checked+label::before {
    border-color: #2e2e2e;
    background-color: #2e2e2e;
}

@media screen and (max-width: 767.9px) {
    .search-modal input[type=checkbox]+label {
        padding: 11px 0 9px 26px;
    }
}

/*
--------------------------------
	view more
--------------------------------
*/
/* ---- list ---- */
.c-viewmore-list>* {
    display: none;
}

.c-viewmore-list>*.is-shown {
    display: block;
    animation: viewmore-fadeup 0.8s cubic-bezier(0.16, 0.64, 0.48, 1);
}

@keyframes viewmore-fadeup {
    0% {
        transform: translateY(150px);
        opacity: 0;
    }

    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

/* ---- button ---- */
.c-viewmore-button {
    display: block;
    width: 100%;
    height: 66px;
    margin-top: 60px;
    overflow: hidden;
    border-radius: 12px;
    background-color: #f4f4f4;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 65px;
    text-align: center;
    opacity: 1;
    transform: scale(1);
    transition: background-color 0.2s ease-out, color 0.2s ease-out, opacity 0.2s 0.2s, height 0.2s 0s, margin-top 0.2s 0s;
}

.bg-gray .c-viewmore-button {
    background-color: #fff;
}

.c-viewmore-button.is-hidden {
    height: 0;
    margin-top: 0;
    opacity: 0;
    transition: opacity 0.4s 0s, height 0.4s 0.4s, margin-top 0.4s 0.4s;
}

.c-viewmore-button span {
    display: inline-block;
    position: relative;
    padding-right: 25px;
}

.c-viewmore-button span::before {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 1px);
    width: 14px;
    height: 2px;
    background-color: #2e2e2e;
    transition: background-color 0.2s ease-out;
}

.c-viewmore-button span::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 1px);
    width: 14px;
    height: 2px;
    background-color: #2e2e2e;
    transform: rotate(90deg);
    transition: background-color 0.2s ease-out;
}

.c-viewmore-button:hover,
.c-viewmore-button:active {
    background-color: #2e2e2e;
    color: #fff;
}

.c-viewmore-button:hover span::before,
.c-viewmore-button:active span::before {
    background-color: #fff;
}

.c-viewmore-button:hover span::after,
.c-viewmore-button:active span::after {
    background-color: #fff;
}

@media screen and (max-width: 767.9px) {
    .c-viewmore-button {
        margin-top: 10.7vw;
        transition: none;
    }

    .c-viewmore-button span::before {
        transition: none;
    }

    .c-viewmore-button span::after {
        transition: none;
    }

    .c-viewmore-button:hover,
    .c-viewmore-button:active {
        background-color: #f4f4f4;
        color: #2e2e2e;
    }

    .c-viewmore-button:hover span::before,
    .c-viewmore-button:active span::before {
        background-color: #2e2e2e;
    }

    .c-viewmore-button:hover span::after,
    .c-viewmore-button:active span::after {
        background-color: #2e2e2e;
    }
}

/*
--------------------------------
	tag
--------------------------------
*/
/* ---- tag list ---- */
.c-tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.c-tag-list a,
.c-tag-list button {
    display: inline-block;
    padding: 5px 8px 3px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1rem;
    font-weight: 700;
    white-space: nowrap;
    transition: border-color 0.2s, background-color 0.2s, color 0.2s;
}

.c-tag-list a:hover,
.c-tag-list a:active,
.c-tag-list button:hover,
.c-tag-list button:active {
    border: 1px solid #2e2e2e;
    background-color: #2e2e2e;
    color: #fff;
}

.c-tag-list a span,
.c-tag-list button span {
    margin-left: 0.3em;
    color: #bfbfbf;
    font-weight: 400;
    letter-spacing: normal;
}

.c-tag-list li>span {
    display: inline-block;
    padding: 5px 8px 3px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1rem;
    font-weight: 700;
    white-space: nowrap;
}

.c-tag-list.large {
    gap: 8px;
}

.c-tag-list.large a,
.c-tag-list.large button {
    padding: 12px 24px 11px;
    font-size: 1.3rem;
    font-weight: 400;
}

.c-tag-list.black a,
.c-tag-list.black button {
    border: 1px solid #2e2e2e;
    background-color: #2e2e2e;
    color: #fff;
}

.c-tag-list.black a:hover,
.c-tag-list.black a:active,
.c-tag-list.black button:hover,
.c-tag-list.black button:active {
    border: 1px solid #d9d9d9;
    background-color: #fff;
    color: #2e2e2e;
}

.c-tag-list.black li>span {
    border: 1px solid #2e2e2e;
    background-color: #2e2e2e;
    color: #fff;
}

@media screen and (max-width: 767.9px) {
    .c-tag-list a {
        transition: none;
    }

    .c-tag-list a:hover,
    .c-tag-list a:active {
        border: 1px solid #d9d9d9;
        background-color: #fff;
        color: #2e2e2e;
    }

    .c-tag-list.large a,
    .c-tag-list.large button {
        padding: 10px 16px 8px;
        font-size: 1.2rem;
    }

    .c-tag-list.black a:hover,
    .c-tag-list.black a:active,
    .c-tag-list.black button:hover,
    .c-tag-list.black button:active {
        border: 1px solid #2e2e2e;
        background-color: #2e2e2e;
        color: #fff;
    }
}

/* ---- module tag ---- */
.c-module-tag {
    display: flex;
    align-items: center;
    color: #2e2e2e;
}

.c-module-tag span:first-child {
    font-size: 1.4rem;
}

.c-module-tag span:nth-child(n+2) {
    display: block;
    font-size: 1.2rem;
}

.c-module-tag span:nth-child(n+2)::before {
    content: "｜";
    display: inline-block;
    margin: 0 0.7em;
    transform: scale(1, 0.8);
}

/* ---- DAY2: module tag ---- */
.c-module-tag-d2 {
    display: flex;
    align-items: center;
    color: #2e2e2e;
    font-size: 1.3rem;
}

.c-module-tag-d2 *:first-child {
    display: block;
}

.c-module-tag-d2 *:nth-child(n+2) {
    display: block;
}

.c-module-tag-d2 *:nth-child(n+2)::before {
    content: "｜";
    display: inline-block;
    margin: 0 0.7em;
    transform: scale(1, 0.8);
}

/*
--------------------------------
	tab
--------------------------------
*/
/* ---- tab ---- */
.c-tab-tab,
.c-tab-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 50px;
}

.body-inner>.c-tab-tab,
.body-inner>.c-tab-list {
    margin-top: 70px !important;
}

.c-tab-tab.center,
.c-tab-list.center {
    justify-content: center;
    text-align: left;
}

.c-tab-tab.right,
.c-tab-list.right {
    justify-content: flex-end;
    text-align: left;
}

.c-tab-tab a,
.c-tab-tab button,
.c-tab-list a,
.c-tab-list button {
    display: inline-block;
    padding: 12px 24px 11px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.3rem;
    font-weight: 700;
    white-space: nowrap;
    transition: border-color 0.2s, background-color 0.2s, color 0.2s;
}

.c-tab-tab a:hover,
.c-tab-tab a:active,
.c-tab-tab button:hover,
.c-tab-tab button:active,
.c-tab-list a:hover,
.c-tab-list a:active,
.c-tab-list button:hover,
.c-tab-list button:active {
    border: 1px solid #2e2e2e;
    background-color: #2e2e2e;
    color: #fff;
}

.c-tab-tab a[aria-selected=true],
.c-tab-tab a.is-current,
.c-tab-tab button[aria-selected=true],
.c-tab-tab button.is-current,
.c-tab-list a[aria-selected=true],
.c-tab-list a.is-current,
.c-tab-list button[aria-selected=true],
.c-tab-list button.is-current {
    border: 1px solid #2e2e2e;
    background-color: #2e2e2e;
    color: #fff;
}

.c-tab-tab+.c-tab-list,
.c-tab-list+.c-tab-list {
    margin-top: 8px;
}

.c-tab-tab.thin a,
.c-tab-tab.thin button,
.c-tab-list.thin a,
.c-tab-list.thin button {
    padding: 12px 16px 11px;
    border: 1px solid #eee;
    font-weight: 400;
}

.c-tab-tab.bg-gray a,
.c-tab-tab.bg-gray button,
.c-tab-list.bg-gray a,
.c-tab-list.bg-gray button {
    background-color: #f4f4f4;
}

.c-tab-tab.bg-gray a:hover,
.c-tab-tab.bg-gray a:active,
.c-tab-tab.bg-gray button:hover,
.c-tab-tab.bg-gray button:active,
.c-tab-list.bg-gray a:hover,
.c-tab-list.bg-gray a:active,
.c-tab-list.bg-gray button:hover,
.c-tab-list.bg-gray button:active {
    border: 1px solid #2e2e2e;
    background-color: #2e2e2e;
    color: #fff;
}

.c-tab-tab.bg-gray a[aria-selected=true],
.c-tab-tab.bg-gray a.is-current,
.c-tab-tab.bg-gray button[aria-selected=true],
.c-tab-tab.bg-gray button.is-current,
.c-tab-list.bg-gray a[aria-selected=true],
.c-tab-list.bg-gray a.is-current,
.c-tab-list.bg-gray button[aria-selected=true],
.c-tab-list.bg-gray button.is-current {
    border: 1px solid #2e2e2e;
    background-color: #2e2e2e;
    color: #fff;
}

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

    .c-tab-tab,
    .c-tab-list {
        margin-top: 8.5vw;
    }

    .body-inner>.c-tab-tab,
    .body-inner>.c-tab-list {
        margin-top: 8.5vw !important;
    }

    .c-tab-tab.center,
    .c-tab-tab.right,
    .c-tab-list.center,
    .c-tab-list.right {
        justify-content: flex-start;
    }

    .c-tab-tab a,
    .c-tab-tab button,
    .c-tab-list a,
    .c-tab-list button {
        padding: 11px 24px 10px;
        font-size: 1.2rem;
    }

    .c-tab-tab.thin a,
    .c-tab-tab.thin button,
    .c-tab-list.thin a,
    .c-tab-list.thin button {
        min-width: 92px;
        padding: 10px 12px 9px;
        text-align: center;
    }

    .c-tab-tab.bg-gray a,
    .c-tab-tab.bg-gray button,
    .c-tab-list.bg-gray a,
    .c-tab-list.bg-gray button {
        background-color: #f4f4f4;
    }

    .c-tab-tab.bg-gray a:hover,
    .c-tab-tab.bg-gray a:active,
    .c-tab-tab.bg-gray button:hover,
    .c-tab-tab.bg-gray button:active,
    .c-tab-list.bg-gray a:hover,
    .c-tab-list.bg-gray a:active,
    .c-tab-list.bg-gray button:hover,
    .c-tab-list.bg-gray button:active {
        border: 1px solid #eee;
        background-color: #f4f4f4;
        color: #2e2e2e;
    }

    .c-tab-tab.bg-gray a[aria-selected=true],
    .c-tab-tab.bg-gray a.is-current,
    .c-tab-tab.bg-gray button[aria-selected=true],
    .c-tab-tab.bg-gray button.is-current,
    .c-tab-list.bg-gray a[aria-selected=true],
    .c-tab-list.bg-gray a.is-current,
    .c-tab-list.bg-gray button[aria-selected=true],
    .c-tab-list.bg-gray button.is-current {
        border: 1px solid #2e2e2e;
        background-color: #2e2e2e;
        color: #fff;
    }
}

/*
--------------------------------
	tab navigation
--------------------------------
*/
/* ---- tab ---- */
.c-tab-nav {
    display: flex;
    flex-wrap: wrap;
    margin-top: 50px;
    border-radius: 4px;
    overflow: hidden;
}

.c-tab-nav li {
    border-top: 1px solid #d9d9d9;
    border-right: 1px solid #d9d9d9;
    overflow: hidden;
}

.c-tab-nav li:last-child {
    border-right-style: none;
    border-radius: 0 0 4px 0;
}

.c-tab-nav.col-2 li {
    width: 50%;
}

.c-tab-nav.col-2 li:nth-child(-n+2) {
    border-top-style: none;
}

.c-tab-nav.col-2 li:nth-child(2n) {
    border-right-style: none;
}

.c-tab-nav.col-3 li {
    width: 33.3333%;
}

.c-tab-nav.col-3 li:nth-child(-n+3) {
    border-top-style: none;
}

.c-tab-nav.col-3 li:nth-child(3n) {
    border-right-style: none;
}

.c-tab-nav.col-4 li {
    width: 25%;
}

.c-tab-nav.col-4 li:nth-child(-n+4) {
    border-top-style: none;
}

.c-tab-nav.col-4 li:nth-child(4n) {
    border-right-style: none;
}

.c-tab-nav.col-5 li {
    width: 20%;
}

.c-tab-nav.col-5 li:nth-child(-n+5) {
    border-top-style: none;
}

.c-tab-nav.col-5 li:nth-child(5n) {
    border-right-style: none;
}

.c-tab-nav a,
.c-tab-nav button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 20px 20px 18px;
    background-color: #f4f4f4;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: normal;
    line-height: 1.4;
    text-align: center;
    transition: background-color 0.2s, color 0.2s;
}

.c-tab-nav a:hover,
.c-tab-nav a:active,
.c-tab-nav a.is-current,
.c-tab-nav a[aria-selected=true],
.c-tab-nav button:hover,
.c-tab-nav button:active,
.c-tab-nav button.is-current,
.c-tab-nav button[aria-selected=true] {
    background-color: #2e2e2e;
    color: #fff;
}

.bg-gray .c-tab-nav a,
.bg-gray .c-tab-nav button {
    background-color: #fff;
}

.bg-gray .c-tab-nav a:hover,
.bg-gray .c-tab-nav a:active,
.bg-gray .c-tab-nav a.is-current,
.bg-gray .c-tab-nav a[aria-selected=true],
.bg-gray .c-tab-nav button:hover,
.bg-gray .c-tab-nav button:active,
.bg-gray .c-tab-nav button.is-current,
.bg-gray .c-tab-nav button[aria-selected=true] {
    background-color: #2e2e2e;
    color: #fff;
}

.c-tab-set .c-tab-nav a,
.c-tab-set .c-tab-nav button {
    padding: 20px 20px 17px;
    border-bottom: 1px solid #d9d9d9;
    background-color: #ececec;
    transition: border-color 0.2s, background-color 0.2s, color 0.2s;
}

.c-tab-set .c-tab-nav a:hover,
.c-tab-set .c-tab-nav a:active,
.c-tab-set .c-tab-nav a.is-current,
.c-tab-set .c-tab-nav a[aria-selected=true],
.c-tab-set .c-tab-nav button:hover,
.c-tab-set .c-tab-nav button:active,
.c-tab-set .c-tab-nav button.is-current,
.c-tab-set .c-tab-nav button[aria-selected=true] {
    border-bottom-color: #2e2e2e;
    background-color: #2e2e2e;
    color: #fff;
}

@media screen and (max-width: 767.9px) {
    .c-tab-nav {
        margin-top: 8.5vw;
    }

    .c-tab-nav a,
    .c-tab-nav button {
        padding: 20px 10px 18px;
        font-size: 1.5rem;
        transition: none;
    }

    .c-tab-set .c-tab-nav a,
    .c-tab-set .c-tab-nav button {
        padding: 20px 10px 17px;
    }

    .c-tab-set .c-tab-nav a:hover,
    .c-tab-set .c-tab-nav a:active,
    .c-tab-set .c-tab-nav button:hover,
    .c-tab-set .c-tab-nav button:active {
        border-bottom-color: #d9d9d9;
        background-color: #ececec;
        color: #2e2e2e;
    }

    .c-tab-set .c-tab-nav a.is-current,
    .c-tab-set .c-tab-nav a[aria-selected=true],
    .c-tab-set .c-tab-nav button.is-current,
    .c-tab-set .c-tab-nav button[aria-selected=true] {
        border-bottom-color: #2e2e2e;
        background-color: #2e2e2e;
        color: #fff;
    }

    .c-tab-nav.long-text.col-3 li {
        width: 50%;
    }

    .c-tab-nav.long-text.col-3 li:nth-child(-n+3) {
        border-top-style: solid;
    }

    .c-tab-nav.long-text.col-3 li:nth-child(3n) {
        border-right-style: solid;
    }

    .c-tab-nav.long-text.col-3 li:nth-child(-n+2) {
        border-top-style: none;
    }

    .c-tab-nav.long-text.col-3 li:nth-child(2n) {
        border-right-style: none;
    }

    .c-tab-nav.long-text.col-4 li {
        width: 50%;
    }

    .c-tab-nav.long-text.col-4 li:nth-child(-n+4) {
        border-top-style: solid;
    }

    .c-tab-nav.long-text.col-4 li:nth-child(4n) {
        border-right-style: solid;
    }

    .c-tab-nav.long-text.col-4 li:nth-child(-n+2) {
        border-top-style: none;
    }

    .c-tab-nav.long-text.col-4 li:nth-child(2n) {
        border-right-style: none;
    }

    .c-tab-nav.long-text.col-5 li {
        width: 50%;
    }

    .c-tab-nav.long-text.col-5 li:nth-child(-n+5) {
        border-top-style: solid;
    }

    .c-tab-nav.long-text.col-5 li:nth-child(5n) {
        border-right-style: solid;
    }

    .c-tab-nav.long-text.col-5 li:nth-child(-n+2) {
        border-top-style: none;
    }

    .c-tab-nav.long-text.col-5 li:nth-child(2n) {
        border-right-style: none;
    }

    .c-tab-nav.long-text a,
    .c-tab-nav.long-text button {
        padding: 14px 10px 12px;
        font-size: 1.3rem;
    }
}

/* ---- panel ---- */
.c-tab-set {
    margin-top: 50px;
}

.c-tab-set .c-tab-nav {
    margin-top: 0;
    border-radius: 4px 4px 0 0;
}

.c-tab-set .panels {
    position: relative;
    height: auto;
    background-color: #f4f4f4;
    overflow: hidden;
    transition: height 0.3s;
}

.c-tab-set .panels .panel {
    display: none;
    position: absolute;
    left: 0;
    top: 0;
    opacity: 0;
    padding: 4% 3.6%;
    pointer-events: none;
    transition: opacity 0.3s cubic-bezier(0.08, 0.64, 0.56, 1);
}

.c-tab-set .panels .panel[aria-hidden=false] {
    opacity: 1;
    pointer-events: auto;
}

.c-tab-set .panels .panel> :first-child {
    margin-top: 0 !important;
}

.bg-gray .c-tab-set .panels {
    background-color: #fff;
}

@media screen and (max-width: 767.9px) {
    .c-tab-set {
        margin-top: 8.5vw;
    }

    .c-tab-set .panels .panel {
        padding: 14% 5vw;
    }
}

/*
--------------------------------
	accordion
--------------------------------
*/
/* ---- image ---- */
.c-accordion {
    margin-top: 50px;
    border-bottom: 1px solid #eee;
}

.c-accordion>dt {
    position: relative;
    padding: 28px 72px 28px 35px;
    border-top: 1px solid #eee;
    background-color: rgba(234, 234, 234, 0);
    color: #2e2e2e;
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.4;
    transition: background-color 0.2s ease-out;
}

.c-accordion>dt:hover {
    background-color: rgb(234, 234, 234);
}

.c-accordion>dt button {
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    text-align: left;
    text-indent: -400px;
}

.c-accordion>dt button::before {
    content: "";
    display: block;
    position: absolute;
    right: 35px;
    top: calc(50% - 1px);
    width: 16px;
    height: 2px;
    background-color: #2e2e2e;
}

.c-accordion>dt button::after {
    content: "";
    display: block;
    position: absolute;
    right: 35px;
    top: calc(50% - 1px);
    width: 16px;
    height: 2px;
    background-color: #2e2e2e;
    opacity: 1;
    transform: rotate(-90deg);
    transition: opacity 0.2s, transform 0.2s;
}

.c-accordion>dt button.is-open::after {
    opacity: 0;
    transform: rotate(0);
}

.c-accordion>dd {
    height: 0;
    background-color: #f4f4f4;
    overflow: hidden;
    transition: height 0.25s ease-out;
}

.c-accordion>dd>.inner {
    padding: 35px;
}

.bg-gray .c-accordion>dd {
    background-color: #fff;
}

@media screen and (max-width: 767.9px) {
    .c-accordion {
        margin-top: 8.5vw;
    }

    .c-accordion>dt {
        padding: 20px calc(5vw + 24px) 20px 5vw;
        font-size: 1.8rem;
        letter-spacing: 0.05em;
        transition: none;
    }

    .c-accordion>dt:hover {
        background-color: rgba(234, 234, 234, 0);
    }

    .c-accordion>dt button::before {
        right: 5vw;
    }

    .c-accordion>dt button::after {
        right: 5vw;
    }

    .c-accordion>dd>.inner {
        padding: 5vw;
    }
}

/*
--------------------------------
	download
--------------------------------
*/
/* ---- thumbnail + text link ---- */
.c-download {
    display: flex;
    align-items: flex-start;
    margin-top: 50px;
}

.c-download img {
    display: block;
    width: 140px;
}

.c-download dl {
    width: calc(100% - 140px);
    padding-left: 30px;
}

.c-download dl dt {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-download dl dd {
    margin-top: 15px;
    font-size: 1.6rem;
    line-height: 1.6;
}

.c-download dl dd a {
    opacity: 1;
    transition: opacity 0.2s;
}

.c-download dl dd a:hover,
.c-download dl dd a:active {
    opacity: 0.7;
}

.c-download dl dd a.pdf::after {
    content: "";
    display: inline-block;
    width: 20px;
    height: 24px;
    margin-left: 0.7em;
    background-image: url(../images/icon_pdf.svg);
    background-size: contain;
    background-position: 50% 50%;
    vertical-align: middle;
    transform: translateY(-2px);
}

@media screen and (max-width: 767.9px) {
    .c-download {
        margin-top: 8.5vw;
    }

    .c-download img {
        width: 30%;
        max-width: 140px;
    }

    .c-download dl {
        width: max(70%, 100% - 140px);
        padding-left: 6%;
    }

    .c-download dl dd a {
        transition: none;
    }

    .c-download dl dd a:hover,
    .c-download dl dd a:active {
        opacity: 1;
    }
}

/* ---- acrobat reader ---- */
.c-acrobat {
    display: flex;
    margin-top: 50px;
}

.c-acrobat a {
    width: 158px;
}

.c-acrobat p {
    width: calc(100% - 158px);
    margin-top: -3px;
    padding-left: 30px;
    color: #808080;
    font-size: 1.4rem;
    line-height: 1.6;
}

.c-acrobat p a {
    color: #808080;
    text-decoration: underline;
}

.c-acrobat p a:hover,
.c-acrobat p a:active {
    text-decoration: none;
}

@media screen and (max-width: 767.9px) {
    .c-acrobat {
        display: block;
        margin-top: 8.5vw;
    }

    .c-acrobat a {
        width: auto;
    }

    .c-acrobat a img {
        width: 158px;
    }

    .c-acrobat p {
        width: auto;
        margin-top: 15px;
        padding-left: 0;
    }

    .c-acrobat p a:hover,
    .c-acrobat p a:active {
        text-decoration: underline;
    }
}

/*
--------------------------------
	sns
--------------------------------
*/
/* ---- official share button ---- */
.c-official-share-button {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    -moz-column-gap: 10px;
    column-gap: 10px;
    margin-top: 50px;
}

.c-official-share-button>li:first-child {
    padding-right: 10px;
    font-size: 1.6rem;
}

.c-official-share-button>li.facebook {
    padding-bottom: 2px;
}

.c-official-share-button>li.pocket {
    padding-top: 2px;
}

.c-official-share-button>li.linkedin {
    padding-bottom: 2px;
}

@media screen and (max-width: 767.9px) {
    .c-official-share-button {
        justify-content: center;
        gap: 15px 10px;
        margin-top: 8.5vw;
    }
}

/* ---- original share button ---- */
.c-share-button {
    display: flex;
    -moz-column-gap: 15px;
    column-gap: 15px;
    margin-top: 50px;
}

.c-share-button a {
    display: block;
    width: 32px;
    height: 32px;
    opacity: 1;
    transition: opacity 0.2s;
}

.c-share-button a:hover,
.c-share-button a:active {
    opacity: 0.6;
}

.c-share-button a img {
    display: block;
    width: 32px;
    height: 32px;
}

@media screen and (max-width: 767.9px) {
    .c-share-button {
        -moz-column-gap: 10px;
        column-gap: 10px;
        margin-top: 8.5vw;
    }

    .c-share-button a {
        width: 45px;
        height: 45px;
        transition: none;
    }

    .c-share-button a:hover,
    .c-share-button a:active {
        opacity: 1;
    }

    .c-share-button a img {
        width: 45px;
        height: 45px;
    }
}

/* ---- link button ---- */
.c-sns-link {
    margin-top: 50px;
    border-top: 1px solid #eee;
}

.c-sns-link>li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 0;
    border-bottom: 1px solid #eee;
}

.c-sns-link>li>a {
    display: block;
    position: relative;
    padding-right: 27px;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.6;
}

.c-sns-link>li>a::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 5px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-sns-link>li>a:lang(en)::after {
    top: calc(50% - 4px);
}

.c-sns-link>li>a:hover::after,
.c-sns-link>li>a:active::after {
    animation: arrow-right 0.5s ease-in-out;
}

.c-sns-link>li ul {
    display: flex;
    -moz-column-gap: 24px;
    column-gap: 24px;
}

.c-sns-link>li ul li {
    width: 46px;
}

.c-sns-link>li ul li a {
    opacity: 1;
    transition: opacity 0.2s;
}

.c-sns-link>li ul li a:hover,
.c-sns-link>li ul li a:active {
    opacity: 0.7;
}

.c-sns-link>li ul li span {
    filter: grayscale(1) opacity(0.1);
}

.c-sns-link>li ul li img {
    width: 46px;
    height: 46px;
}

@media screen and (max-width: 767.9px) {
    .c-sns-link {
        margin-top: 8.5vw;
    }

    .c-sns-link>li {
        display: block;
        padding: 26px 0 30px;
    }

    .c-sns-link>li>a {
        display: inline-block;
    }

    .c-sns-link>li>a:hover::after,
    .c-sns-link>li>a:active::after {
        animation: none;
    }

    .c-sns-link>li ul {
        -moz-column-gap: 10px;
        column-gap: 10px;
        margin-top: 13px;
    }

    .c-sns-link>li ul li a {
        transition: none;
    }

    .c-sns-link>li ul li a:hover,
    .c-sns-link>li ul li a:active {
        opacity: 1;
    }
}

/*
--------------------------------
	q and a
--------------------------------
*/
/* ---- q and a ---- */
.c-faq {
    margin-top: 50px;
}

.c-faq dt {
    position: relative;
    padding: 22px 20px 20px 80px;
    background-color: #f4f4f4;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-faq dt::before {
    content: "Q.";
    position: absolute;
    left: 24px;
    top: 21px;
    font-size: 2rem;
    font-weight: 700;
}

.c-faq dd {
    position: relative;
    padding: 19px 20px 40px 80px;
    background-color: #fff;
}

.c-faq dd::before {
    content: "A.";
    position: absolute;
    left: 24px;
    top: 25px;
    font-size: 2rem;
    font-weight: 700;
}

.c-faq dd> :first-child {
    margin-top: 0;
}

.bg-gray .c-faq dt {
    background-color: #eaeaea;
}

@media screen and (max-width: 767.9px) {
    .c-faq {
        margin-top: 8.5vw;
    }

    .c-faq dt {
        padding: 18px 20px 17px 60px;
    }

    .c-faq dt::before {
        left: 20px;
        top: 17px;
    }

    .c-faq dd {
        padding: 16px 0 40px 60px;
    }

    .c-faq dd::before {
        left: 20px;
        top: 22px;
    }

    .c-faq dd .c-body {
        font-size: 1.6rem;
        letter-spacing: 0.01em;
    }
}

/*
--------------------------------
	dialogue
--------------------------------
*/
/* ---- speech baloon ---- */
.c-dialogue {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-top: 50px;
}

.c-dialogue .img {
    width: 120px;
}

.c-dialogue .img img {
    display: block;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    -o-object-fit: cover;
    object-fit: cover;
}

.c-dialogue p {
    position: relative;
    width: calc(100% - 160px);
    padding: 33px 4.5% 31px;
    border-radius: 4px;
    background-color: #f4f4f4;
    font-size: 1.6rem;
    line-height: 1.6;
}

.c-dialogue p:lang(en) {
    line-height: 1.5;
}

.c-dialogue p::before {
    content: "";
    display: block;
    position: absolute;
    left: -11px;
    top: 32px;
    width: 22px;
    height: 22px;
    background-color: #f4f4f4;
    transform: scale(1, 0.9) rotate(45deg);
}

.c-dialogue.img-right {
    flex-direction: row-reverse;
}

.c-dialogue.img-right p::before {
    left: auto;
    right: -11px;
}

.bg-gray .c-dialogue p {
    background-color: #fff;
}

.bg-gray .c-dialogue p::before {
    background-color: #fff;
}

@media screen and (max-width: 767.9px) {
    .c-dialogue {
        margin-top: 8.5vw;
    }

    .c-dialogue .img {
        width: 60px;
    }

    .c-dialogue .img img {
        width: 60px;
        height: 60px;
    }

    .c-dialogue p {
        width: calc(100% - 80px);
        padding: 18px 5vw 16px;
        font-size: 1.4rem;
        line-height: 1.8;
    }

    .c-dialogue p::before {
        left: -8px;
        top: 21px;
        width: 16px;
        height: 16px;
    }

    .c-dialogue.img-right p::before {
        left: auto;
        right: -8px;
    }
}

/*
--------------------------------
	writer
--------------------------------
*/
/* ---- writer ---- */
.c-writer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 50px;
    padding: 32px 3.6% 35px;
    border: 1px solid #d9d9d9;
    border-radius: 12px;
}

.c-writer.narrow {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

.c-writer.bg-filled {
    border: 1px solid #f4f4f4;
    background-color: #f4f4f4;
}

.bg-gray .c-writer.bg-filled {
    border: 1px solid #fff;
    background-color: #fff;
}

.c-writer .img {
    width: 120px;
}

.c-writer .img img {
    display: block;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    -o-object-fit: cover;
    object-fit: cover;
}

.c-writer dl {
    width: calc(100% - 155px);
}

.c-writer dl dt {
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-writer dl dt span {
    margin-left: 20px;
    font-size: 1.25rem;
    letter-spacing: normal;
}

.c-writer dl dd {
    margin-top: 16px;
    font-size: 1.6rem;
    line-height: 1.5;
}

@media screen and (max-width: 767.9px) {
    .c-writer {
        display: block;
        position: relative;
        margin-top: 8.5vw;
        padding: 20px 5vw 24px;
        border-radius: 12px;
    }

    .c-writer.narrow {
        max-width: 84vw;
    }

    .c-writer .img {
        position: absolute;
        left: 5vw;
        top: 20px;
    }

    .c-writer dl {
        width: auto;
    }

    .c-writer dl dt {
        display: flex;
        flex-direction: column;
        justify-content: center;
        height: 120px;
        padding-left: 135px;
    }

    .c-writer dl dt span {
        display: block;
        margin: 5px 0 0;
        font-size: 1.2rem;
    }

    .c-writer dl dd {
        margin-top: 20px;
        font-size: 1.4rem;
        line-height: 1.5;
    }
}

/* ---- DAY2: writer ---- */
.c-writer-d2 {
    margin-top: 50px;
    border-top: 1px solid #EBECEF;
}

.c-writer-d2 li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid #EBECEF;
}

.c-writer-d2 li .img {
    width: 110px;
}

.c-writer-d2 li .img img {
    display: block;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    -o-object-fit: cover;
    object-fit: cover;
}

.c-writer-d2 li dl {
    width: calc(100% - 156px);
}

.c-writer-d2 li dl dt {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
}

.c-writer-d2 li dl dt span {
    margin-left: 1em;
    font-size: 1.2rem;
    font-weight: 400;
}

.c-writer-d2 li dl dd {
    margin-top: 8px;
    font-size: 1.4rem;
    line-height: 1.5;
}

@media screen and (max-width: 767.9px) {
    .c-writer-d2 {
        margin-top: 8.5vw;
    }

    .c-writer-d2 li {
        position: relative;
    }

    .c-writer-d2 li .img {
        position: absolute;
        left: 0;
        top: 20px;
    }

    .c-writer-d2 li dl {
        width: auto;
    }

    .c-writer-d2 li dl dt {
        display: flex;
        flex-direction: column;
        justify-content: center;
        height: 110px;
        padding-left: 130px;
    }

    .c-writer-d2 li dl dt span {
        display: block;
        margin: 6px 0 0;
        font-size: 1.2rem;
    }

    .c-writer-d2 li dl dd {
        margin-top: 20px;
    }
}

/*
--------------------------------
	history
--------------------------------
*/
/* ---- history ---- */
.c-history {
    width: 100%;
    margin-top: 50px;
    border-top: 1px solid #eee;
}

.c-history th {
    width: 24%;
    padding: 29px 40px 27px 20px;
    border-bottom: 1px solid #eee;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.6;
    white-space: nowrap;
    vertical-align: middle;
}

.c-history td {
    width: 76%;
    padding: 29px 20px 27px 0;
    border-bottom: 1px solid #eee;
    font-size: 1.6rem;
    line-height: 1.6;
    vertical-align: middle;
}

@media screen and (max-width: 767.9px) {
    .c-history {
        display: block;
        width: auto;
        margin-top: 8.5vw;
    }

    .c-history tbody,
    .c-history tr {
        display: block;
    }

    .c-history th {
        display: block;
        width: auto;
        padding: 14px 0 8px;
        border-bottom-style: none;
    }

    .c-history td {
        display: block;
        width: auto;
        padding: 0 0 14px;
    }
}

/*
--------------------------------
	schedule
--------------------------------
*/
/* ---- time table ---- */
.c-schedule {
    margin-top: 50px;
    color: #2e2e2e;
}

.c-schedule li {
    display: flex;
}

.c-schedule li .time {
    width: 130px;
    margin-top: -0.35em;
    padding-right: 30px;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.8;
}

.c-schedule li .time:lang(en) {
    margin-top: -0.15em;
    line-height: 1.4;
}

.c-schedule li dl {
    position: relative;
    width: calc(100% - 130px);
    padding: 0 0 30px 30px;
    border-left: 2px solid #2e2e2e;
}

.c-schedule li dl:lang(en) {
    padding-bottom: 40px;
}

.c-schedule li dl::before {
    content: "";
    display: block;
    position: absolute;
    left: -9px;
    top: 0;
    width: 16px;
    height: 16px;
    border: 2px solid #2e2e2e;
    border-radius: 50%;
    background-color: #fff;
}

.c-schedule li dl dt {
    margin-top: -0.35em;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.8;
}

.c-schedule li dl dt:lang(en) {
    margin-top: -0.25em;
    line-height: 1.4;
}

.c-schedule li dl dd {
    margin-top: 0.5em;
    font-size: 1.6rem;
    line-height: 2;
}

.c-schedule li dl dd:lang(en) {
    margin-top: 0.7em;
    line-height: 1.5;
}

.c-schedule li:last-child dl::after {
    content: "";
    display: block;
    position: absolute;
    left: -9px;
    bottom: 0;
    width: 16px;
    height: 16px;
    border: 2px solid #2e2e2e;
    border-radius: 50%;
    background-color: #fff;
}

@media screen and (max-width: 767.9px) {
    .c-schedule {
        margin-top: 8.5vw;
    }

    .c-schedule li .time {
        width: 60px;
        margin-top: -0.3em;
        padding-right: 10px;
        font-size: 1.5rem;
        letter-spacing: normal;
    }

    .c-schedule li .time:lang(en) {
        margin-top: -0.1em;
    }

    .c-schedule li dl {
        width: calc(100% - 60px);
        padding: 0 0 24px 24px;
    }

    .c-schedule li dl:lang(en) {
        padding-bottom: 30px;
    }

    .c-schedule li dl dt {
        margin-top: -0.4em;
    }

    .c-schedule li dl dd {
        margin-top: 0.4em;
        font-size: 1.4rem;
    }
}

/*
--------------------------------
	slideshare
--------------------------------
*/
/* ---- embedded slideshare ---- */
.c-slideshare {
    margin-top: 50px;
    text-align: center;
}

.c-slideshare iframe {
    width: 100%;
    max-width: 600px !important;
    height: auto;
    aspect-ratio: 5/4;
}

@media screen and (max-width: 767.9px) {
    .c-slideshare {
        margin-top: 8.5vw;
    }
}

/*
--------------------------------
	news ticker
--------------------------------
*/
/* ---- news ticker ---- */
.c-news-ticker {
    display: flex;
    align-items: center;
    margin-top: 50px;
    padding: 24px 0 24px 24px;
    border: 1px solid #eee;
    border-radius: 4px;
}

.c-news-ticker .heading {
    width: 90px;
    color: #2e2e2e;
    font-size: 1.6rem;
    font-weight: 700;
}

.c-news-ticker .txt {
    width: calc(100% - 258px);
    overflow: hidden;
    font-size: 1.6rem;
    white-space: nowrap;
}

.c-news-ticker .txt #news-container {
    display: table;
    opacity: 0;
    transition: opacity 0.2s;
}

.c-news-ticker .txt #news-container.is-shown {
    opacity: 1;
}

.c-news-ticker .txt #news-container #news-date {
    display: table-cell;
    padding: 4px 16px 4px 0;
    color: #808080;
}

.c-news-ticker .txt #news-container #news-title {
    display: table-cell;
    padding: 4px 0;
}

.c-news-ticker .txt #news-container #news-title a {
    color: #2e2e2e;
    opacity: 1;
    transition: opacity 0.2s;
}

.c-news-ticker .txt #news-container #news-title a:hover,
.c-news-ticker .txt #news-container #news-title a:active {
    color: #2e2e2e;
    opacity: 0.7;
}

.c-news-ticker .txt ul {
    height: 0;
    overflow: hidden;
}

.c-news-ticker .ctrl {
    display: flex;
    width: 134px;
    margin: 0 10px 0 24px;
}

.c-news-ticker .ctrl li {
    width: 40px;
}

.c-news-ticker .ctrl li:first-child {
    margin-right: 10px;
}

.c-news-ticker .ctrl li:last-child {
    margin-left: 4px;
}

.c-news-ticker .ctrl button {
    display: block;
    position: relative;
    width: 40px;
    height: 40px;
    border: 1px solid #2e2e2e;
    border-radius: 50%;
    background-color: #fff;
    overflow: hidden;
    text-indent: -400px;
    transition: background-color 0.2s;
}

.c-news-ticker .ctrl button.prev::after {
    content: "";
    display: block;
    position: absolute;
    left: 13px;
    top: 15px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
    transform: rotate(180deg);
}

.c-news-ticker .ctrl button.next::after {
    content: "";
    display: block;
    position: absolute;
    right: 13px;
    top: 15px;
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.c-news-ticker .ctrl button:hover,
.c-news-ticker .ctrl button:active {
    background-color: #2e2e2e;
}

.c-news-ticker .ctrl button:hover.prev::after,
.c-news-ticker .ctrl button:active.prev::after {
    background: url(../images/icon_arrow_wht.svg) center no-repeat;
    animation: arrow-left 0.4s ease-in-out;
}

.c-news-ticker .ctrl button:hover.next::after,
.c-news-ticker .ctrl button:active.next::after {
    background: url(../images/icon_arrow_wht.svg) center no-repeat;
    animation: arrow-right 0.4s ease-in-out;
}

.c-news-ticker .ctrl button.pause {
    border-style: none;
    background-color: transparent;
    opacity: 1;
    transition: opacity 0.2s;
}

.c-news-ticker .ctrl button.pause:hover,
.c-news-ticker .ctrl button.pause:active {
    background-color: transparent;
    opacity: 0.25;
}

.c-news-ticker .ctrl button.pause::before {
    content: "";
    display: block;
    position: absolute;
    left: calc(50% - 3px);
    top: calc(50% - 6px);
    width: 2px;
    height: 12px;
    background-color: #2e2e2e;
}

.c-news-ticker .ctrl button.pause::after {
    content: "";
    display: block;
    position: absolute;
    left: calc(50% + 2px);
    top: calc(50% - 6px);
    width: 2px;
    height: 12px;
    background-color: #2e2e2e;
}

.c-news-ticker .ctrl button.pause.is-paused::before {
    content: none;
}

.c-news-ticker .ctrl button.pause.is-paused::after {
    content: "";
    display: block;
    position: absolute;
    left: calc(50% - 3px);
    top: calc(50% - 6px);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 6px 0 6px 8px;
    border-color: transparent transparent transparent #2e2e2e;
    background-color: transparent;
}

@media screen and (max-width: 767.9px) {
    .c-news-ticker {
        display: block;
        position: relative;
        margin-top: 8.5vw;
        padding: 10px 20px 12px;
    }

    .c-news-ticker .heading {
        display: flex;
        align-items: center;
        width: calc(100% - 168px);
        height: 40px;
    }

    .c-news-ticker .txt {
        width: auto;
        margin-top: 10px;
    }

    .c-news-ticker .txt #news-container #news-date {
        padding-right: 20px;
    }

    .c-news-ticker .ctrl {
        position: absolute;
        right: 0;
        top: 10px;
    }

    .c-news-ticker .ctrl button {
        transition: none;
    }

    .c-news-ticker .ctrl button:hover,
    .c-news-ticker .ctrl button:active {
        background-color: #fff;
    }

    .c-news-ticker .ctrl button:hover.prev::after,
    .c-news-ticker .ctrl button:hover.next::after,
    .c-news-ticker .ctrl button:active.prev::after,
    .c-news-ticker .ctrl button:active.next::after {
        background-image: url(../images/icon_arrow.svg);
    }

    .c-news-ticker .ctrl button.pause:hover,
    .c-news-ticker .ctrl button.pause:active {
        background-color: transparent;
        opacity: 1;
    }
}

/*
--------------------------------
	recruit step
--------------------------------
*/
/* ---- recruit step ---- */
.c-recruit-step {
    display: flex;
    margin-top: 50px;
    border-radius: 4px;
    overflow: hidden;
    color: #fff;
}

.c-recruit-step li {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 33.3%;
    min-height: 276px;
    padding: 35px 30px 25px;
}

.c-recruit-step li::after {
    content: "";
    display: block;
    position: absolute;
    right: -13px;
    top: calc(50% - 13px);
    z-index: 1;
    width: 26px;
    height: 26px;
    transform: scale(1, 0.9) rotate(45deg);
}

.c-recruit-step li:nth-child(1) {
    background-color: #6c6c6c;
}

.c-recruit-step li:nth-child(1)::after {
    background-color: #6c6c6c;
}

.c-recruit-step li:nth-child(2) {
    background-color: #585858;
}

.c-recruit-step li:nth-child(2)::after {
    background-color: #585858;
}

.c-recruit-step li:nth-child(3) {
    background-color: #424242;
}

.c-recruit-step li:nth-child(3)::after {
    /* background-color: #424242; */
    content: none;
}

/* .c-recruit-step li:nth-child(4) {
    background-color: #2e2e2e;
}

.c-recruit-step li:nth-child(4)::after {
    content: none;
} */

.c-recruit-step li .step {
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1;
}

.c-recruit-step li p {
    margin-top: 32px;
    padding-bottom: 32px;
    font-size: 1.6rem;
    line-height: 1.6;
}

.c-recruit-step li p:lang(en) {
    line-height: 1.5;
}

.c-recruit-step li .date {
    margin-top: auto;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.6;
    text-align: right;
}

.c-recruit-step li .date:lang(en) {
    line-height: 1.5;
}

.c-recruit-step.col-5 li {
    width: 20%;
    min-height: 220px;
    padding: 30px 25px 20px;
}

.c-recruit-step.col-5 li::after {
    right: -11px;
    top: calc(50% - 11px);
    width: 22px;
    height: 22px;
}

.c-recruit-step.col-5 li:nth-child(1) {
    background-color: #808080;
}

.c-recruit-step.col-5 li:nth-child(1)::after {
    background-color: #808080;
}

.c-recruit-step.col-5 li:nth-child(2) {
    background-color: #6c6c6c;
}

.c-recruit-step.col-5 li:nth-child(2)::after {
    background-color: #6c6c6c;
}

.c-recruit-step.col-5 li:nth-child(3) {
    background-color: #585858;
}

.c-recruit-step.col-5 li:nth-child(3)::after {
    background-color: #585858;
}

.c-recruit-step.col-5 li:nth-child(4) {
    background-color: #424242;
}

.c-recruit-step.col-5 li:nth-child(4)::after {
    content: "";
    background-color: #424242;
}

.c-recruit-step.col-5 li:nth-child(5) {
    background-color: #2e2e2e;
}

.c-recruit-step.col-5 li:nth-child(5)::after {
    content: none;
}

.c-recruit-step.col-5 li p {
    margin-top: 24px;
    padding-bottom: 24px;
}

@media screen and (max-width: 767.9px) {
    .c-recruit-step {
        display: block;
        margin-top: 8.5vw;
    }

    .c-recruit-step li {
        width: auto;
        min-height: 140px;
        padding: 5vw;
    }

    .c-recruit-step li::after {
        top: auto;
        right: auto;
        left: calc(50% - 12px);
        bottom: -12px;
        width: 24px;
        height: 24px;
        transform: scale(0.9, 1) rotate(45deg);
    }

    .c-recruit-step li .step {
        font-size: 2.4rem;
    }

    .c-recruit-step li p {
        margin-top: 16px;
        padding-bottom: 8px;
        font-size: 1.5rem;
    }

    .c-recruit-step li .date {
        font-size: 1.4rem;
    }

    .c-recruit-step.col-5 li {
        width: auto;
        min-height: 140px;
        padding: 5vw;
    }

    .c-recruit-step.col-5 li::after {
        top: auto;
        right: auto;
        left: calc(50% - 12px);
        bottom: -12px;
        width: 24px;
        height: 24px;
        transform: scale(0.9, 1) rotate(45deg);
    }

    .c-recruit-step.col-5 li p {
        margin-top: 16px;
        padding-bottom: 8px;
    }
}

/*
--------------------------------
	application download
--------------------------------
*/
/* ---- application download ---- */
.c-app-download {
    margin-top: 50px;
    text-align: center;
}

.c-app-download .inner {
    display: inline-flex;
    align-items: center;
    min-height: 150px;
    background-color: #fff;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    overflow: hidden;
    text-align: left;
}

.c-app-download .head {
    display: flex;
    align-items: center;
    -moz-column-gap: 20px;
    column-gap: 20px;
    width: 440px;
    height: 100%;
    padding: 25px;
    background-color: #999;
    color: #fff;
}

.c-app-download .head img {
    display: block;
    width: 100px;
    height: 100px;
}

.c-app-download .head .catch {
    margin-bottom: 0.4em;
    font-size: 1.4rem;
    line-height: 1.3;
}

.c-app-download .head .title {
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: normal;
    line-height: 1.3;
}

.c-app-download ul {
    display: flex;
    align-items: center;
    -moz-column-gap: 25px;
    column-gap: 25px;
    height: 100%;
    padding: 25px;
}

.c-app-download ul li {
    display: flex;
    align-items: center;
    -moz-column-gap: 16px;
    column-gap: 16px;
}

.c-app-download ul li dl {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100px;
}

.c-app-download ul li dl dt {
    padding-top: 0.2em;
    font-size: 2rem;
    font-weight: 700;
}

.c-app-download ul li dl dd img {
    display: block;
    width: auto;
    height: 58px;
}

.c-app-download ul li>img {
    display: block;
    width: 100px;
    height: 100px;
}

@media screen and (max-width: 1288px) {
    .c-app-download .inner {
        min-height: calc(8vw + 50px);
    }

    .c-app-download .head {
        width: 35.2vw;
        padding: 25px;
    }

    .c-app-download .head img {
        width: 8vw;
        height: 8vw;
    }

    .c-app-download ul {
        -moz-column-gap: 25px;
        column-gap: 25px;
        padding: 25px;
    }

    .c-app-download ul li dl {
        height: 8vw;
    }

    .c-app-download ul li dl dd img {
        height: 4.64vw;
    }

    .c-app-download ul li>img {
        width: 8vw;
        height: 8vw;
    }
}

@media screen and (max-width: 999px) {
    .c-app-download .inner {
        align-items: stretch;
        width: 620px;
    }

    .c-app-download .head {
        align-items: flex-start;
        -moz-column-gap: 15px;
        column-gap: 15px;
        width: 51.5%;
        height: auto;
        padding: 25px;
    }

    .c-app-download .head img {
        width: 80px;
        height: 80px;
    }

    .c-app-download ul {
        display: block;
        width: 48.5%;
        padding: 25px;
    }

    .c-app-download ul li {
        justify-content: space-between;
        -moz-column-gap: 0;
        column-gap: 0;
        margin-top: 25px;
    }

    .c-app-download ul li:first-child {
        margin-top: 0;
    }

    .c-app-download ul li dl {
        height: 80px;
    }

    .c-app-download ul li dl dd img {
        height: 46.4px;
    }

    .c-app-download ul li>img {
        width: 80px;
        height: 80px;
    }
}

@media screen and (max-width: 699px) {
    .c-app-download .inner {
        display: flex;
        width: 100%;
    }

    .c-app-download .head {
        padding: 20px;
    }

    .c-app-download .head img {
        width: 11.4vw;
        height: 11.4vw;
    }

    .c-app-download .head .title {
        font-size: 1.9rem;
    }

    .c-app-download ul {
        padding: 20px;
    }

    .c-app-download ul li {
        margin-top: 20px;
    }

    .c-app-download ul li dl {
        height: 11.4vw;
    }

    .c-app-download ul li dl dd img {
        height: 6.612vw;
    }

    .c-app-download ul li>img {
        width: 11.4vw;
        height: 11.4vw;
    }
}

@media screen and (max-width: 559px) {
    .c-app-download {
        margin-top: 8.5vw;
        text-align: left;
    }

    .c-app-download .inner {
        display: block;
        min-height: auto;
    }

    .c-app-download .head {
        -moz-column-gap: 5vw;
        column-gap: 5vw;
        width: auto;
        height: auto;
        padding: 5vw;
    }

    .c-app-download .head img {
        width: 80px;
        height: 80px;
    }

    .c-app-download .head .title {
        font-size: 2rem;
    }

    .c-app-download ul {
        -moz-column-gap: 5vw;
        column-gap: 5vw;
        width: auto;
        height: auto;
        padding: 24px 5vw;
    }

    .c-app-download ul li {
        width: 256px;
        margin: 24px auto 0;
    }

    .c-app-download ul li:first-child {
        margin-top: 0;
    }

    .c-app-download ul li dl {
        height: 80px;
    }

    .c-app-download ul li dl dd img {
        height: 46.4px;
    }

    .c-app-download ul li>img {
        width: 80px;
        height: 80px;
    }
}

/*
--------------------------------
	404 not found
--------------------------------
*/
/* ---- 404 ---- */
.c-404 {
    padding: 120px 0 70px;
    font-weight: 700;
    text-align: center;
}

.c-404 span:first-child {
    display: block;
    font-size: 8.6rem;
}

.c-404 span:last-child {
    display: block;
    margin-top: 16px;
    font-size: 3rem;
}

.c-404+div {
    padding-bottom: 30px;
}

@media screen and (max-width: 767.9px) {
    .c-404 {
        padding: 24vw 0 60px;
    }

    .c-404+div {
        padding-bottom: 12vw;
    }
}

/*
--------------------------------
	each article pages
--------------------------------
*/
/* ---- header ---- */
.article-header {
    margin-top: 50px !important;
    padding: 35px 0 30px;
    border-top: 1px solid #2e2e2e;
    border-bottom: 1px solid #2e2e2e;
}

.article-header p {
    margin-top: 40px;
    font-size: 2rem;
    line-height: 1.6;
}

.article-header .foot {
    display: flex;
    align-items: center;
    margin-top: 30px;
}

.article-header .foot time {
    font-size: 1.3rem;
}

.article-header .foot .category {
    font-size: 1.2rem;
}

.article-header .foot .category::before {
    content: "｜";
    display: inline-block;
    margin: 0 0.7em;
    transform: scale(1, 0.8);
}

.article-header .foot .share-buttons {
    display: flex;
    -moz-column-gap: 15px;
    column-gap: 15px;
    margin-left: auto;
}

.article-header .foot .share-buttons a {
    display: block;
    width: 32px;
    opacity: 1;
    transition: opacity 0.2s;
}

.article-header .foot .share-buttons a:hover,
.article-header .foot .share-buttons a:active {
    opacity: 0.6;
}

@media screen and (max-width: 767.9px) {
    .article-header {
        margin-top: 8.5vw !important;
        padding: 10.7vw 0;
    }

    .article-header p {
        margin-top: 24px;
        font-size: 1.8rem;
    }

    .article-header .foot {
        flex-wrap: wrap;
        margin-top: 30px;
    }

    .article-header .foot .share-buttons {
        width: 100%;
        margin-top: 30px;
    }
}

/*
--------------------------------
	service pages
--------------------------------
*/
/* ---- line / yahoo! links ---- */
.service-top-links {
    display: flex;
    justify-content: space-between;
}

.service-top-links li {
    width: 48.2%;
}

.service-top-links li a {
    display: block;
    position: relative;
    height: 100%;
    padding: 65px 6% 80px;
    border-radius: 4px;
    background-color: #f4f4f4;
    color: #2e2e2e;
    transition: background-color 0.3s ease-out;
    /*
  &::before {
  	content: "";
  	display: block;
  	position: absolute;
  	left: 6%;
  	top: 0;
  	width: 20px;
  	height: 5px;
  	border-radius: 0 0 2px 2px;
  }
  */
}

.bg-gray .service-top-links li a {
    background-color: #fff;
}

.service-top-links li a:hover,
.service-top-links li a:active {
    background-color: #eaeaea;
    color: #2e2e2e;
}

.bg-gray .service-top-links li a:hover,
.bg-gray .service-top-links li a:active {
    background-color: #eaeaea;
}

.service-top-links li a:hover>span::before,
.service-top-links li a:active>span::before {
    transform: scale(1, 1);
}

.service-top-links li a:hover>span::after,
.service-top-links li a:active>span::after {
    animation: arrow-right 0.5s ease-in-out;
}

.service-top-links li a>p {
    margin-top: 30px;
    font-size: 1.6rem;
    line-height: 2;
}

.service-top-links li a>span {
    display: inline-block;
    position: absolute;
    right: 6%;
    bottom: 24px;
    padding: 0 25px 16px 0;
    border-bottom: 1px solid #e2e2e2;
    color: #2e2e2e;
    font-size: 1.4rem;
    font-weight: 700;
}

.service-top-links li a>span::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 100%;
    height: 1px;
    background-color: #2e2e2e;
    transform-origin: 0 0;
    transform: scale(0, 1);
    transition: transform 0.24s ease-in-out;
}

.service-top-links li a>span::after {
    content: "";
    display: block;
    position: absolute;
    right: 0;
    top: calc(50% - 12px);
    width: 12px;
    height: 10px;
    background: url(../images/icon_arrow.svg) center no-repeat;
}

.service-top-links li:first-child a::before {
    background-color: #06c755;
}

.service-top-links li:last-child a::before {
    background-color: #f03;
}

.service-top-links li .head {
    text-align: center;
}

.service-top-links li .head img {
    height: 130px;
}

.service-top-links li .head p {
    margin-top: 65px;
    font-size: 3.2rem;
    font-weight: 700;
}

.service-top-links li .head p span {
    display: block;
    margin-bottom: 1em;
    font-size: 1.6rem;
    font-weight: 400;
}

@media screen and (max-width: 767.9px) {
    .service-top-links {
        display: block;
    }

    .service-top-links li {
        width: auto;
    }

    .service-top-links li+li {
        margin-top: 5vw;
    }

    .service-top-links li a {
        height: auto;
        padding: 35px 9% 28px;
        text-align: right;
        /*
    &::before {
    	left: 9%;
    }
    */
    }

    .service-top-links li a:hover,
    .service-top-links li a:active {
        background-color: #f4f4f4;
    }

    .bg-gray .service-top-links li a:hover,
    .bg-gray .service-top-links li a:active {
        background-color: #fff;
    }

    .service-top-links li a:hover>span::before,
    .service-top-links li a:active>span::before {
        transform: none;
    }

    .service-top-links li a:hover>span::after,
    .service-top-links li a:active>span::after {
        animation: none;
    }

    .service-top-links li a>p {
        margin: 28px 0 8px;
        font-size: 1.4rem;
        text-align: left;
    }

    .service-top-links li a>span {
        position: relative;
        right: auto;
        bottom: auto;
        padding: 16px 25px 16px 0;
        line-height: 1.3;
    }

    .service-top-links li a>span::before {
        content: none;
    }

    .service-top-links li a>span::after {
        top: calc(50% - 5px);
    }

    .service-top-links li .head {
        display: flex;
        align-items: center;
        text-align: left;
    }

    .service-top-links li .head img {
        height: 60px;
        margin-right: 24px;
    }

    .service-top-links li .head p {
        margin-top: 0;
        font-size: 2.4rem;
        letter-spacing: normal;
    }

    .service-top-links li .head p span {
        margin-bottom: 0.5em;
        font-size: 1.3rem;
        letter-spacing: 0.08em;
    }
}

/*
--------------------------------
	recruit pages
--------------------------------
*/
/* ---- sns ---- */
.recruit-sns {
    background-image: url(../images/recruit/bg_sns_pc.jpg);
    background-size: cover;
    background-position: 50%;
}

.recruit-sns .pc h2 {
    display: inline-block;
    padding: 8px 10px 6px;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 3.8rem;
    font-weight: 700;
}

.recruit-sns .pc h2:lang(en) {
    letter-spacing: normal;
}

.recruit-sns .sp {
    display: none;
}

.recruit-sns p {
    display: inline-block;
    margin-top: 8px;
    padding: 6px 10px 5px;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.6rem;
}

.recruit-sns ul {
    display: flex;
    margin-top: 40px;
}

.recruit-sns ul li {
    margin-right: 24px;
}

.recruit-sns ul li:nth-child(2) {
    margin-right: 16px;
}

.recruit-sns ul a {
    opacity: 1;
    transition: opacity 0.2s;
}

.recruit-sns ul a:hover,
.recruit-sns ul a:active {
    opacity: 0.8;
}

.recruit-sns ul img {
    width: auto;
    height: 56px;
}

@media screen and (max-width: 767.9px) {
    .recruit-sns {
        padding-top: 29vw !important;
        padding-bottom: 29vw !important;
        background-image: url(../images/recruit/bg_sns_sp.jpg);
    }

    .recruit-sns .pc {
        display: none;
    }

    .recruit-sns .sp {
        display: block;
    }

    .recruit-sns .sp span {
        display: inline-block;
        padding: 8px 10px 6px;
        border-radius: 4px;
        background-color: #fff;
        color: #2e2e2e;
        font-size: 3.4rem;
        font-weight: 700;
    }

    .recruit-sns .sp span:lang(en) {
        letter-spacing: normal;
    }

    .recruit-sns .sp span:last-child {
        margin-top: 8px;
    }

    .recruit-sns p {
        font-size: 1.5rem;
        letter-spacing: 0.02em;
    }

    .recruit-sns ul a {
        transition: none;
    }

    .recruit-sns ul a:hover,
    .recruit-sns ul a:active {
        opacity: 1;
    }
}

/* ---- job search ---- */
.recruit-search {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-top: 70px !important;
}

.recruit-search .col-result {
    width: calc(100% - 300px);
}

.recruit-search .col-filter {
    position: sticky;
    top: 120px;
    width: 256px;
}

.recruit-search .header {
    margin-bottom: 40px;
    font-size: 2.4rem;
    font-weight: 700;
}

.recruit-search .header span {
    margin-left: 0.8em;
    font-size: 3.2rem;
}

.recruit-search .header button {
    display: none;
}

.recruit-search .filters {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 40px;
}

.recruit-search .filters button {
    display: inline-block;
    position: relative;
    padding: 12px 24px 10px 8px;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.3rem;
    font-weight: 700;
    transition: background-color 0.2s;
}

.recruit-search .filters button::before {
    content: "";
    display: block;
    position: absolute;
    right: 8px;
    top: 50%;
    width: 10px;
    height: 2px;
    background-color: #2e2e2e;
    transform: rotate(45deg);
}

.recruit-search .filters button::after {
    content: "";
    display: block;
    position: absolute;
    right: 8px;
    top: 50%;
    width: 10px;
    height: 2px;
    background-color: #2e2e2e;
    transform: rotate(-45deg);
}

.recruit-search .filters button:hover,
.recruit-search .filters button:active {
    background-color: #eaeaea;
}

.recruit-search .filters button[data-id=clear] {
    background-color: #f4f4f4;
    background-image: url(../images/icon_trash.svg);
    background-repeat: no-repeat;
    background-size: 11px 13px;
    background-position: right 8px top 50%;
}

.recruit-search .filters button[data-id=clear]::before,
.recruit-search .filters button[data-id=clear]::after {
    content: none;
}

.recruit-search .filters button[data-id=clear]:hover,
.recruit-search .filters button[data-id=clear]:active {
    background-color: #eaeaea;
}

.recruit-search .filter-box {
    padding: 40px 24px 45px;
    border-radius: 4px;
    background-color: #f4f4f4;
}

.recruit-search .filter-box h2 {
    font-size: 2rem;
    font-weight: 700;
}

.recruit-search .filter-box button {
    display: block;
    position: relative;
    width: 100%;
    margin-top: 7px;
    padding: 13px 50px 11px 18px;
    background-color: #fff;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-align: left;
    transition: background-color 0.2s;
}

.recruit-search .filter-box button::after {
    content: "";
    display: block;
    position: absolute;
    right: 12px;
    top: calc(50% - 11px);
    width: 24px;
    height: 24px;
    background-image: url(../images/icon_modal.svg);
    background-repeat: no-repeat;
    background-size: 24px;
}

.recruit-search .filter-box button:hover,
.recruit-search .filter-box button:active {
    background-color: #eaeaea;
}

.recruit-search .filter-box button:nth-child(2) {
    margin-top: 30px;
}

@media screen and (max-width: 767.9px) {
    .recruit-search {
        display: block;
        margin-top: 4vw !important;
    }

    .recruit-search .col-result {
        width: auto;
    }

    .recruit-search .col-filter {
        display: none;
    }

    .recruit-search .header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 6vw;
        font-size: 1.8rem;
    }

    .recruit-search .header span {
        margin-left: 0.5em;
        font-size: 2.4rem;
    }

    .recruit-search .header button {
        display: block;
        width: 43px;
        height: 44px;
        padding: 0;
        background-color: transparent;
        background-image: url(../images/btn_filter.svg);
        background-repeat: no-repeat;
        background-size: 100%;
        border-style: none;
        border-radius: 0;
        overflow: hidden;
        text-indent: -400px;
    }

    .recruit-search .filters {
        margin-bottom: 8vw;
    }

    .recruit-search .filters button {
        padding: 10px 24px 8px 8px;
        font-size: 1.2rem;
        transition: none;
    }

    .recruit-search .filters button:hover,
    .recruit-search .filters button:active {
        background-color: #fff;
    }

    .recruit-search .filters button[data-id=clear]:hover,
    .recruit-search .filters button[data-id=clear]:active {
        background-color: #f4f4f4;
    }
}

/* ---- job box ---- */
.recruit-job .inner dl {
    background-color: #fff;
}

.recruit-job .inner dt {
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.4;
}

.recruit-job .inner dd {
    margin-top: 1.2em;
    font-size: 1.6rem;
    line-height: 2;
}

@media screen and (max-width: 767.9px) {
    .recruit-job .inner dd {
        margin-top: 1em;
        font-size: 1.4rem;
    }
}

/* ---- more about jobs ---- */
.recruit-job-banner {
    position: relative;
    margin-top: 120px;
    padding: 80px 8.7% 150px;
}

.recruit-job-banner h2 {
    display: inline-block;
    padding: 8px 10px 5px;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 3.8rem;
    font-weight: 700;
    letter-spacing: 0.07em;
}

.recruit-job-banner p span {
    display: inline-block;
    margin: 8px 30% 0 0;
    padding: 6px 9px 4px;
    border-radius: 4px;
    background-color: #fff;
    color: #2e2e2e;
    font-size: 1.6rem;
    letter-spacing: 0.02em;
}

.recruit-job-banner p br {
    display: none;
}

.recruit-job-banner .buttons {
    display: flex;
    position: absolute;
    right: -1px;
    bottom: -1px;
    max-width: 91.3%;
    padding: 32px 1px 7px 0;
    border-radius: 4px 0 0 0;
    background-color: #fff;
}

.recruit-job-banner .buttons li {
    max-width: 50%;
    padding-left: 40px;
}

.recruit-job-banner .buttons li:only-child {
    max-width: none;
}

.recruit-job-banner img {
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    z-index: -1;
    width: 100%;
    height: 100%;
    border-radius: 4px;
    -o-object-fit: cover;
    object-fit: cover;
}

@media screen and (max-width: 1080px) {
    .recruit-job-banner p span {
        margin-right: 0;
    }
}

@media screen and (max-width: 767.9px) {
    .recruit-job-banner {
        margin-top: 18vw;
        padding: 25vw 0 0;
    }

    .recruit-job-banner h2 {
        margin-left: 5vw;
        padding: 8px 10px 5px;
        font-size: 2.8rem;
    }

    .recruit-job-banner p span {
        display: inline;
        margin: 0;
        padding: 0;
        border-radius: 0;
        background-color: transparent;
        font-size: 1.4rem;
        line-height: 2;
    }

    .recruit-job-banner p {
        margin-top: calc(25vw + 32px);
    }

    .recruit-job-banner p span {
        display: inline;
        margin: 0;
        padding: 0;
        border-radius: 0;
        background-color: transparent;
        font-size: 1.4rem;
        line-height: 2;
    }

    .recruit-job-banner p br {
        display: inline;
    }

    .recruit-job-banner .buttons {
        display: block;
        position: static;
        max-width: none;
        margin-top: 30px;
        padding: 0;
        border-radius: 0;
        background-color: transparent;
        text-align: center;
    }

    .recruit-job-banner .buttons li {
        max-width: none;
        margin-top: 16px;
        padding-left: 0;
    }

    .recruit-job-banner img {
        height: calc(50vw + 44px);
    }
}

/* ---- DAY2: sns ---- */
.recruit-sns-d2 {
    padding-top: 120px;
    padding-bottom: 120px;
}

.recruit-sns-d2 .txt {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    height: 318px;
    padding: 0 3.6% 0 53.6%;
    border-radius: 20px;
    background-color: #fdfdfd;
    overflow: hidden;
    box-shadow: 0 0 25px rgba(0, 0, 0, 0.1);
}

.recruit-sns-d2 .txt::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 50%;
    height: 100%;
    background-image: url(../images/recruit/bg_sns_pc.jpg);
    background-size: cover;
    background-position: 85% 50%;
}

.recruit-sns-d2 h2 {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.5;
}

.recruit-sns-d2 p {
    margin-top: 24px;
    font-size: 1.6rem;
    line-height: 1.5;
}

.recruit-sns-d2 ul {
    display: flex;
    margin-top: 24px;
}

.recruit-sns-d2 ul li {
    margin-right: 20px;
}

.recruit-sns-d2 ul li:nth-child(2) {
    margin-right: 14px;
}

.recruit-sns-d2 ul a {
    opacity: 1;
    transition: opacity 0.2s;
}

.recruit-sns-d2 ul a:hover,
.recruit-sns-d2 ul a:active {
    opacity: 0.6;
}

.recruit-sns-d2 ul img {
    width: auto;
    height: 36px;
}

@media screen and (max-width: 767.9px) {
    .recruit-sns-d2 {
        padding: 21.3vw 0;
    }

    .recruit-sns-d2 .txt {
        display: block;
        height: auto;
        padding: calc(50vw + 32px) 0 0;
        border-radius: 0;
        background-color: transparent;
        box-shadow: none;
    }

    .recruit-sns-d2 .txt::before {
        width: 100%;
        height: 50vw;
        background-image: url(../images/recruit/bg_sns_sp.jpg);
        background-position: 0 78%;
    }

    .recruit-sns-d2 h2 {
        padding-left: 5vw;
        padding-right: 5vw;
    }

    .recruit-sns-d2 p {
        margin-top: 12px;
        padding-left: 5vw;
        padding-right: 5vw;
        letter-spacing: normal;
    }

    .recruit-sns-d2 ul {
        justify-content: center;
        margin-top: 32px;
    }

    .recruit-sns-d2 ul img {
        height: 40px;
    }
}

/*
--------------------------------
	basics
--------------------------------
*/
body {
    color: #2e2e2e;
    background-color: #fff;
    overflow-y: scroll;
}

.global-container {
    position: relative;
    width: 100%;
}

a {
    color: #2e2e2e;
    text-decoration: none;
}

a:link,
a:visited {
    color: #2e2e2e;
}

a:hover,
a:active {
    text-decoration: none;
}