@charset "UTF-8";

:root {
    --vw: 100vw
}

@font-face {
    font-display: swap;
    font-family: TWKEverett-Regular;
    src: url(/assets/TWKEverett-Regular.woff) format("woff"), url(/assets/TWKEverett-Regular.woff2) format("woff2")
}

/*! destyle.css v2.0.2 | MIT License | https://github.com/nicolas-cusan/destyle.css */
*,
:after,
:before {
    border-style: solid;
    border-width: 0;
    box-sizing: border-box
}

html {
    -webkit-tap-highlight-color: transparent;
    line-height: 1.15
}

body {
    margin: 0
}

main {
    display: block
}

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

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

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

dt {
    font-weight: 700
}

dd {
    margin-left: 0
}

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

pre {
    font-family: monospace, monospace;
    font-size: inherit
}

address {
    font-style: inherit
}

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

abbr[title] {
    text-decoration: underline;
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted
}

b,
strong {
    font-weight: bolder
}

code,
kbd,
samp {
    font-family: monospace, monospace;
    font-size: inherit
}

small {
    font-size: 80%
}

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

sub {
    bottom: -.25em
}

sup {
    top: -.5em
}

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

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

[type=checkbox] {
    -webkit-appearance: checkbox;
    -moz-appearance: checkbox;
    appearance: checkbox
}

[type=radio] {
    -webkit-appearance: radio;
    -moz-appearance: radio;
    appearance: radio
}

button,
input {
    overflow: visible
}

button,
select {
    text-transform: none
}

[type=button],
[type=reset],
[type=submit],
button {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    cursor: pointer
}

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

[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
    border-style: none;
    padding: 0
}

[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-moz-focusring {
    outline: 1px dotted ButtonText
}

select::-ms-expand {
    display: none
}

fieldset,
option {
    padding: 0
}

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

legend {
    color: inherit;
    display: table;
    max-width: 100%;
    padding: 0;
    white-space: normal
}

progress {
    vertical-align: baseline
}

textarea {
    overflow: auto
}

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

[type=search] {
    outline-offset: -2px
}

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

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

label[for] {
    cursor: pointer
}

details {
    display: block
}

summary {
    display: list-item
}

[contenteditable] {
    outline: none
}

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

caption {
    text-align: left
}

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

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

[hidden],
template {
    display: none
}

html {
    font-feature-settings: "palt";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%;
    background-color: #000;
    font-family: TWKEverett-Regular, fot-cezanne-pron, sans-serif;
    font-size: calc(var(--vw)/144);
    font-style: normal;
    font-weight: 500
}

html:not(.wf-active) *,
html:not(.wf-active) :after,
html:not(.wf-active) :before {
    color: transparent !important
}

html.preventscroll,
html.preventscroll body {
    overflow: hidden;
    position: relative
}

body {
    background-color: #000;
    color: #fff;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em;
    position: relative
}

body.basecolor_wh ::-moz-selection {
    background-color: grey;
    color: #fff
}

body.basecolor_wh ::selection {
    background-color: grey;
    color: #fff
}

body.basecolor_wh .wrapper {
    background-color: #fff;
    color: #000
}

body.initial>:not(.transitionMask) {
    visibility: hidden
}

div.wrapper#smooth-wrapper {
    position: relative
}

main[data-barba=wrapper] {
    overflow: hidden;
    position: relative
}

::-moz-selection {
    background-color: grey;
    color: #000
}

::selection {
    background-color: grey;
    color: #000
}

a:not([class]):not([href^="tel:"]),
a[class=clicked]:not([href^="tel:"]) {
    color: #666;
    text-decoration: underline;
    text-decoration-color: #333;
    text-underline-offset: max(.6rem, 6px)
}

body.basecolor_wh a:not([class]):not([href^="tel:"]),
body.basecolor_wh a[class=clicked]:not([href^="tel:"]) {
    color: #999;
    text-decoration-color: #ccc
}

a[class=clicked]:not([href^="tel:"]),
body:not(.touch) a:not([class]):not([href^="tel:"]):hover,
body:not(.touch) a[class=clicked]:not([href^="tel:"]):hover {
    text-decoration: none
}

.placeholder,
.placeholder__image {
    height: auto;
    position: relative;
    width: 100%
}

.placeholder__image img {
    display: block;
    height: auto;
    width: 100%
}

.placeholder__title {
    display: none
}

.placeholder__spacer {
    display: block;
    height: 50svh;
    width: 100%
}

@media (min-width:1024px) {
    br.spbr {
        display: none
    }
}

@media (max-width:1023px) {
    html {
        font-size: calc(var(--vw)/37.5)
    }

    body {
        background-color: #000;
        color: #fff;
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.7692307692em
    }

    br.pcbr {
        display: none
    }
}

.arrowlink__text {
    display: block;
    position: relative;
    width: -moz-fit-content;
    width: fit-content
}

.arrowlink__text:before {
    background-color: #05f;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    content: "";
    display: block;
    height: max(.6rem, 6px);
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: calc(50% - max(.3rem, 3px));
    width: max(.6rem, 6px)
}

.arrowlink__text span {
    display: block;
    position: relative;
    width: -moz-fit-content;
    width: fit-content
}

body:not(.touch) .arrowlink.clicked .arrowlink__text:before,
body:not(.touch) .arrowlink:hover .arrowlink__text:before {
    animation: arrowlinkArrowTick 1s cubic-bezier(.19, 1, .22, 1) .75s infinite normal both;
    opacity: 1
}

body:not(.touch) .arrowlink.clicked .arrowlink__text span,
body:not(.touch) .arrowlink:hover .arrowlink__text span {
    animation: arrowlinkTextOn 1s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both !important
}

body:not(.touch) .arrowlink:not(.clicked) .arrowlink__text span,
body:not(.touch) .arrowlink:not(:hover) .arrowlink__text span {
    animation: arrowlinkTextOff .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both
}

@keyframes arrowlinkArrowTick {
    0% {
        transform: translate(0)
    }

    0.01% {
        transform: translate(max(.6rem, 6px))
    }

    75% {
        transform: translate(0)
    }

    to {
        transform: translate(0)
    }
}

@keyframes arrowlinkTextOn {
    0% {
        transform: translateX(max(.8rem, 8px))
    }

    to {
        transform: translateX(max(1.6rem, 16px))
    }
}

@keyframes arrowlinkTextOff {
    0% {
        transform: translateX(max(1.6rem, 16px))
    }

    to {
        transform: translateX(max(0rem, 0px))
    }
}

.blockbtn {
    align-items: center;
    display: flex;
    flex-flow: row nowrap;
    height: auto;
    justify-content: flex-start;
    min-height: 6.6rem;
    position: relative;
    width: auto
}

.blockbtn:before {
    background-color: #4d4d4d;
    height: 1px;
    z-index: 0
}

.blockbtn:after,
.blockbtn:before {
    content: "";
    display: block;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.blockbtn:after {
    background-color: #fff;
    border-radius: max(.3rem, 3px);
    height: 100%;
    opacity: 0;
    z-index: 1
}

.blockbtn__title {
    flex: 1 1 auto;
    font-size: max(1.6rem, 16px);
    letter-spacing: 0;
    line-height: 1.3125em;
    padding: max(1.2rem, 12px) max(1.2rem, 12px) max(1.2rem, 12px) max(2rem, 20px);
    position: relative;
    z-index: 2
}

.blockbtn__label {
    flex: 0 0 auto;
    font-size: max(1rem, 10px);
    letter-spacing: 0;
    line-height: 1em;
    padding-right: max(2rem, 20px);
    position: revert;
    z-index: 2
}

.blockbtn__arrowicon {
    background-color: #05f;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    height: max(.8rem, 8px);
    left: 0;
    position: absolute;
    top: calc(50% - max(.4rem, 4px));
    width: max(.8rem, 8px);
    z-index: 0
}

.blockbtn__arrowbox {
    height: 100%;
    overflow: hidden;
    position: absolute;
    right: 0;
    top: 0;
    width: 0;
    z-index: 2
}

.blockbtn__arrowbox:before {
    background-color: rgba(0, 0, 0, .2);
    content: "";
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 1px
}

.blockbtn__arrowbox:after {
    background-color: #000;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    content: "";
    display: block;
    height: max(.8rem, 8px);
    position: absolute;
    right: calc(50% - max(.4rem, 4px));
    top: calc(50% - max(.4rem, 4px));
    width: max(.8rem, 8px);
    z-index: 0
}

.blockbtn--borderwhite:before {
    background-color: hsla(0, 0%, 100%, .4)
}

.blockbtn--white:before,
body.basecolor_wh .blockbtn:before {
    background-color: #ccc
}

.blockbtn--white:after,
body.basecolor_wh .blockbtn:after {
    background-color: #000
}

.blockbtn--white .blockbtn__arrowbox:before,
body.basecolor_wh .blockbtn .blockbtn__arrowbox:before {
    background-color: hsla(0, 0%, 100%, .3)
}

.blockbtn--white .blockbtn__arrowbox:after,
body.basecolor_wh .blockbtn .blockbtn__arrowbox:after {
    background-color: #fff
}

.blockbtn--white .blockbtn__arrowicon,
body.basecolor_wh .blockbtn .blockbtn__arrowicon {
    background-color: #039
}

.blockbtn--large {
    min-height: 8.8rem
}

.blockbtn--large .blockbtn__title {
    font-size: max(2.1rem, 21px);
    letter-spacing: 0;
    line-height: 1.2380952381em
}

.blockbtn--fillbk,
.blockbtn--fillblue,
.blockbtn--fillgray {
    background-color: transparent !important;
    color: #fff
}

.blockbtn--fillbk:before,
.blockbtn--fillblue:before,
.blockbtn--fillgray:before {
    opacity: 0
}

.blockbtn--fillbk:after,
.blockbtn--fillblue:after,
.blockbtn--fillgray:after {
    opacity: 1
}

.blockbtn--fillbk .blockbtn__title,
.blockbtn--fillblue .blockbtn__title,
.blockbtn--fillgray .blockbtn__title {
    color: #fff;
    padding-left: 1.5rem;
    padding-right: 8.1rem;
    text-align: center
}

.blockbtn--fillbk .blockbtn__label,
.blockbtn--fillblue .blockbtn__label,
.blockbtn--fillgray .blockbtn__label {
    display: none
}

.blockbtn--fillbk .blockbtn__arrowbox,
.blockbtn--fillblue .blockbtn__arrowbox,
.blockbtn--fillgray .blockbtn__arrowbox {
    transition: none;
    width: 6.6rem
}

.blockbtn--fillbk.blockbtn--reverse .blockbtn__title,
.blockbtn--fillblue.blockbtn--reverse .blockbtn__title,
.blockbtn--fillgray.blockbtn--reverse .blockbtn__title {
    padding-left: 8.1rem;
    padding-right: 1.5rem
}

.blockbtn--fillbk.blockbtn--reverse .blockbtn__arrowbox,
.blockbtn--fillblue.blockbtn--reverse .blockbtn__arrowbox,
.blockbtn--fillgray.blockbtn--reverse .blockbtn__arrowbox {
    left: 0;
    right: auto;
    transform: scaleX(-1)
}

.blockbtn--fillbk.blockbtn--large .blockbtn__arrowbox,
.blockbtn--fillblue.blockbtn--large .blockbtn__arrowbox,
.blockbtn--fillgray.blockbtn--large .blockbtn__arrowbox {
    width: 8.8rem
}

.blockbtn--fillbk:after {
    background-color: #000 !important
}

.blockbtn--fillblue:after {
    background-color: #039 !important
}

.blockbtn--fillgray {
    color: #000
}

.blockbtn--fillgray:after {
    background-color: #f2f2f2 !important
}

.blockbtn--fillgray .blockbtn__arrowbox:before {
    background-color: #d9d9d9 !important
}

.blockbtn--fillgray .blockbtn__arrowbox:after {
    background-color: #000 !important
}

body:not(.touch) .blockbtn.clicked:before,
body:not(.touch) .blockbtn:hover:before {
    opacity: 0
}

body:not(.touch) .blockbtn.clicked:after,
body:not(.touch) .blockbtn:hover:after {
    opacity: 1
}

body:not(.touch) .blockbtn.clicked+.blockbtn:before,
body:not(.touch) .blockbtn:hover+.blockbtn:before {
    opacity: 0
}

body:not(.touch) .blockbtn.clicked .blockbtn__title,
body:not(.touch) .blockbtn:hover .blockbtn__title {
    color: #000
}

body:not(.touch) .blockbtn.clicked .blockbtn__label,
body:not(.touch) .blockbtn:hover .blockbtn__label {
    color: #000;
    transform: translate(-6.6rem);
    transition: transform 1s cubic-bezier(.19, 1, .22, 1)
}

body:not(.touch) .blockbtn.clicked .blockbtn__arrowbox,
body:not(.touch) .blockbtn:hover .blockbtn__arrowbox {
    transition: width 1s cubic-bezier(.19, 1, .22, 1);
    width: 6.6rem
}

body:not(.touch) .blockbtn.clicked .blockbtn__arrowbox:after,
body:not(.touch) .blockbtn:hover .blockbtn__arrowbox:after {
    animation: blockbtnArrowTick 1s cubic-bezier(.19, 1, .22, 1) .75s infinite normal both
}

body:not(.touch) .blockbtn.clicked.blockbtn--large .blockbtn__label,
body:not(.touch) .blockbtn:hover.blockbtn--large .blockbtn__label {
    transform: translate(-8.8rem)
}

body:not(.touch) .blockbtn.clicked.blockbtn--large .blockbtn__arrowbox,
body:not(.touch) .blockbtn:hover.blockbtn--large .blockbtn__arrowbox {
    width: 8.8rem
}

body:not(.touch) .blockbtn--white.clicked .blockbtn__label,
body:not(.touch) .blockbtn--white.clicked .blockbtn__title,
body:not(.touch) .blockbtn--white:hover .blockbtn__label,
body:not(.touch) .blockbtn--white:hover .blockbtn__title,
body:not(.touch).basecolor_wh .blockbtn.clicked .blockbtn__label,
body:not(.touch).basecolor_wh .blockbtn.clicked .blockbtn__title,
body:not(.touch).basecolor_wh .blockbtn:hover .blockbtn__label,
body:not(.touch).basecolor_wh .blockbtn:hover .blockbtn__title {
    color: #fff
}

body:not(.touch) .blockbtn--fillbk.clicked .blockbtn__arrowbox:after,
body:not(.touch) .blockbtn--fillbk:hover .blockbtn__arrowbox:after,
body:not(.touch) .blockbtn--fillblue.clicked .blockbtn__arrowbox:after,
body:not(.touch) .blockbtn--fillblue:hover .blockbtn__arrowbox:after,
body:not(.touch) .blockbtn--fillgray.clicked .blockbtn__arrowbox:after,
body:not(.touch) .blockbtn--fillgray:hover .blockbtn__arrowbox:after {
    animation-delay: 0s
}

@keyframes blockbtnArrowTick {
    0% {
        transform: translate(0)
    }

    0.01% {
        transform: translate(max(.6rem, 6px))
    }

    75% {
        transform: translate(0)
    }

    to {
        transform: translate(0)
    }
}

@keyframes blockbtnArrowTickReverse {
    0% {
        transform: scaleX(-1) translate(0)
    }

    0.01% {
        transform: scaleX(-1) translate(max(.6rem, 6px))
    }

    75% {
        transform: scaleX(-1) translate(0)
    }

    to {
        transform: scaleX(-1) translate(0)
    }
}

@media (max-width:1023px) {
    .blockbtn {
        min-height: 5.4rem
    }

    .blockbtn__title {
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1.3571428571em;
        padding: max(.8rem, 8px) max(1.5rem, 15px)
    }

    .blockbtn__label {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        padding-right: max(1.666666667rem, 16.66666667px);
        transform: scale(.9);
        transform-origin: right center
    }

    .blockbtn__arrowbox:after,
    .blockbtn__arrowicon {
        height: max(.6rem, 6px);
        top: calc(50% - max(.3rem, 3px));
        width: max(.6rem, 6px)
    }

    .blockbtn__arrowbox:after {
        right: calc(50% - max(.3rem, 3px))
    }

    .blockbtn--large {
        min-height: 6.6rem
    }

    .blockbtn--large .blockbtn__title {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em
    }

    .blockbtn--fillbk .blockbtn__title,
    .blockbtn--fillblue .blockbtn__title,
    .blockbtn--fillgray .blockbtn__title {
        color: #fff;
        padding-left: 1.5rem;
        padding-right: 6.9rem;
        text-align: center
    }

    .blockbtn--fillbk .blockbtn__arrowbox,
    .blockbtn--fillblue .blockbtn__arrowbox,
    .blockbtn--fillgray .blockbtn__arrowbox {
        width: max(5.4rem, 54px)
    }

    .blockbtn--fillbk.blockbtn--reverse .blockbtn__title,
    .blockbtn--fillblue.blockbtn--reverse .blockbtn__title,
    .blockbtn--fillgray.blockbtn--reverse .blockbtn__title {
        padding-left: 6.9rem;
        padding-right: 1.5rem
    }

    .blockbtn--fillbk.blockbtn--large .blockbtn__arrowbox,
    .blockbtn--fillblue.blockbtn--large .blockbtn__arrowbox,
    .blockbtn--fillgray.blockbtn--large .blockbtn__arrowbox {
        width: max(6.6rem, 66px)
    }

    body:not(.touch) .blockbtn.clicked .blockbtn__label,
    body:not(.touch) .blockbtn:hover .blockbtn__label {
        transform: translate(min(-5.4rem, -54px))
    }

    body:not(.touch) .blockbtn.clicked .blockbtn__arrowbox,
    body:not(.touch) .blockbtn:hover .blockbtn__arrowbox {
        width: max(5.4rem, 54px)
    }

    body:not(.touch) .blockbtn.clicked.blockbtn--large .blockbtn__label,
    body:not(.touch) .blockbtn:hover.blockbtn--large .blockbtn__label {
        transform: translate(min(-6.6rem, -66px))
    }

    body:not(.touch) .blockbtn.clicked.blockbtn--large .blockbtn__arrowbox,
    body:not(.touch) .blockbtn:hover.blockbtn--large .blockbtn__arrowbox {
        width: max(6.6rem, 66px)
    }
}

.hoverRoll__text {
    display: block;
    height: auto;
    overflow: hidden;
    position: relative;
    width: auto
}

.hoverRoll__text span {
    display: block;
    width: 100%
}

.hoverRoll__text span+span {
    left: 0;
    position: absolute;
    top: calc(100% + 2px)
}

.hoverRoll.hover .hoverRoll__text span {
    animation: textRollOver .75s cubic-bezier(.19, 1, .22, 1) 0s 1 normal none
}

@keyframes textRollOver {
    0% {
        transform: translateY(0)
    }

    to {
        transform: translateY(calc(-100% - 2px))
    }
}

.titleset {
    position: relative
}

.titleset__line {
    display: block;
    overflow: hidden;
    position: relative
}

.titleset__line>span {
    display: block;
    position: relative;
    transform: translateY(100%)
}

.titleset.reverse .titleset__line>span {
    transform: translateY(-100%)
}

.titleset.active .titleset__line>span {
    transform: translateY(0);
    transition: transform 1.5s cubic-bezier(.19, 1, .22, 1)
}

.titleset.active .titleset__line:first-child>span,
.titleset.active .titleset__line:nth-child(2)>span,
.titleset.active .titleset__line:nth-child(3)>span {
    transition-delay: 0s
}

.titleset__lead1,
.titleset__lead2,
.titleset__lead3 {
    background-color: #05f;
    height: .4rem;
    width: 4rem
}

.titleset__title1 {
    font-size: max(10rem, 100px);
    line-height: .9em
}

.titleset__title1,
.titleset__title2 {
    color: #fff;
    letter-spacing: -.05em;
    margin-top: max(3rem, 30px)
}

.titleset__title2 {
    font-size: max(7.2rem, 72px);
    line-height: 1em
}

.titleset__title3 {
    color: #fff;
    font-size: max(4.8rem, 48px);
    letter-spacing: -.05em;
    line-height: 1em;
    margin-top: max(1.5rem, 15px)
}

.titleset__hitbox {
    height: 100%;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: -1
}

@media (min-width:1024px) {
    .titleset__hitbox {
        transform: translateY(calc(var(--layerprlx)*-50lvh));
        will-change: transform
    }
}

body.basecolor_wh .titleset__lead1,
body.basecolor_wh .titleset__lead2,
body.basecolor_wh .titleset__lead3 {
    background-color: #039
}

body.basecolor_wh .titleset__title1,
body.basecolor_wh .titleset__title2,
body.basecolor_wh .titleset__title3 {
    color: #000
}

@media (max-width:1023px) {

    .titleset__lead1,
    .titleset__lead2,
    .titleset__lead3 {
        background-color: #05f;
        height: .3rem;
        width: 3rem
    }

    .titleset__title1 {
        font-size: max(5rem, 50px);
        letter-spacing: -.05em;
        line-height: .9em;
        margin-top: max(1.5rem, 15px)
    }

    .titleset__title2 {
        font-size: max(3.8rem, 38px)
    }

    .titleset__title2,
    .titleset__title3 {
        letter-spacing: -.05em;
        line-height: 1em;
        margin-top: max(1.5rem, 15px)
    }

    .titleset__title3 {
        font-size: max(3rem, 30px)
    }
}

.articlelist__item {
    align-items: center;
    display: flex;
    flex-flow: row nowrap;
    height: auto;
    justify-content: flex-start;
    min-height: 6.6rem;
    position: relative;
    width: 100%
}

.articlelist__item:before {
    background-color: #4d4d4d;
    content: "";
    height: 1px;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.articlelist__item:after {
    background-color: #05f;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    content: "";
    display: block;
    height: max(.8rem, 8px);
    left: min(-2rem, -20px);
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: calc(50% - max(.4rem, 4px));
    width: max(.8rem, 8px)
}

.articlelist__item__title {
    flex: 1 1 auto;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    padding: max(1.4rem, 14px) max(4rem, 40px) max(1.4rem, 14px) 0;
    transition: padding .5s cubic-bezier(.19, 1, .22, 1) 0s
}

.articlelist__item__term {
    border: 1px solid #4d4d4d;
    border-radius: 9999px;
    flex: 0 0 max(10.5rem, 105px);
    font-size: max(1rem, 10px);
    height: max(2.2rem, 22px);
    letter-spacing: 0;
    line-height: 2em;
    overflow: hidden;
    padding: 0 max(.8rem, 8px);
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: max(10.5rem, 105px)
}

.articlelist__item__date {
    flex: 0 0 max(14rem, 140px);
    font-size: max(1rem, 10px);
    letter-spacing: 0;
    line-height: 1em;
    padding: 0 20px 0 0;
    text-align: right;
    width: max(14rem, 140px)
}

body:not(.touch) .articlelist__item:hover:after {
    animation: articlelistItemArrowTick 1s cubic-bezier(.19, 1, .22, 1) .75s infinite normal both;
    left: 0;
    opacity: 1
}

body:not(.touch) .articlelist__item:hover .articlelist__item__title {
    animation: articlelistItemTextOn 1s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both
}

body:not(.touch) .articlelist__item:not(:hover) .articlelist__item__title {
    animation: articlelistItemTextOff .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both
}

@keyframes articlelistItemArrowTick {
    0% {
        transform: translate(0)
    }

    0.01% {
        transform: translate(max(.6rem, 6px))
    }

    75% {
        transform: translate(0)
    }

    to {
        transform: translate(0)
    }
}

@keyframes articlelistItemTextOn {
    0% {
        padding-left: max(1rem, 10px);
        padding-right: max(3rem, 30px)
    }

    to {
        padding-left: max(2rem, 20px);
        padding-right: max(2rem, 20px)
    }
}

@keyframes articlelistItemTextOff {
    0% {
        padding-left: max(2rem, 20px);
        padding-right: max(2rem, 20px)
    }

    to {
        padding-left: max(0rem, 0px);
        padding-right: max(4rem, 40px)
    }
}

.articlelist--white .articlelist__item:before,
body.basecolor_wh .articlelist .articlelist__item:before {
    background-color: #ccc
}

.articlelist--white .articlelist__item:after,
body.basecolor_wh .articlelist .articlelist__item:after {
    background-color: #039
}

.articlelist--white .articlelist__item__term,
body.basecolor_wh .articlelist .articlelist__item__term {
    border: 1px solid #ccc
}

@media (max-width:1023px) {
    .articlelist__item {
        align-items: flex-start;
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        min-height: 7.8rem;
        padding-right: 8rem
    }

    .articlelist__item:after {
        height: max(.6rem, 6px);
        left: min(-2rem, -20px);
        top: calc(50% - max(.3rem, 3px));
        width: max(.6rem, 6px)
    }

    .articlelist__item__title {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.3846153846em;
        padding: max(2.1rem, 21px) max(4rem, 40px) max(2.1rem, 21px) 0
    }

    .articlelist__item__term {
        border-radius: 9999px;
        bottom: auto;
        flex: 0 0 auto;
        font-size: max(1rem, 10px);
        height: max(1.6rem, 16px);
        letter-spacing: 0;
        line-height: 1.4em;
        padding: 0;
        position: absolute;
        right: 0;
        top: calc(50% + .5rem);
        width: max(7.2rem, 72px)
    }

    .articlelist__item__term span {
        display: block;
        height: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        transform: scale(.8);
        white-space: nowrap;
        width: 100%
    }

    .articlelist__item__date {
        bottom: auto;
        flex: 0 0 auto;
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        padding: 0;
        position: absolute;
        right: 0;
        text-align: right;
        top: calc(50% - 1.5rem);
        width: 11rem
    }
}

.breadcrumb {
    align-items: center;
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    max-width: 100%;
    width: auto
}

.breadcrumb__path {
    display: block;
    flex: 0 0 auto;
    font-size: max(1.2rem, 12px);
    height: max(2.2rem, 22px);
    letter-spacing: 0;
    line-height: 1.8333333333em;
    overflow: hidden;
    position: relative;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: auto
}

.breadcrumb__path+.breadcrumb__path {
    padding-left: 9rem;
    position: relative
}

.breadcrumb__path+.breadcrumb__path:before {
    background-color: #4d4d4d;
    content: "";
    display: block;
    height: 1px;
    left: 1.5rem;
    position: absolute;
    top: calc(50% - 1px);
    width: 6rem
}

.breadcrumb__path a {
    color: #666;
    display: block;
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1em;
    padding-bottom: .5rem;
    padding-top: .5rem;
    position: relative;
    width: -moz-fit-content;
    width: fit-content
}

.breadcrumb__path:last-child {
    flex: 0 1 auto
}

body.basecolor_wh .breadcrumb__path+.breadcrumb__path:before {
    background-color: #ccc
}

body.basecolor_wh .breadcrumb__path a {
    color: #999
}

@media (max-width:1023px) {
    .breadcrumb__path {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.9090909091em
    }

    .breadcrumb__path+.breadcrumb__path {
        padding-left: 6.5rem;
        position: relative
    }

    .breadcrumb__path+.breadcrumb__path:before {
        left: 1rem;
        width: 4.5rem
    }

    .breadcrumb__path a {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1em;
        padding-bottom: .5rem;
        padding-top: .5rem
    }

    .breadcrumb:has(.breadcrumb__path:nth-child(3)) .breadcrumb__path+.breadcrumb__path {
        padding-left: 4.2rem;
        position: relative
    }

    .breadcrumb:has(.breadcrumb__path:nth-child(3)) .breadcrumb__path+.breadcrumb__path:before {
        left: 1rem;
        width: 2.2rem
    }
}

.breadcrumb__path .complete,
.breadcrumb__path .confirm {
    display: none
}

body:has(.contactform[data-progression=complete]) .page__header,
body:has(.contactform[data-progression=confirm]) .page__header {
    padding-top: 20rem
}

body:has(.contactform[data-progression=complete]) .page__header .page__header__title,
body:has(.contactform[data-progression=confirm]) .page__header .page__header__title {
    font-size: max(7.2rem, 72px);
    letter-spacing: -.05em;
    line-height: 1em;
    margin-top: 3rem
}

body:has(.contactform[data-progression=complete]) .page__header .page__header__description,
body:has(.contactform[data-progression=confirm]) .page__header .page__header__description {
    display: none
}

body:has(.contactform[data-progression=complete]) .page__header .page__header__body,
body:has(.contactform[data-progression=confirm]) .page__header .page__header__body {
    height: 0;
    margin-top: 0
}

body:has(.contactform[data-progression=confirm]) .breadcrumb__path .confirm {
    display: inline-block
}

body:has(.contactform[data-progression=complete]) .breadcrumb__path .complete {
    display: inline-block
}

.contactform__progress {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    gap: 3rem;
    justify-content: flex-start
}

.contactform__progress__path {
    align-items: center;
    background-color: #ccc;
    color: #fff;
    display: flex;
    flex: 0 0 18rem;
    flex-flow: row nowrap;
    font-size: max(1.8rem, 18px);
    height: 5.5rem;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1em;
    position: relative;
    text-align: center;
    width: 18rem
}

.contactform__progress__path+.contactform__progress__path:before {
    background-color: #000;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    content: "";
    display: block;
    height: .8rem;
    left: -1.9rem;
    position: absolute;
    top: calc(50% - .4rem);
    width: .8rem
}

.contactform:not([data-progression]) .contactform__progress__path[data-path=input],
.contactform[data-progression=complete] .contactform__progress__path[data-path=complete],
.contactform[data-progression=confirm] .contactform__progress__path[data-path=confirm],
.contactform[data-progression=input] .contactform__progress__path[data-path=input] {
    background-color: #000;
    color: #fff
}

.contactform__button .blockbtn {
    width: max(27rem, 270px)
}

.contactform__button__send.done,
.contactform__button__send.error,
.contactform__button__send.processing {
    color: #fff;
    display: block;
    opacity: 1;
    pointer-events: none;
    text-align: center
}

.contactform__button__send.done:after,
.contactform__button__send.error:after,
.contactform__button__send.processing:after {
    z-index: -1
}

.contactform__button__send.error:after {
    background-color: #e5004f !important
}

.contactform[data-progression=input] .contactform__complete,
.contactform[data-progression=input] .contactform__confirm {
    display: none
}

.contactform[data-progression=input] .contactform__input {
    display: block
}

.contactform[data-progression=confirm] .contactform__complete,
.contactform[data-progression=confirm] .contactform__input {
    display: none
}

.contactform[data-progression=confirm] .contactform__confirm {
    display: block
}

.contactform[data-progression=complete] .contactform__confirm,
.contactform[data-progression=complete] .contactform__input {
    display: none
}

.contactform[data-progression=complete] .contactform__complete {
    display: block
}

.contactform__input {
    display: block;
    margin-top: 10rem;
    position: relative
}

.contactform__input__description {
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.5555555556em
}

.contactform__input__description+* {
    margin-top: 3.6rem
}

.contactform__input__part {
    padding-left: 30rem;
    position: relative
}

.contactform__input__part input[type=date],
.contactform__input__part input[type=email],
.contactform__input__part input[type=tel],
.contactform__input__part input[type=text],
.contactform__input__part textarea {
    border: 1px solid transparent;
    border-bottom-color: #ccc;
    color: #000;
    font-family: sans-serif;
    font-size: max(1.6rem, 16px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.625em;
    padding: max(1.6rem, 16px) max(2rem, 20px);
    width: 100%
}

.contactform__input__part input[type=date]::-moz-placeholder,
.contactform__input__part input[type=email]::-moz-placeholder,
.contactform__input__part input[type=tel]::-moz-placeholder,
.contactform__input__part input[type=text]::-moz-placeholder,
.contactform__input__part textarea::-moz-placeholder {
    color: #999
}

.contactform__input__part input[type=date]::placeholder,
.contactform__input__part input[type=email]::placeholder,
.contactform__input__part input[type=tel]::placeholder,
.contactform__input__part input[type=text]::placeholder,
.contactform__input__part textarea::placeholder {
    color: #999
}

.contactform__input__part input[type=date]:focus,
.contactform__input__part input[type=email]:focus,
.contactform__input__part input[type=tel]:focus,
.contactform__input__part input[type=text]:focus,
.contactform__input__part textarea:focus {
    border-color: #ccc
}

.contactform__input__part input[type=date],
.contactform__input__part input[type=email],
.contactform__input__part input[type=tel],
.contactform__input__part input[type=text] {
    height: max(6rem, 60px)
}

.contactform__input__part textarea {
    height: max(29rem, 290px)
}

.contactform__input__part:not(:has(.contactform__input__part__error))+.contactform__input__part {
    margin-top: 3.6rem
}

.contactform__input__part.hometown .contactform__input__part__label {
    padding-top: max(1rem, 10px)
}

.contactform__input__part.hometown .contactform__input__part__required {
    top: max(1.2rem, 12px)
}

.contactform__input__part.hometown .contactform__input__part__field {
    padding-top: max(1.1rem, 11px)
}

.contactform__input__part.hometown:has(input[name=hometown_same_address]:checked) input[name=hometown] {
    opacity: .25;
    pointer-events: none
}

.contactform__input__part__label {
    display: block;
    font-size: max(1.8rem, 18px);
    height: max(6rem, 60px);
    left: 0;
    letter-spacing: 0;
    line-height: 1.2777777778em;
    padding: 1.8rem 11rem 1.8rem 0;
    position: absolute;
    top: 0;
    width: 30rem
}

.contactform__input__part__required {
    border: 1px solid #ccc;
    display: block;
    font-size: max(1.1rem, 11px);
    height: max(2rem, 20px);
    left: -9rem;
    letter-spacing: 0;
    line-height: 1.6363636364em;
    position: absolute;
    text-align: center;
    top: max(2rem, 20px);
    width: max(7.5rem, 75px)
}

.contactform__input__part__field {
    position: relative
}

.contactform__input__part__field.error .contactform__input__part__pulldown,
.contactform__input__part__field.error input[type=date],
.contactform__input__part__field.error input[type=email],
.contactform__input__part__field.error input[type=tel],
.contactform__input__part__field.error input[type=text],
.contactform__input__part__field.error textarea {
    border-color: transparent transparent #e5004f
}

.contactform__input__part__pulldown {
    border: 1px solid transparent;
    border-bottom-color: #ccc;
    font-family: sans-serif;
    font-weight: 400;
    height: max(6rem, 60px);
    position: relative;
    width: 100%
}

.contactform__input__part__pulldown:after {
    border-bottom: 1px solid #000;
    border-right: 1px solid #000;
    content: "";
    display: block;
    height: 1.6rem;
    position: absolute;
    right: 2.3rem;
    top: calc(50% - 1.3rem);
    transform: rotate(45deg);
    width: 1.6rem
}

.contactform__input__part__pulldown__select {
    display: block;
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1
}

.contactform__input__part__pulldown__label {
    font-size: max(1.6rem, 16px);
    height: 100%;
    letter-spacing: 0;
    line-height: 1.625em;
    padding: max(1.6rem, 16px) max(2rem, 20px);
    position: relative;
    width: 100%;
    z-index: 0
}

.contactform__input__part__pulldown__label.empty {
    color: #999
}

.contactform__input__part__field__checkfield {
    display: block;
    height: auto;
    margin-bottom: 1rem;
    padding: 0 0 0 max(3rem, 30px);
    position: relative;
    width: -moz-fit-content;
    width: fit-content
}

.contactform__input__part__field__checkfield:before {
    border: 1px solid #ccc;
    content: "";
    display: block;
    height: max(2.2rem, 22px);
    left: 0;
    position: absolute;
    top: 0;
    width: max(2.2rem, 22px)
}

.contactform__input__part__field__checkfield:after {
    background-image: url(/images/common/check.png);
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    display: block;
    height: max(2.2rem, 22px);
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: max(2.2rem, 22px)
}

.contactform__input__part__field__checkfield input[type=checkbox] {
    display: block;
    height: 0;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    visibility: hidden;
    width: 0
}

.contactform__input__part__field__checkfield.checked:after,
.contactform__input__part__field__checkfield:has(input[type=checkbox]:checked):after {
    opacity: 1
}

.contactform__input__part__field__checkfield__label {
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1.6923076923em
}

.contactform__input__part__radio {
    padding: max(1.8rem, 18px) 0 0 max(2rem, 20px);
    position: relative
}

.contactform__input__part__radio__item {
    display: block;
    font-family: sans-serif;
    font-weight: 400;
    padding: max(.1rem, 1px) 0 max(.1rem, 1px) max(3.4rem, 34px);
    position: relative
}

.contactform__input__part__radio__item+.contactform__input__part__radio__item {
    margin-top: 1.5rem
}

.contactform__input__part__radio__item:before {
    background-color: #f2f2f2;
    border: max(.4rem, 4px) solid #fff;
    border-radius: 50%
}

.contactform__input__part__radio__item:after,
.contactform__input__part__radio__item:before {
    content: "";
    display: block;
    height: max(2.3rem, 23px);
    left: 0;
    position: absolute;
    top: 0;
    width: max(2.3rem, 23px)
}

.contactform__input__part__radio__item:after {
    border: 1px solid #ccc;
    border-radius: 50%
}

.contactform__input__part__radio__item input {
    display: block;
    height: 0;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    visibility: hidden;
    width: 0
}

.contactform__input__part__radio__item:has(input:checked):before {
    background-color: #000
}

.contactform__input__part__radio__item__label {
    font-size: max(1.6rem, 16px);
    letter-spacing: 0;
    line-height: 1.3125em
}

.contactform__input__part__attachment__block {
    border-bottom: 1px solid #ccc;
    display: none;
    font-family: sans-serif;
    font-weight: 400;
    padding: 0;
    position: relative
}

.contactform__input__part__attachment__block:first-of-type {
    display: block
}

.contactform__input__part__field.error .contactform__input__part__attachment__block {
    border-bottom: 1px solid #e5004f
}

.contactform__input__part__attachment__btn {
    cursor: pointer;
    display: block;
    padding: max(1.7rem, 17px) max(2rem, 20px) max(1.7rem, 17px) max(5.2rem, 52px);
    position: relative;
    width: 100%
}

.contactform__input__part__attachment__btn input {
    display: block;
    height: 0;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    visibility: hidden;
    width: 0
}

.contactform__input__part__attachment__btn:before {
    background-image: url(/images/common/icon_file_bk.svg);
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: contain;
    content: "";
    display: block;
    height: max(2.4rem, 24px);
    left: max(2rem, 20px);
    position: absolute;
    top: calc(50% - max(1.2rem, 12px));
    width: max(1.8rem, 18px)
}

.contactform__input__part__attachment__filename {
    color: #999;
    font-size: max(1.6rem, 16px);
    letter-spacing: 0;
    line-height: 1.625em;
    overflow: hidden;
    position: relative;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%
}

.contactform__input__part__attachment__clear {
    cursor: pointer;
    display: none;
    height: max(3rem, 30px);
    position: absolute;
    right: max(1.5rem, 15px);
    top: max(1.5rem, 15px);
    width: max(3rem, 30px)
}

.contactform__input__part__attachment__clear:after,
.contactform__input__part__attachment__clear:before {
    background-color: #000;
    content: "";
    display: block;
    height: 1px;
    position: absolute;
    right: max(.2rem, 2px);
    top: 50%;
    width: max(2.6rem, 26px)
}

.contactform__input__part__attachment__clear:before {
    transform: rotate(45deg)
}

.contactform__input__part__attachment__clear:after {
    transform: rotate(135deg)
}

.contactform__input__part__attachment__block.show {
    padding-right: max(6rem, 60px)
}

.contactform__input__part__attachment__block.show .contactform__input__part__attachment__clear {
    display: block
}

.contactform__input__part__attachment__block.show .contactform__input__part__attachment__filename {
    color: #000
}

.contactform__input__part__attachment.contactform__input__part__confirmattachment .contactform__input__part__attachment__btn {
    cursor: default
}

.contactform__input__part__attachment.contactform__input__part__confirmattachment .contactform__input__part__attachment__filename {
    color: #000
}

.contactform__input__part__notice {
    color: #999;
    display: block;
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1.3846153846em;
    min-height: 3.6rem;
    padding: .9rem 0 .9rem 1em
}

.contactform__input__part__notice:before {
    content: "※";
    left: 0;
    position: absolute
}

.contactform__input__part__error {
    color: #e5004f;
    display: block;
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1.3846153846em;
    min-height: 3.6rem;
    padding: .4rem 0 .9rem
}

.contactform__input__part__error__msg {
    display: none;
    padding-top: .5rem
}

.contactform__input__part__error__msg.show {
    display: block
}

.contactform__input__agreement {
    height: auto;
    margin-top: 6.4rem;
    position: relative;
    width: 100%
}

.contactform__input__agreement__body {
    align-items: center;
    border: 1px solid #ccc;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    padding: 3rem
}

.error .contactform__input__agreement__body {
    border-color: #e5004f
}

.contactform__input__agreement__field {
    flex: 0 0 28rem;
    width: 28rem
}

.contactform__input__agreement__check {
    display: block;
    height: auto;
    height: max(3.3rem, 33px);
    padding-left: max(5rem, 50px);
    position: relative;
    width: -moz-fit-content;
    width: fit-content
}

.contactform__input__agreement__check:before {
    border: 1px solid #ccc
}

.contactform__input__agreement__check:after,
.contactform__input__agreement__check:before {
    content: "";
    display: block;
    height: max(3.3rem, 33px);
    left: 0;
    position: absolute;
    top: 0;
    width: max(3.3rem, 33px)
}

.contactform__input__agreement__check:after {
    background-image: url(/images/common/check.png);
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 0
}

.contactform__input__agreement__check input[type=checkbox] {
    display: block;
    height: 0;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    visibility: hidden;
    width: 0
}

.contactform__input__agreement__check:has(input[type=checkbox]:checked):after {
    opacity: 1
}

.contactform__input__agreement__check__text {
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.8333333333em
}

.contactform__input__agreement__desc {
    flex: 0 0 62rem;
    width: 62rem
}

.contactform__input__agreement__desc__label {
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.2777777778em
}

.contactform__input__agreement__desc__text {
    margin-top: 1rem
}

.contactform__input__agreement__errormsg {
    color: #e5004f;
    display: none;
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1.3846153846em;
    padding-top: .9rem;
    position: absolute
}

.contactform__input__agreement__errormsg.show {
    display: block
}

.contactform__input__button {
    margin-top: 10rem
}

.contactform__backbtn__exec {
    color: #000;
    font-size: max(1.6rem, 16px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.625em;
    margin-top: 5rem;
    padding-left: 1.6rem;
    position: relative;
    text-decoration: none;
    text-decoration-color: #ccc;
    text-underline-offset: max(.6rem, 6px);
    width: -moz-fit-content;
    width: fit-content
}

.contactform__backbtn__exec:before {
    background-color: #000;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    content: "";
    display: block;
    height: .8rem;
    left: 0;
    position: absolute;
    top: calc(50% - .4rem);
    transform: scaleX(-1);
    width: .8rem
}

body:not(.touch) .contactform__backbtn__exec:hover {
    text-decoration: none
}

body:not(.touch) .contactform__backbtn__exec:hover:before {
    animation: blockbtnArrowTickReverse 1s cubic-bezier(.19, 1, .22, 1) 0s infinite normal both
}

.contactform__confirm {
    display: none;
    margin-top: 10rem;
    position: relative
}

.contactform__input__part__field__confirmfield {
    border: 1px solid transparent;
    border-bottom-color: #ccc;
    color: #000;
    font-family: sans-serif;
    font-size: max(1.6rem, 16px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.625em;
    margin-top: 3.6rem;
    min-height: max(6rem, 60px);
    padding: max(1.6rem, 16px) 0;
    width: 100%
}

.contactform__input__part__field__checkfield+.contactform__input__part__field__confirmfield {
    margin-top: 0
}

.contactform__input__confirmagreement {
    margin-top: 8rem !important
}

.contactform__complete {
    display: none;
    margin-top: 10rem;
    position: relative
}

.contactform__complete__description {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em
}

.contactform__complete__description p:not(:first-child) {
    margin-top: 2.8rem
}

.contactform__complete__lead {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.3571428571em
}

.contactform__complete__note {
    padding-left: 1.1em;
    position: relative
}

.contactform__complete__note:before {
    content: "※";
    left: 0;
    position: absolute
}

.contactform__complete__back {
    margin-top: 10rem
}

.contactform__complete__back__button {
    width: max(27rem, 270px)
}

.contactform__input__entrysheet {
    margin: 7rem auto 9rem;
    position: relative
}

.contactform__input__entrysheet__label {
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1em
}

.contactform__input__entrysheet__group {
    border: 1px solid #ccc;
    padding: 6rem;
    position: relative
}

.contactform__input__entrysheet__label+.contactform__input__entrysheet__group {
    margin-top: 2rem
}

.contactform__input__entrysheet__group+.contactform__input__entrysheet__group {
    margin-top: -1px
}

.contactform__input__entrysheet__group.error {
    border-color: #e5004f;
    z-index: 1
}

.contactform__input__entrysheet__group__error {
    margin-top: 1rem;
    position: absolute
}

.contactform__input__entrysheet__group__error__msg {
    color: #e5004f;
    display: none;
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1.3846153846em
}

.contactform__input__entrysheet__group__error__msg.show {
    display: block
}

.contactform__input__entrysheet__header {
    margin-bottom: 2rem;
    position: relative
}

.contactform__input__entrysheet__header:has(.contactform__input__entrysheet__header__required) {
    padding-right: 8rem
}

.contactform__input__entrysheet__header__label {
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.1111111111em
}

.contactform__input__entrysheet__header__required {
    border: 1px solid #ccc;
    font-size: max(1.1rem, 11px);
    height: max(2rem, 20px);
    letter-spacing: 0;
    line-height: 1.6363636364em;
    position: absolute;
    right: 0;
    text-align: center;
    top: 0;
    width: max(6rem, 60px)
}

.contactform__input__entrysheet__partgroup+.contactform__input__entrysheet__partgroup {
    margin-top: 3rem
}

.contactform__input__entrysheet__partgroup+.contactform__input__entrysheet__partgroup:has(.contactform__input__entrysheet__partgroup__label) {
    margin-top: 2rem
}

.contactform__input__entrysheet__partgroup__label {
    font-size: max(1.6rem, 16px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.3125em;
    margin-bottom: 1rem;
    width: 100%
}

.contactform__input__entrysheet__part,
.contactform__input__entrysheet__textfields {
    height: auto;
    position: relative;
    width: 100%
}

.contactform__input__entrysheet__part+.contactform__input__entrysheet__part,
.contactform__input__entrysheet__part+.contactform__input__entrysheet__textfields,
.contactform__input__entrysheet__textfields+.contactform__input__entrysheet__part,
.contactform__input__entrysheet__textfields+.contactform__input__entrysheet__textfields {
    margin-top: 1rem
}

.contactform__input__entrysheet__part input[type=date],
.contactform__input__entrysheet__part input[type=email],
.contactform__input__entrysheet__part input[type=tel],
.contactform__input__entrysheet__part input[type=text],
.contactform__input__entrysheet__part textarea,
.contactform__input__entrysheet__textfields input[type=date],
.contactform__input__entrysheet__textfields input[type=email],
.contactform__input__entrysheet__textfields input[type=tel],
.contactform__input__entrysheet__textfields input[type=text],
.contactform__input__entrysheet__textfields textarea {
    background-color: #f2f2f2;
    border: 1px solid transparent;
    color: #000;
    font-family: sans-serif;
    font-size: max(1.4rem, 14px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.5714285714em;
    padding: max(1rem, 10px) max(2rem, 20px);
    width: 100%
}

.contactform__input__entrysheet__part input[type=date]::-moz-placeholder,
.contactform__input__entrysheet__part input[type=email]::-moz-placeholder,
.contactform__input__entrysheet__part input[type=tel]::-moz-placeholder,
.contactform__input__entrysheet__part input[type=text]::-moz-placeholder,
.contactform__input__entrysheet__part textarea::-moz-placeholder,
.contactform__input__entrysheet__textfields input[type=date]::-moz-placeholder,
.contactform__input__entrysheet__textfields input[type=email]::-moz-placeholder,
.contactform__input__entrysheet__textfields input[type=tel]::-moz-placeholder,
.contactform__input__entrysheet__textfields input[type=text]::-moz-placeholder,
.contactform__input__entrysheet__textfields textarea::-moz-placeholder {
    color: #999
}

.contactform__input__entrysheet__part input[type=date]::placeholder,
.contactform__input__entrysheet__part input[type=email]::placeholder,
.contactform__input__entrysheet__part input[type=tel]::placeholder,
.contactform__input__entrysheet__part input[type=text]::placeholder,
.contactform__input__entrysheet__part textarea::placeholder,
.contactform__input__entrysheet__textfields input[type=date]::placeholder,
.contactform__input__entrysheet__textfields input[type=email]::placeholder,
.contactform__input__entrysheet__textfields input[type=tel]::placeholder,
.contactform__input__entrysheet__textfields input[type=text]::placeholder,
.contactform__input__entrysheet__textfields textarea::placeholder {
    color: #999
}

.contactform__input__entrysheet__part input[type=date]:focus,
.contactform__input__entrysheet__part input[type=email]:focus,
.contactform__input__entrysheet__part input[type=tel]:focus,
.contactform__input__entrysheet__part input[type=text]:focus,
.contactform__input__entrysheet__part textarea:focus,
.contactform__input__entrysheet__textfields input[type=date]:focus,
.contactform__input__entrysheet__textfields input[type=email]:focus,
.contactform__input__entrysheet__textfields input[type=tel]:focus,
.contactform__input__entrysheet__textfields input[type=text]:focus,
.contactform__input__entrysheet__textfields textarea:focus {
    background-color: #fff;
    border-color: #ccc
}

.contactform__input__entrysheet__part input[type=date].error,
.contactform__input__entrysheet__part input[type=email].error,
.contactform__input__entrysheet__part input[type=tel].error,
.contactform__input__entrysheet__part input[type=text].error,
.contactform__input__entrysheet__part textarea.error,
.contactform__input__entrysheet__textfields input[type=date].error,
.contactform__input__entrysheet__textfields input[type=email].error,
.contactform__input__entrysheet__textfields input[type=tel].error,
.contactform__input__entrysheet__textfields input[type=text].error,
.contactform__input__entrysheet__textfields textarea.error {
    border-color: #e5004f !important
}

.contactform__input__entrysheet__part input[type=date],
.contactform__input__entrysheet__part input[type=email],
.contactform__input__entrysheet__part input[type=tel],
.contactform__input__entrysheet__part input[type=text],
.contactform__input__entrysheet__textfields input[type=date],
.contactform__input__entrysheet__textfields input[type=email],
.contactform__input__entrysheet__textfields input[type=tel],
.contactform__input__entrysheet__textfields input[type=text] {
    height: max(4.4rem, 44px)
}

.contactform__input__entrysheet__part textarea,
.contactform__input__entrysheet__textfields textarea {
    height: max(29rem, 290px)
}

.contactform__input__entrysheet__part .error input[type=date],
.contactform__input__entrysheet__part .error input[type=email],
.contactform__input__entrysheet__part .error input[type=tel],
.contactform__input__entrysheet__part .error input[type=text],
.contactform__input__entrysheet__part .error textarea,
.contactform__input__entrysheet__textfields .error input[type=date],
.contactform__input__entrysheet__textfields .error input[type=email],
.contactform__input__entrysheet__textfields .error input[type=tel],
.contactform__input__entrysheet__textfields .error input[type=text],
.contactform__input__entrysheet__textfields .error textarea {
    border-color: transparent transparent #e5004f
}

.contactform__input__entrysheet__part {
    padding-left: max(24rem, 240px)
}

.contactform__input__entrysheet__part__side {
    height: auto;
    left: 0;
    position: absolute;
    top: 0;
    width: max(24rem, 240px)
}

.contactform__input__entrysheet__part__main {
    height: auto;
    position: relative;
    width: 100%
}

.contactform__input__entrysheet__part__main+.contactform__input__entrysheet__part__main {
    margin-top: 1rem
}

.contactform__input__entrysheet__date {
    align-items: center;
    display: flex;
    flex-flow: row wrap;
    font-size: 0;
    justify-content: flex-start;
    letter-spacing: 0;
    line-height: 0px
}

.contactform__input__entrysheet__date span {
    display: block;
    flex: 0 0 max(3rem, 30px);
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em;
    text-align: center;
    width: max(3rem, 30px)
}

.contactform__input__entrysheet__date input.contactform__input__entrysheet__date__day,
.contactform__input__entrysheet__date input.contactform__input__entrysheet__date__month,
.contactform__input__entrysheet__date input.contactform__input__entrysheet__date__year {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.5714285714em;
    padding: max(1rem, 10px) max(.5rem, 5px);
    text-align: center
}

.contactform__input__entrysheet__date input.contactform__input__entrysheet__date__year {
    flex: 0 0 max(6rem, 60px);
    width: max(6rem, 60px)
}

.contactform__input__entrysheet__date input.contactform__input__entrysheet__date__day,
.contactform__input__entrysheet__date input.contactform__input__entrysheet__date__month {
    flex: 0 0 max(3.2rem, 32px);
    width: max(3.2rem, 32px)
}

.contactform__input__entrysheet__textinput {
    position: relative
}

.contactform__input__entrysheet__textinput .contactform__input__entrysheet__textinput__note {
    background-color: grey;
    color: #fff;
    font-size: max(1.2rem, 12px);
    height: max(2.4rem, 24px);
    letter-spacing: 0;
    line-height: 2em;
    position: absolute;
    right: max(1rem, 10px);
    text-align: center;
    top: max(1rem, 10px);
    width: 8rem
}

.contactform__input__entrysheet__textinput:has(.contactform__input__entrysheet__textinput__note) .contactform__input__entrysheet__textinput__input {
    padding-right: 12rem
}

.contactform__input__entrysheet__date__label {
    display: block;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em;
    padding: 1rem 0
}

.contactform__input__entrysheet__checks {
    align-items: flex-start;
    display: flex;
    flex-flow: row wrap;
    gap: 1rem;
    justify-content: flex-start
}

.contactform__input__entrysheet__checks+.contactform__input__entrysheet__checks {
    margin-top: 2.4rem
}

.contactform__input__entrysheet__checks+.contactform__input__entrysheet__part {
    margin-top: 3rem
}

.contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__label {
    flex: 0 0 100%;
    font-size: max(1.6rem, 16px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.3125em;
    margin-bottom: .5rem;
    width: 100%
}

.contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__item {
    flex: 0 0 auto;
    height: auto;
    min-width: calc(14.28571% - .85714rem);
    padding: 0 max(.6rem, 6px) 0 max(3rem, 30px);
    position: relative;
    width: -moz-fit-content;
    width: fit-content
}

.contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__item input {
    border: 0;
    display: block;
    height: 0;
    left: 0;
    opacity: 0;
    padding: 0;
    position: absolute;
    top: 0;
    visibility: hidden;
    width: 0
}

.contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__item span {
    display: block;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    padding: .1rem 0
}

.contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__item:after,
.contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__item:before {
    content: "";
    display: block;
    height: max(2.2rem, 22px);
    left: 0;
    position: absolute;
    top: 0;
    width: max(2.2rem, 22px)
}

.contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__item:before {
    border: 1px solid #ccc
}

.contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__item:after {
    background-image: url(/images/common/check.png);
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 0
}

.contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__item:has(input:checked):after {
    opacity: 1
}

.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__day,
.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__month,
.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__year,
.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textfields__confirminput,
.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textfields__confirmtextarea,
.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textinput__input {
    border: 1px solid transparent;
    border-bottom-color: #ccc;
    color: #000;
    font-family: sans-serif;
    font-size: max(1.4rem, 14px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.5714285714em;
    min-height: max(4.4rem, 44px);
    width: 100%
}

.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textfields__confirminput,
.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textfields__confirmtextarea,
.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textinput__input {
    padding: max(1rem, 10px) 0
}

.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__day,
.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__month,
.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__year {
    padding: max(1rem, 10px) max(.5rem, 5px);
    text-align: center
}

.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__year {
    width: max(6rem, 60px)
}

.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__day,
.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__month {
    width: max(3.2rem, 32px)
}

.contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__checks__item.checked:after {
    opacity: 1
}

@media (max-width:1023px) {

    body:has(.contactform[data-progression=complete]) .page__header,
    body:has(.contactform[data-progression=confirm]) .page__header {
        padding-top: 12rem
    }

    body:has(.contactform[data-progression=complete]) .page__header .page__header__title,
    body:has(.contactform[data-progression=confirm]) .page__header .page__header__title {
        font-size: max(3.8rem, 38px);
        letter-spacing: -.05em;
        line-height: 1em;
        margin-top: 1.5rem
    }

    body:has(.contactform[data-progression=complete]) .page__header .page__header__description,
    body:has(.contactform[data-progression=confirm]) .page__header .page__header__description {
        display: none
    }

    body:has(.contactform[data-progression=complete]) .page__header .page__header__body,
    body:has(.contactform[data-progression=confirm]) .page__header .page__header__body {
        height: auto;
        margin-top: 0
    }

    body:has(.contactform[data-progression=confirm]) .breadcrumb__path .confirm {
        display: inline-block
    }

    body:has(.contactform[data-progression=complete]) .breadcrumb__path .complete {
        display: inline-block
    }

    .contactform__progress {
        align-items: flex-start;
        display: flex;
        flex-flow: row nowrap;
        gap: 1.5rem;
        justify-content: flex-start
    }

    .contactform__progress__path {
        color: #fff;
        flex: 0 0 calc(33.3333% - 1rem);
        font-size: max(1.5rem, 15px);
        height: 4rem;
        letter-spacing: 0;
        line-height: 1em;
        width: calc(33.3333% - 1rem)
    }

    .contactform__progress__path+.contactform__progress__path:before {
        content: "";
        height: .6rem;
        left: -1rem;
        top: calc(50% - .3rem);
        width: .6rem
    }

    .contactform__button .blockbtn {
        width: 100%
    }

    .contactform[data-progression=input] .contactform__complete,
    .contactform[data-progression=input] .contactform__confirm {
        display: none
    }

    .contactform[data-progression=input] .contactform__input {
        display: block
    }

    .contactform[data-progression=confirm] .contactform__complete,
    .contactform[data-progression=confirm] .contactform__input {
        display: none
    }

    .contactform[data-progression=confirm] .contactform__confirm {
        display: block
    }

    .contactform[data-progression=complete] .contactform__confirm,
    .contactform[data-progression=complete] .contactform__input {
        display: none
    }

    .contactform[data-progression=complete] .contactform__complete {
        display: block
    }

    .contactform__input {
        display: block;
        margin-top: 5rem;
        position: relative
    }

    .contactform__input__description {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em
    }

    .contactform__input__description+* {
        margin-top: 3.6rem
    }

    .contactform__input__part {
        padding-left: 0
    }

    .contactform__input__part input[type=date],
    .contactform__input__part input[type=email],
    .contactform__input__part input[type=tel],
    .contactform__input__part input[type=text],
    .contactform__input__part textarea {
        font-size: max(1.6rem, 16px);
        letter-spacing: 0;
        line-height: 1.375em;
        padding: max(1rem, 10px) 0
    }

    .contactform__input__part input[type=date]:focus,
    .contactform__input__part input[type=email]:focus,
    .contactform__input__part input[type=tel]:focus,
    .contactform__input__part input[type=text]:focus,
    .contactform__input__part textarea:focus {
        border-color: #ccc;
        padding: max(1rem, 10px) max(1.2rem, 12px)
    }

    .contactform__input__part input[type=date],
    .contactform__input__part input[type=email],
    .contactform__input__part input[type=tel],
    .contactform__input__part input[type=text] {
        height: max(4.4rem, 44px)
    }

    .contactform__input__part textarea {
        height: max(14.5rem, 145px)
    }

    .contactform__input__part:not(:has(.contactform__input__part__error))+.contactform__input__part {
        margin-top: 3.6rem
    }

    .contactform__input__part.hometown .contactform__input__part__label {
        padding-top: 0
    }

    .contactform__input__part.hometown .contactform__input__part__required {
        top: min(-2.8rem, -28px)
    }

    .contactform__input__part.hometown .contactform__input__part__field {
        padding-top: 0
    }

    .contactform__input__part__label {
        font-size: max(1.5rem, 15px);
        height: auto;
        letter-spacing: 0;
        line-height: 1.3333333333em;
        margin-bottom: .8rem;
        padding: 0;
        position: relative;
        width: 100%
    }

    .contactform__input__part:has(.contactform__input__part__required) .contactform__input__part__label {
        padding-right: max(6rem, 60px)
    }

    .contactform__input__part__required {
        font-size: max(1rem, 10px);
        height: max(2.2rem, 22px);
        left: auto;
        letter-spacing: 0;
        line-height: 1.8em;
        right: 0;
        top: min(-2.8rem, -28px);
        transform: scale(.8);
        width: max(6.6rem, 66px)
    }

    .contactform__input__part__field {
        position: relative
    }

    .contactform__input__part__pulldown {
        height: max(4.4rem, 44px)
    }

    .contactform__input__part__pulldown:after {
        height: 1.2rem;
        right: 2rem;
        top: calc(50% - 1rem);
        width: 1.2rem
    }

    .contactform__input__part__pulldown__label {
        font-size: max(1.6rem, 16px);
        height: 100%;
        letter-spacing: 0;
        line-height: 1.375em;
        overflow: hidden;
        padding: max(1rem, 10px) max(3rem, 30px) max(1rem, 10px) 0;
        position: relative;
        white-space: nowrap;
        width: calc(100% - 5rem);
        z-index: 0
    }

    .contactform__input__part__pulldown__label.empty {
        color: #999
    }

    .contactform__input__part__field__checkfield {
        margin: max(1rem, 10px) 0 max(.5rem, 5px);
        padding: 0 0 0 max(3rem, 30px)
    }

    .contactform__input__part__field__checkfield:after,
    .contactform__input__part__field__checkfield:before {
        height: max(2.2rem, 22px);
        top: 0;
        width: max(2.2rem, 22px)
    }

    .contactform__input__part__field__checkfield__label {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.6923076923em
    }

    .contactform__input__part__radio {
        padding: max(1.8rem, 18px) 0 0 max(2rem, 20px);
        position: relative
    }

    .contactform__input__part__radio__item {
        display: block;
        font-family: sans-serif;
        font-weight: 400;
        padding: max(.1rem, 1px) 0 max(.1rem, 1px) max(3.4rem, 34px);
        position: relative
    }

    .contactform__input__part__radio__item+.contactform__input__part__radio__item {
        margin-top: 1.5rem
    }

    .contactform__input__part__radio__item:before {
        background-color: #f2f2f2;
        border: max(.4rem, 4px) solid #fff;
        border-radius: 50%
    }

    .contactform__input__part__radio__item:after,
    .contactform__input__part__radio__item:before {
        content: "";
        display: block;
        height: max(2.3rem, 23px);
        left: 0;
        position: absolute;
        top: 0;
        width: max(2.3rem, 23px)
    }

    .contactform__input__part__radio__item:after {
        border: 1px solid #ccc;
        border-radius: 50%
    }

    .contactform__input__part__radio__item input {
        display: block;
        height: 0;
        left: 0;
        opacity: 0;
        position: absolute;
        top: 0;
        visibility: hidden;
        width: 0
    }

    .contactform__input__part__radio__item:has(input:checked):before {
        background-color: #000
    }

    .contactform__input__part__radio__item__label {
        font-size: max(1.6rem, 16px);
        letter-spacing: 0;
        line-height: 1.3125em
    }

    .contactform__input__part__attachment__block {
        border-bottom: 1px solid #ccc;
        display: none;
        font-family: sans-serif;
        font-weight: 400;
        padding: 0;
        position: relative
    }

    .contactform__input__part__attachment__block:first-of-type {
        display: block
    }

    .contactform__input__part__attachment__btn {
        cursor: pointer;
        display: block;
        padding: max(.9rem, 9px) max(1rem, 10px) max(.9rem, 9px) max(3.2rem, 32px);
        position: relative;
        width: 100%
    }

    .contactform__input__part__attachment__btn input {
        display: block;
        height: 0;
        left: 0;
        opacity: 0;
        position: absolute;
        top: 0;
        visibility: hidden;
        width: 0
    }

    .contactform__input__part__attachment__btn:before {
        height: max(1.8rem, 18px);
        left: max(.5rem, 5px);
        top: calc(50% - max(.9rem, 9px));
        width: max(1.4rem, 14px)
    }

    .contactform__input__part__attachment__filename {
        color: #999;
        font-size: max(1.6rem, 16px);
        letter-spacing: 0;
        line-height: 1.625em;
        overflow: hidden;
        position: relative;
        text-overflow: ellipsis;
        white-space: nowrap;
        width: 100%
    }

    .contactform__input__part__attachment__clear {
        cursor: pointer;
        display: none;
        height: max(3rem, 30px);
        position: absolute;
        right: max(1.5rem, 15px);
        top: max(1.5rem, 15px);
        width: max(3rem, 30px)
    }

    .contactform__input__part__attachment__clear:after,
    .contactform__input__part__attachment__clear:before {
        background-color: #000;
        content: "";
        display: block;
        height: 1px;
        position: absolute;
        right: max(.2rem, 2px);
        top: 50%;
        width: max(2.6rem, 26px)
    }

    .contactform__input__part__attachment__clear:before {
        transform: rotate(45deg)
    }

    .contactform__input__part__attachment__clear:after {
        transform: rotate(135deg)
    }

    .contactform__input__part__attachment__block.show {
        padding-right: max(6rem, 60px)
    }

    .contactform__input__part__attachment__block.show .contactform__input__part__attachment__clear {
        display: block
    }

    .contactform__input__part__attachment__block.show .contactform__input__part__attachment__filename {
        color: #000
    }

    .contactform__input__part__attachment__block.show+.contactform__input__part__attachment__block {
        display: block;
        margin-top: max(.6rem, 6px)
    }

    .contactform__input__part__notice {
        color: #999;
        display: block;
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.3846153846em;
        min-height: 3.6rem;
        padding: .9rem 0 .9rem 1em
    }

    .contactform__input__part__notice:before {
        content: "※";
        left: 0;
        position: absolute
    }

    .contactform__input__part__error {
        color: #e5004f;
        display: block;
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.3846153846em;
        min-height: 3.6rem;
        padding: 0 0 .9rem
    }

    .contactform__input__part__error__msg {
        display: none;
        padding-top: .5rem
    }

    .contactform__input__part__error__msg.show {
        display: block
    }

    .contactform__input__agreement {
        height: auto;
        margin-top: 2rem;
        position: relative;
        width: 100%
    }

    .contactform__input__agreement__body {
        display: flex;
        flex-flow: column nowrap;
        padding: 1.8rem 1.5rem 2rem
    }

    .contactform__input__agreement__field {
        flex: 0 0 auto;
        order: 2;
        width: 100%
    }

    .contactform__input__agreement__check {
        height: max(2.5rem, 25px);
        margin: 2rem auto 0;
        padding-left: max(4rem, 40px)
    }

    .contactform__input__agreement__check:after,
    .contactform__input__agreement__check:before {
        height: max(2.5rem, 25px);
        width: max(2.5rem, 25px)
    }

    .contactform__input__agreement__check__text {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.6666666667em
    }

    .contactform__input__agreement__desc {
        flex: 0 0 auto;
        order: 1;
        width: 100%
    }

    .contactform__input__agreement__desc__label {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em
    }

    .contactform__input__agreement__desc__text {
        margin-top: 1rem
    }

    .contactform__input__agreement__errormsg {
        color: #e5004f;
        display: none;
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.3846153846em;
        padding-top: .9rem
    }

    .contactform__input__agreement__errormsg.show {
        display: block
    }

    .contactform__input__button {
        margin-top: 6rem
    }

    .contactform__backbtn__exec {
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1.7142857143em;
        margin-top: 3rem;
        padding-left: 1.6rem
    }

    .contactform__backbtn__exec:before {
        height: .8rem;
        top: calc(50% - .4rem);
        transform: scaleX(-1);
        width: .8rem
    }

    .contactform__confirm {
        display: none;
        margin-top: 5rem;
        position: relative
    }

    .contactform__input__part__field__confirmfield {
        font-family: sans-serif;
        font-size: max(1.6rem, 16px);
        height: auto;
        letter-spacing: 0;
        line-height: 1.375em;
        margin-top: 0;
        min-height: max(4.4rem, 44px);
        padding: max(1rem, 10px) 0;
        width: 100%
    }

    .contactform__input__part__field:has(.contactform__input__part__field__confirmfield)+.contactform__input__part__field:has(.contactform__input__part__field__confirmfield) {
        margin-top: 1.8rem
    }

    .contactform__complete {
        display: none;
        margin-top: 5rem;
        position: relative
    }

    .contactform__complete__description {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.7692307692em
    }

    .contactform__complete__description p:not(:first-child) {
        margin-top: 2.8rem
    }

    .contactform__complete__lead {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.4761904762em
    }

    .contactform__complete__back {
        margin-top: 6rem
    }

    .contactform__complete__back__button {
        width: 100%
    }

    .contactform__input__entrysheet {
        margin: 4rem auto 6rem;
        position: relative
    }

    .contactform__input__entrysheet__label {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1em
    }

    .contactform__input__entrysheet__group {
        padding: 2rem 1.5rem
    }

    .contactform__input__entrysheet__label+.contactform__input__entrysheet__group {
        margin-top: 2rem
    }

    .contactform__input__entrysheet__group.error .contactform__input__entrysheet__group__error {
        display: block
    }

    .contactform__input__entrysheet__group__error {
        display: none;
        margin-top: max(1rem, 10px);
        position: relative
    }

    .contactform__input__entrysheet__header {
        margin-bottom: 2rem;
        position: relative
    }

    .contactform__input__entrysheet__header:has(.contactform__input__entrysheet__header__required) {
        padding-right: 6rem
    }

    .contactform__input__entrysheet__header__label {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em
    }

    .contactform__input__entrysheet__header__required {
        font-size: max(1rem, 10px);
        height: max(2.2rem, 22px);
        left: auto;
        letter-spacing: 0;
        line-height: 1.8em;
        right: 0;
        top: 0;
        transform: scale(.8);
        width: max(5.6rem, 56px)
    }

    .contactform__input__entrysheet__partgroup+.contactform__input__entrysheet__partgroup {
        margin-top: 3rem
    }

    .contactform__input__entrysheet__partgroup+.contactform__input__entrysheet__partgroup:has(.contactform__input__entrysheet__partgroup__label) {
        margin-top: 3rem
    }

    .contactform__input__entrysheet__partgroup__label {
        font-size: max(1.5rem, 15px);
        height: auto;
        letter-spacing: 0;
        line-height: 1em;
        margin-bottom: 1rem;
        width: 100%
    }

    .contactform__input__entrysheet__part,
    .contactform__input__entrysheet__textfields {
        height: auto;
        position: relative;
        width: 100%
    }

    .contactform__input__entrysheet__part+.contactform__input__entrysheet__part,
    .contactform__input__entrysheet__part+.contactform__input__entrysheet__textfields,
    .contactform__input__entrysheet__textfields+.contactform__input__entrysheet__part,
    .contactform__input__entrysheet__textfields+.contactform__input__entrysheet__textfields {
        margin-top: 1rem
    }

    .contactform__input__entrysheet__part input[type=date],
    .contactform__input__entrysheet__part input[type=email],
    .contactform__input__entrysheet__part input[type=tel],
    .contactform__input__entrysheet__part input[type=text],
    .contactform__input__entrysheet__part textarea,
    .contactform__input__entrysheet__textfields input[type=date],
    .contactform__input__entrysheet__textfields input[type=email],
    .contactform__input__entrysheet__textfields input[type=tel],
    .contactform__input__entrysheet__textfields input[type=text],
    .contactform__input__entrysheet__textfields textarea {
        font-size: max(1.6rem, 16px);
        letter-spacing: 0;
        line-height: 1.375em;
        padding: max(1rem, 10px);
        width: 100%
    }

    .contactform__input__entrysheet__part input[type=date],
    .contactform__input__entrysheet__part input[type=email],
    .contactform__input__entrysheet__part input[type=tel],
    .contactform__input__entrysheet__part input[type=text],
    .contactform__input__entrysheet__textfields input[type=date],
    .contactform__input__entrysheet__textfields input[type=email],
    .contactform__input__entrysheet__textfields input[type=tel],
    .contactform__input__entrysheet__textfields input[type=text] {
        height: max(4.4rem, 44px)
    }

    .contactform__input__entrysheet__part textarea,
    .contactform__input__entrysheet__textfields textarea {
        height: max(18rem, 180px)
    }

    .contactform__input__entrysheet__part {
        padding-left: 0
    }

    .contactform__input__entrysheet__part__side {
        margin-bottom: 1rem;
        position: relative;
        width: 100%
    }

    .contactform__input__entrysheet__part__main {
        height: auto;
        position: relative;
        width: 100%
    }

    .contactform__input__entrysheet__part__main+.contactform__input__entrysheet__part__main {
        margin-top: 1rem
    }

    .contactform__input__entrysheet__date span {
        flex: 0 0 max(3rem, 30px);
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1.7142857143em;
        width: max(3rem, 30px)
    }

    .contactform__input__entrysheet__date input.contactform__input__entrysheet__date__day,
    .contactform__input__entrysheet__date input.contactform__input__entrysheet__date__month,
    .contactform__input__entrysheet__date input.contactform__input__entrysheet__date__year {
        font-size: max(1.6rem, 16px);
        letter-spacing: 0;
        line-height: 1.375em;
        padding: max(1rem, 10px) max(.5rem, 5px)
    }

    .contactform__input__entrysheet__date input.contactform__input__entrysheet__date__year {
        flex: 0 0 max(6rem, 60px);
        width: max(6rem, 60px)
    }

    .contactform__input__entrysheet__date input.contactform__input__entrysheet__date__day,
    .contactform__input__entrysheet__date input.contactform__input__entrysheet__date__month {
        flex: 0 0 max(4rem, 40px);
        width: max(4rem, 40px)
    }

    .contactform__input__entrysheet__textinput {
        position: relative
    }

    .contactform__input__entrysheet__textinput .contactform__input__entrysheet__textinput__note {
        font-size: max(1rem, 10px);
        height: max(2rem, 20px);
        letter-spacing: 0;
        line-height: 2em;
        right: 0;
        top: min(-4.2rem, -42px);
        width: 6.6rem
    }

    .contactform__input__entrysheet__textinput:has(.contactform__input__entrysheet__textinput__note) .contactform__input__entrysheet__textinput__input {
        padding-right: 1rem
    }

    .contactform__input__entrysheet__date__label {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em;
        padding: 0
    }

    .contactform__input__entrysheet__checks {
        gap: 1rem
    }

    .contactform__input__entrysheet__checks+.contactform__input__entrysheet__checks {
        margin-top: 2.4rem
    }

    .contactform__input__entrysheet__checks+.contactform__input__entrysheet__part {
        margin-top: 3rem
    }

    .contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__label {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.4em;
        margin-bottom: .5rem
    }

    .contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__item {
        flex: 0 0 auto;
        height: auto;
        min-width: calc(33.3333% - .66667rem);
        padding: 0 max(.6rem, 6px) 0 max(3rem, 30px);
        position: relative;
        width: -moz-fit-content;
        width: fit-content
    }

    .contactform__input__entrysheet__checks .contactform__input__entrysheet__checks__item span {
        display: block;
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.4615384615em;
        padding: .1rem 0
    }

    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__day,
    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__month,
    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__year,
    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textfields__confirminput,
    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textfields__confirmtextarea,
    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textinput__input {
        border: 1px solid transparent;
        border-bottom-color: #ccc;
        color: #000;
        font-family: sans-serif;
        font-size: max(1.6rem, 16px);
        height: auto;
        letter-spacing: 0;
        line-height: 1.375em;
        min-height: max(4.4rem, 44px);
        width: 100%
    }

    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textfields__confirminput,
    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textfields__confirmtextarea,
    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__textinput__input {
        padding: max(1rem, 10px) 0
    }

    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__day,
    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__month,
    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__year {
        padding: max(1rem, 10px) max(.5rem, 5px);
        text-align: center
    }

    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__year {
        width: max(6rem, 60px)
    }

    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__day,
    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__date__month {
        width: max(3.2rem, 32px)
    }

    .contactform__input__entrysheet__cofirmfield.contactform__input__entrysheet__checks__item.checked:after {
        opacity: 1
    }
}

.diagram {
    background-color: #fff;
    border-radius: .5rem;
    height: auto;
    padding: 3rem;
    position: relative;
    width: 100%
}

.diagram:has(.diagram__caption) {
    padding-top: 0
}

.diagram__caption {
    color: #039;
    font-size: max(2.4rem, 24px);
    letter-spacing: 0;
    line-height: 1.2083333333em;
    padding: 2.6rem 3rem;
    text-align: center
}

.diagram__image {
    background-color: #f2f2f2;
    height: auto;
    position: relative;
    width: 100%
}

.diagram__image img {
    display: block;
    height: auto;
    margin: 0 auto;
    width: 100%
}

.diagram__body {
    height: auto;
    position: relative;
    width: 100%
}

.diagram__body,
body.basecolor_wh .diagram {
    background-color: #f2f2f2
}

body.basecolor_wh .diagram__caption {
    color: #039
}

body.basecolor_wh .diagram__body,
body.basecolor_wh .diagram__image {
    background-color: #fff
}

@media (max-width:1023px) {
    .diagram {
        border-radius: .5rem;
        padding: 1.5rem
    }

    .diagram:has(.diagram__caption) {
        padding-top: 0
    }

    .diagram__caption {
        color: #039;
        font-size: max(1.8rem, 18px);
        letter-spacing: 0;
        line-height: 1.2777777778em;
        padding: 1.5rem;
        text-align: center
    }

    body.touch .diagram__scrollviewport {
        background-color: #fff;
        height: auto;
        position: relative;
        width: 100%
    }

    body.touch .diagram__scrollviewport .diagram__image {
        -ms-overflow-style: none;
        height: auto;
        overflow: scroll;
        overflow-x: scroll;
        overflow-y: hidden;
        overscroll-behavior: contain;
        position: relative;
        scrollbar-width: none;
        width: 100%
    }

    body.touch .diagram__scrollviewport .diagram__image::-webkit-scrollbar {
        display: none
    }

    body.touch .diagram__scrollviewport__scrollbar {
        background-color: #ccc;
        bottom: 3rem;
        height: 1px;
        left: 3rem;
        overflow: hidden;
        position: absolute;
        width: calc(100% - 6rem)
    }

    body.touch .diagram__scrollviewport__scrollbar:before {
        background-color: #000;
        content: "";
        display: block;
        height: 100%;
        left: 0;
        position: absolute;
        top: 0;
        transform: translateX(calc(218.75%*var(--scrollposition)));
        width: 31.372549%
    }
}

.divider {
    bottom: 0;
    height: 35.2rem;
    left: 0;
    margin-bottom: 48rem;
    margin-top: 30rem;
    pointer-events: none;
    position: relative;
    width: 100%
}

.divider__container {
    bottom: 0;
    display: flex;
    flex-flow: column-reverse nowrap;
    height: 100%;
    left: 0;
    position: absolute;
    width: 100%;
    will-change: transform
}

.divider.active .divider__container {
    transform: translateY(-100%)
}

.divider__container:before {
    background-color: #000;
    content: "";
    display: block;
    height: 100lvh;
    left: 0;
    position: absolute;
    top: 100%;
    width: 100%;
    z-index: 1
}

.divider__row {
    font-size: 0;
    height: 6.4rem;
    letter-spacing: 0;
    line-height: 0px;
    margin-bottom: -3.2rem;
    opacity: 1;
    position: relative;
    white-space: nowrap;
    width: 100%
}

.divider__row:nth-child(odd) {
    margin-left: -4.8rem
}

.divider__grid {
    display: inline-block;
    height: 6.4rem;
    opacity: 0;
    position: relative;
    transition: opacity .15s linear;
    width: 9.6rem
}

.divider__grid:after,
.divider__grid:before {
    background-color: #039;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
    content: "";
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    width: 100%
}

.divider__grid:after:before,
.divider__grid:before:before {
    background-color: #000;
    content: "";
    display: block;
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.divider__grid:before {
    top: 0;
    z-index: 1
}

.divider__grid:after {
    top: 1px;
    z-index: 0
}

.divider__grid.active {
    opacity: 1 !important
}

.divider__row[data-row="0"] .divider__grid:after,
.divider__row[data-row="0"] .divider__grid:before {
    background-color: #000
}

.divider__row[data-row="1"] .divider__grid:after,
.divider__row[data-row="1"] .divider__grid:before {
    background-color: #00050f
}

.divider__row[data-row="2"] .divider__grid:after,
.divider__row[data-row="2"] .divider__grid:before {
    background-color: #000a1f
}

.divider__row[data-row="3"] .divider__grid:after,
.divider__row[data-row="3"] .divider__grid:before {
    background-color: #000f2e
}

.divider__row[data-row="4"] .divider__grid:after,
.divider__row[data-row="4"] .divider__grid:before {
    background-color: #00143d
}

.divider__row[data-row="5"] .divider__grid:after,
.divider__row[data-row="5"] .divider__grid:before {
    background-color: #001a4d
}

.divider__row[data-row="6"] .divider__grid:after,
.divider__row[data-row="6"] .divider__grid:before {
    background-color: #001f5c
}

.divider__row[data-row="7"] .divider__grid:after,
.divider__row[data-row="7"] .divider__grid:before {
    background-color: #00246b
}

.divider__row[data-row="8"] .divider__grid:after,
.divider__row[data-row="8"] .divider__grid:before {
    background-color: #00297a
}

.divider__row[data-row="9"] .divider__grid:after,
.divider__row[data-row="9"] .divider__grid:before {
    background-color: #002e8a
}

.divider__row[data-row="10"] .divider__grid:after,
.divider__row[data-row="10"] .divider__grid:before {
    background-color: #039
}

.divider__grid__fade {
    display: none
}

.divider.divider--wh .divider__container:before,
body.basecolor_wh .divider .divider__container:before {
    background-color: #fff
}

.divider.divider--wh .divider__grid:after,
.divider.divider--wh .divider__grid:before,
body.basecolor_wh .divider .divider__grid:after,
body.basecolor_wh .divider .divider__grid:before {
    background-color: #039
}

.divider.divider--wh .divider__row[data-row="0"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="0"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="0"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="0"] .divider__grid:before {
    background-color: #fff
}

.divider.divider--wh .divider__row[data-row="1"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="1"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="1"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="1"] .divider__grid:before {
    background-color: #e6ebf5
}

.divider.divider--wh .divider__row[data-row="2"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="2"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="2"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="2"] .divider__grid:before {
    background-color: #ccd6eb
}

.divider.divider--wh .divider__row[data-row="3"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="3"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="3"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="3"] .divider__grid:before {
    background-color: #b3c2e0
}

.divider.divider--wh .divider__row[data-row="4"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="4"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="4"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="4"] .divider__grid:before {
    background-color: #99add6
}

.divider.divider--wh .divider__row[data-row="5"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="5"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="5"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="5"] .divider__grid:before {
    background-color: #8099cc
}

.divider.divider--wh .divider__row[data-row="6"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="6"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="6"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="6"] .divider__grid:before {
    background-color: #6685c2
}

.divider.divider--wh .divider__row[data-row="7"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="7"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="7"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="7"] .divider__grid:before {
    background-color: #4d70b8
}

.divider.divider--wh .divider__row[data-row="8"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="8"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="8"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="8"] .divider__grid:before {
    background-color: #335cad
}

.divider.divider--wh .divider__row[data-row="9"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="9"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="9"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="9"] .divider__grid:before {
    background-color: #1a47a3
}

.divider.divider--wh .divider__row[data-row="10"] .divider__grid:after,
.divider.divider--wh .divider__row[data-row="10"] .divider__grid:before,
body.basecolor_wh .divider .divider__row[data-row="10"] .divider__grid:after,
body.basecolor_wh .divider .divider__row[data-row="10"] .divider__grid:before {
    background-color: #039
}

@media (max-width:1023px) {
    .divider {
        height: 20.9rem;
        margin-bottom: 32.5rem;
        margin-top: 17.5rem
    }

    .divider__row {
        height: 3.8rem;
        margin-bottom: -1.9rem
    }

    .divider__row:nth-child(odd) {
        margin-left: -2.9rem
    }

    .divider__grid {
        height: 3.8rem;
        width: 5.8rem
    }

    .divider__grid:nth-child(n+8) {
        display: none
    }
}

.footer,
.footer__cover {
    height: auto;
    position: relative;
    width: 100%
}

.footer__cover {
    align-items: flex-start;
    aspect-ratio: 16/9;
    display: flex;
    flex-flow: column nowrap;
    justify-content: flex-start;
    padding: 6rem;
    z-index: 1
}

.footer__cover__bg {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 0
}

.footer__cover__bg img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    width: 100%
}

.footer__cover__lead {
    font-size: max(2.1rem, 21px);
    letter-spacing: 0;
    line-height: 1em;
    position: relative;
    z-index: 1
}

.footer__cover__catch {
    margin-top: auto;
    position: relative;
    z-index: 1
}

.footer__cover__catch__txt1 {
    font-size: max(3.6rem, 36px);
    letter-spacing: 0;
    line-height: 1em
}

.footer__cover__catch__txt2 {
    font-size: max(10rem, 100px);
    letter-spacing: -.05em;
    line-height: .9em;
    margin-top: 5rem
}

.footer__cover__catch__txt3 {
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1.7692307692em;
    margin-top: 3rem
}

.footer__cover__btn {
    bottom: 5rem;
    position: absolute;
    right: 6rem;
    width: 45rem
}

.footer__cover__btn .blockbtn:before {
    background-color: hsla(0, 0%, 100%, .4) !important
}

.footer__cover__btn .blockbtn:after {
    background-color: #fff !important
}

.footer__cover__btn .blockbtn__arrowbox:before {
    background-color: rgba(0, 0, 0, .2) !important
}

.footer__cover__btn .blockbtn__arrowbox:after {
    background-color: #000 !important
}

.footer__cover__btn .blockbtn__arrowicon {
    background-color: #05f !important
}

body:not(.touch) .footer__cover__btn .blockbtn.clicked .blockbtn__label,
body:not(.touch) .footer__cover__btn .blockbtn.clicked .blockbtn__title,
body:not(.touch) .footer__cover__btn .blockbtn:hover .blockbtn__label,
body:not(.touch) .footer__cover__btn .blockbtn:hover .blockbtn__title {
    color: #000 !important
}

.footer__contents {
    height: auto;
    position: relative;
    width: 100%
}

.footer__main {
    display: block;
    padding: 6rem 0 24.3rem;
    position: relative;
    transform: translateZ(0);
    will-change: transform;
    z-index: 0
}

.footer__main__logo {
    left: 6rem;
    position: absolute;
    top: 6rem
}

.footer__main__logo,
.footer__main__logo__link {
    display: block;
    width: -moz-fit-content;
    width: fit-content
}

.footer__main__logo__link {
    height: auto
}

.footer__main__logo__link img {
    aspect-ratio: 120/20;
    display: block;
    height: auto;
    width: 12rem
}

.footer__main__navigation {
    align-items: stretch;
    display: flex;
    flex-flow: row wrap;
    gap: 6.4rem 0;
    justify-content: flex-start;
    margin-left: auto;
    padding: 0 0 0 12rem;
    width: 84rem
}

.footer__main__navigation__group {
    flex: 0 0 18rem;
    padding-right: 2rem;
    width: 18rem
}

.footer__main__navigation__link {
    color: #fff;
    display: block;
    font-size: max(1.6rem, 16px);
    letter-spacing: 0;
    line-height: 1.3125em;
    width: -moz-fit-content;
    width: fit-content
}

.footer__main__navigation__list {
    align-items: flex-start;
    display: flex;
    flex-flow: column nowrap;
    gap: .5rem 0;
    height: auto;
    justify-content: flex-start;
    margin-top: 2.1rem;
    position: relative;
    width: 100%
}

.footer__main__navigation__list__item {
    flex: 0 0 auto;
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1.3846153846em;
    width: 100%
}

.footer__main__navigation__list__item__link {
    color: #666
}

.footer__main__subnav {
    align-items: flex-start;
    bottom: 5.4rem;
    display: flex;
    flex-flow: row wrap;
    font-size: max(1.3rem, 13px);
    height: auto;
    justify-content: flex-start;
    letter-spacing: 0;
    line-height: 1.7692307692em;
    padding: 0 0 0 12rem;
    position: absolute;
    right: 0;
    width: 84rem
}

.footer__main__subnav__item {
    flex: 0 0 auto;
    min-width: 18rem;
    padding-right: 4rem
}

.footer__main__subnav__link {
    color: #666;
    display: block;
    width: -moz-fit-content;
    width: fit-content
}

.footer__main__copyright {
    bottom: 5.4rem;
    color: #666;
    font-size: max(1.2rem, 12px);
    left: 6rem;
    letter-spacing: 0;
    line-height: 1.9166666667em;
    position: absolute
}

.footer__main__backtopbtn {
    background-color: #fff;
    border-radius: .3rem;
    bottom: 3rem;
    display: block;
    height: 6.6rem;
    position: absolute;
    right: 3rem;
    width: 6.6rem
}

.footer__main__backtopbtn:before {
    background-color: #000;
    clip-path: polygon(0 100%, 50% 0, 100% 100%);
    content: "";
    display: block;
    height: .8rem;
    left: calc(50% - .4rem);
    position: absolute;
    top: calc(50% - .4rem);
    width: .8rem
}

body:not(.touch) .footer__main__backtopbtn:hover:before {
    animation: footerBackbtnTick 1s cubic-bezier(.19, 1, .22, 1) 0s infinite normal both
}

@keyframes footerBackbtnTick {
    0% {
        transform: translateY(-.6rem)
    }

    75% {
        transform: translate(0)
    }

    to {
        transform: translate(0)
    }
}

body.basecolor_wh .footer {
    background-color: #000;
    color: #fff
}

@media (max-width:1023px) {

    .footer,
    .footer__cover {
        height: auto;
        position: relative;
        width: 100%
    }

    .footer__cover {
        aspect-ratio: 375/420;
        min-height: 100lvh;
        padding: 3rem 1.5rem 1.5rem
    }

    .footer__cover__bg img {
        -o-object-position: 41% center;
        object-position: 41% center
    }

    .footer__cover__lead {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        text-align: right;
        width: 100%
    }

    .footer__cover__catch__txt1 {
        font-size: max(1.8rem, 18px);
        letter-spacing: 0;
        line-height: 1em
    }

    .footer__cover__catch__txt2 {
        font-size: max(5rem, 50px);
        letter-spacing: -.05em;
        line-height: .9em;
        margin-top: 2rem
    }

    .footer__cover__catch__txt3 {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1.5em;
        margin-top: 1.2rem;
        transform: scale(.9);
        transform-origin: left top;
        width: calc(100% + 1.5rem)
    }

    .footer__cover__btn {
        bottom: auto;
        margin-top: 6rem;
        position: relative;
        right: auto;
        width: 100%
    }

    .footer__contents {
        height: auto;
        position: relative;
        width: 100%
    }

    .footer__main {
        display: block;
        padding: 6rem 1.5rem 22.8rem;
        position: relative;
        z-index: 0
    }

    .footer__main__logo {
        left: auto;
        position: relative;
        top: auto
    }

    .footer__main__logo__link img {
        aspect-ratio: 120/20;
        width: 8.5rem
    }

    .footer__main__navigation {
        align-items: stretch;
        display: flex;
        flex-flow: row wrap;
        gap: 2rem 3rem;
        height: auto;
        justify-content: flex-start;
        margin-top: 6rem;
        padding: 0;
        position: relative;
        width: 100%
    }

    .footer__main__navigation__group {
        flex: 0 0 calc(50% - 1.5rem);
        padding: 0;
        width: calc(50% - 1.5rem)
    }

    .footer__main__navigation__group:last-child {
        bottom: 0;
        position: absolute;
        right: 0
    }

    .footer__main__navigation__link {
        color: #fff;
        display: block;
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1.7142857143em;
        width: -moz-fit-content;
        width: fit-content
    }

    .footer__main__navigation__list {
        gap: 0;
        margin-top: .5rem;
        padding-right: 0
    }

    .footer__main__navigation__list__item {
        flex: 0 0 auto;
        font-size: max(1.2rem, 12px);
        letter-spacing: 0;
        line-height: 1.4166666667em;
        padding: .2rem 0 .3rem;
        width: 100%
    }

    .footer__main__subnav {
        align-items: flex-end;
        bottom: 13rem;
        display: flex;
        flex-flow: column nowrap;
        font-size: max(1.2rem, 12px);
        gap: .5rem 0;
        justify-content: center;
        letter-spacing: 0;
        line-height: 1.8333333333em;
        padding: 0 1.5rem 0 0;
        position: absolute;
        right: 0;
        width: 100%
    }

    .footer__main__subnav__item {
        flex: 0 0 auto;
        flex-grow: 0;
        min-width: auto;
        padding: 0;
        width: -moz-fit-content;
        width: fit-content
    }

    .footer__main__copyright {
        bottom: 4.9rem;
        color: #666;
        font-size: max(1rem, 10px);
        left: 1.5rem;
        letter-spacing: 0;
        line-height: 1em;
        position: absolute
    }

    .footer__main__backtopbtn {
        bottom: 3rem;
        height: 4.8rem;
        position: absolute;
        right: 1.5rem;
        width: 4.8rem
    }

    .footer__main__backtopbtn:before {
        height: .6rem;
        left: calc(50% - .3rem);
        top: calc(50% - .3rem);
        width: .6rem
    }
}

.header {
    height: max(10rem, 100px);
    left: 0;
    overscroll-behavior: contain;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 100
}

.header:after {
    bottom: 0;
    height: 1px;
    left: 0;
    opacity: 1;
    width: 100%
}

.header:after,
.header:before {
    background-color: hsla(0, 0%, 100%, .3);
    content: "";
    display: block;
    position: absolute;
    z-index: 1
}

.header:before {
    height: calc(max(10rem, 100px) - 1px);
    right: max(10rem, 100px);
    top: 0;
    width: 1px
}

.header.stick:after,
.header.stick:before {
    opacity: 0;
    transition: opacity 0s linear 0s
}

.header.open {
    transform: translateY(0) !important
}

.header__bg {
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    background-color: rgba(0, 0, 0, .1);
    height: 100%;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 0
}

.header.stick .header__bg {
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0s linear 0s
}

.header__logo {
    height: 100%;
    left: max(3rem, 30px);
    position: absolute;
    top: 0;
    width: max(12rem, 120px)
}

body.index .header__logo:after {
    background-color: #05f;
    bottom: 0;
    content: "";
    display: block;
    height: max(.2rem, 2px);
    left: 0;
    position: absolute;
    width: 100%;
    z-index: 2
}

.header__logo__link {
    aspect-ratio: 120/20;
    background-image: url(/images/common/hokuto_logo_wh.svg);
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: contain;
    color: transparent;
    display: block;
    font-size: 0;
    height: auto;
    left: 50%;
    letter-spacing: 0;
    line-height: 0px;
    overflow: hidden;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
    width: 100%
}

.header__nav {
    height: 100%;
    margin: 0 auto;
    position: relative;
    width: -moz-fit-content;
    width: fit-content
}

.header__nav__list {
    flex-flow: row nowrap;
    font-size: max(1.2rem, 12px);
    gap: 0 max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.1666666667em
}

.header__nav__item,
.header__nav__list {
    align-items: center;
    display: flex;
    height: 100%;
    justify-content: center;
    width: -moz-fit-content;
    width: fit-content
}

.header__nav__item {
    flex: 0 0 auto;
    flex-flow: row nowrap;
    position: relative
}

body.achievements .header__nav__item--achievements:after,
body.company .header__nav__item--company:after,
body.contact .header__nav__item--contact:after,
body.message .header__nav__item--message:after,
body.news .header__nav__item--news:after,
body.philosophy .header__nav__item--philosophy:after,
body.products .header__nav__item--products:after,
body.recruit .header__nav__item--recruit:after {
    background-color: #05f;
    bottom: 0;
    content: "";
    display: block;
    height: max(.2rem, 2px);
    left: 0;
    position: absolute;
    width: 100%;
    z-index: 2
}

.header__lang {
    align-items: center;
    display: block;
    display: flex;
    flex-flow: row nowrap;
    font-size: max(1.4rem, 14px);
    height: 100%;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1em;
    position: absolute;
    right: max(13rem, 130px);
    top: 0;
    width: max(6rem, 60px)
}

.header__lang__en,
.header__lang__ja {
    display: block;
    flex: 0 0 auto;
    width: -moz-fit-content;
    width: fit-content
}

html[lang=en] .header__lang__en,
html[lang=ja] .header__lang__ja {
    color: #666;
    pointer-events: none
}

html[lang=en] .basecolor_wh .header__lang__en,
html[lang=ja] .basecolor_wh .header__lang__ja {
    color: #999
}

.header__lang__sep {
    display: block;
    flex: 1 1 auto;
    text-align: center;
    width: auto
}

.header__toggle {
    align-items: center;
    display: block;
    display: flex;
    flex-flow: row nowrap;
    font-size: max(1.4rem, 14px);
    height: max(10rem, 100px);
    justify-content: center;
    letter-spacing: 0;
    line-height: 1em;
    position: absolute;
    right: 0;
    top: 0;
    width: max(10rem, 100px)
}

.header__main {
    height: 0;
    left: 0;
    overflow: hidden;
    overscroll-behavior: contain;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 10
}

.header.open .header__main {
    height: 100dvh
}

.header__main .header__lang,
.header__main .header__toggle {
    z-index: 11
}

.header__main .header__lang {
    height: max(10rem, 100px)
}

.header__main__container {
    align-items: stretch;
    background-color: #000;
    display: flex;
    flex-flow: row nowrap;
    height: 100lvh;
    justify-content: flex-start;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.header__main__logo {
    height: max(10rem, 100px);
    left: max(3rem, 30px);
    position: absolute;
    top: 0;
    width: max(12rem, 120px);
    z-index: 2
}

.header__main__logo__link {
    aspect-ratio: 120/20;
    background-image: url(/images/common/hokuto_logo_wh.svg);
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: contain;
    color: transparent;
    display: block;
    font-size: 0;
    height: auto;
    left: 50%;
    letter-spacing: 0;
    line-height: 0px;
    overflow: hidden;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    white-space: nowrap;
    width: 100%
}

.header__main__visual {
    align-items: flex-start;
    color: #fff;
    display: block;
    display: flex;
    flex: 0 0 60rem;
    flex-flow: column nowrap;
    height: 100%;
    justify-content: flex-end;
    overflow: hidden;
    padding: 3rem;
    position: relative;
    width: 60rem
}

.header__main__visual video {
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    z-index: 0
}

.header__main__visual video,
.header__main__visual:after {
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.header__main__visual:after {
    background-color: rgba(0, 0, 0, .4);
    content: "";
    z-index: 1
}

.header__main__visual__lead {
    font-size: max(2.1rem, 21px)
}

.header__main__visual__catch1,
.header__main__visual__lead {
    letter-spacing: 0;
    line-height: 1em;
    position: relative;
    z-index: 2
}

.header__main__visual__catch1 {
    font-size: max(1.8rem, 18px);
    margin-top: 6rem
}

.header__main__visual__catch2 {
    font-size: max(5rem, 50px);
    letter-spacing: -.05em;
    line-height: .9em;
    margin-top: 2.5rem;
    position: relative;
    z-index: 2
}

.header__main__visual__catch3 {
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1.8333333333em;
    margin-top: 1.5rem;
    position: relative;
    z-index: 2
}

.header__main__body {
    align-items: center;
    display: flex;
    flex: 0 0 84rem;
    flex-flow: row nowrap;
    height: 100%;
    justify-content: center;
    padding: max(10rem, 100px) 0 max(10rem, 100px) 12rem;
    position: relative;
    width: 84rem
}

.header__main__navigation {
    gap: max(6.4rem, 64px) 0;
    position: relative
}

.header__main__navigation,
.header__main__navigation__main {
    align-items: flex-start;
    display: flex;
    flex-flow: row wrap;
    height: auto;
    justify-content: flex-start;
    width: 100%
}

.header__main__navigation__main {
    gap: 6.4rem 0
}

.header__main__navigation__firstblock {
    flex: 0 0 100%;
    height: auto;
    width: 100%
}

.header__main__navigation__group {
    flex: 0 0 18rem;
    padding-right: 2rem;
    width: 18rem
}

.header__main__navigation__subblockcontainer {
    display: flex;
    flex-flow: row wrap;
    width: 100%
}

.header__main__navigation__subblock {
    flex: 0 0 auto;
    min-width: 18rem;
    padding-right: 2rem
}

@media (max-width:1280px) {
    .header__main__navigation__subblock {
        padding-right: 2rem
    }
}

.header__main__navigation__subblock .header__main__navigation__link {
    color: #666;
    display: block;
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1em;
    width: -moz-fit-content;
    width: fit-content
}

.header__main__navigation__link {
    color: #fff;
    display: block;
    font-size: max(1.6rem, 16px);
    letter-spacing: 0;
    line-height: 1.3125em;
    width: -moz-fit-content;
    width: fit-content
}

.header__main__navigation__list {
    align-items: flex-start;
    display: flex;
    flex-flow: column nowrap;
    gap: .5rem 0;
    height: auto;
    justify-content: flex-start;
    margin-top: 2.1rem;
    position: relative;
    width: 100%
}

.header__main__navigation__list__item {
    flex: 0 0 auto;
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1.3846153846em;
    width: 100%
}

.header__main__navigation__list__item--spitem {
    display: none
}

.header__main__navigation__list__item__link {
    color: #666
}

.header__main__copyright {
    bottom: 3rem;
    color: #666;
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1.8333333333em;
    position: absolute;
    right: 3rem
}

.header.white:not(.open):after,
.header.white:not(.open):before {
    background-color: #ccc
}

.header.white:not(.open) .header__bg {
    background-color: hsla(0, 0%, 100%, .5)
}

.header.white:not(.open) .header__logo:after {
    background-color: #039
}

.header.white:not(.open) .header__logo__link {
    background-image: url(/images/common/hokuto_logo_bl1.svg)
}

.header.white:not(.open) .header__lang,
.header.white:not(.open) .header__nav,
.header.white:not(.open) .header__toggle {
    color: #000
}

html[lang=en] .header.white:not(.open) .header__lang__en,
html[lang=ja] .header.white:not(.open) .header__lang__ja {
    color: #999
}

.header.black:not(.open):after,
.header.black:not(.open):before {
    background-color: hsla(0, 0%, 100%, .3)
}

.header.black:not(.open) .header__bg {
    background-color: rgba(0, 0, 0, .1)
}

.header.black:not(.open) .header__logo:after {
    background-color: #05f
}

.header.black:not(.open) .header__logo__link {
    background-image: url(/images/common/hokuto_logo_wh.svg)
}

.header.black:not(.open) .header__lang,
.header.black:not(.open) .header__nav,
.header.black:not(.open) .header__toggle {
    color: #fff
}

html[lang=en] .header.black:not(.open) .header__lang__en,
html[lang=ja] .header.black:not(.open) .header__lang__ja {
    color: #666
}

body.basecolor_wh .header {
    color: #000
}

body.basecolor_wh .header:after,
body.basecolor_wh .header:before {
    background-color: #ccc
}

body.basecolor_wh .header__bg {
    background-color: hsla(0, 0%, 100%, .1)
}

body.basecolor_wh .header__lang,
body.basecolor_wh .header__nav,
body.basecolor_wh .header__toggle {
    color: #000
}

body.basecolor_wh .header.open .header__lang,
body.basecolor_wh .header.open .header__toggle {
    color: #fff
}

body.basecolor_wh.achievements .header__nav__item--achievements:after,
body.basecolor_wh.company .header__nav__item--company:after,
body.basecolor_wh.contact .header__nav__item--contact:after,
body.basecolor_wh.index .header__logo:after,
body.basecolor_wh.message .header__nav__item--message:after,
body.basecolor_wh.news .header__nav__item--news:after,
body.basecolor_wh.philosophy .header__nav__item--philosophy:after,
body.basecolor_wh.products .header__nav__item--products:after,
body.basecolor_wh.recruit .header__nav__item--recruit:after {
    background-color: #039
}

body.basecolor_wh .header__logo__link {
    background-image: url(/images/common/hokuto_logo_bl1.svg)
}

@media (max-width:1150px) {
    .header:not(.open) .header__nav__list {
        padding-left: 7rem
    }

    .header:not(.open) .header__lang {
        display: none
    }
}

body.touch .header,
body.touch .header.stick {
    position: absolute
}

body.touch .header.open,
body.touch .header.stick.fix {
    position: fixed;
    transform: translateY(0) !important
}

@media (max-width:1023px) {
    .header {
        height: 6rem
    }

    .header:before {
        height: calc(6rem - 1px);
        right: 6rem
    }

    .header__logo {
        left: 1.5rem;
        width: 9rem
    }

    body.index .header__logo:after {
        height: .2rem
    }

    .header__nav {
        display: none
    }

    .header__lang {
        display: none;
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1em;
        position: absolute;
        right: 7.6rem;
        width: 6rem
    }

    .header.open .header__lang {
        display: flex
    }

    .header__toggle {
        font-size: max(1rem, 10px);
        height: 6rem;
        letter-spacing: 0;
        line-height: 1em;
        width: 6rem
    }

    .header__main {
        background-color: #000;
        overflow: scroll;
        overflow-x: hidden;
        overflow-y: scroll;
        overscroll-behavior: contain
    }

    .header__main .header__lang {
        height: 6rem
    }

    .header__main__container {
        align-items: flex-start;
        display: flex;
        flex-flow: column nowrap;
        height: auto;
        justify-content: flex-start
    }

    .header__main__logo {
        height: 6rem;
        left: 1.5rem;
        width: 9rem
    }

    .header__main__visual {
        display: block;
        flex: 0 0 auto;
        height: auto;
        margin-top: 5rem;
        order: 2;
        overflow: hidden;
        padding: 0 1.5rem 10rem;
        position: relative;
        width: 100%
    }

    .header__main__visual video {
        display: none
    }

    .header__main__visual__lead {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        text-align: right
    }

    .header__main__visual__catch1 {
        font-size: max(1.8rem, 18px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: 2.5rem
    }

    .header__main__visual__catch2 {
        font-size: max(5rem, 50px);
        letter-spacing: -.05em;
        line-height: .9em;
        margin-top: 2rem
    }

    .header__main__visual__catch3 {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1.5em;
        margin-top: 1.2rem;
        transform: scale(.9);
        transform-origin: left top;
        width: calc(100% + 1.5rem)
    }

    .header__main__body {
        display: block;
        flex: 0 0 auto;
        height: auto;
        order: 1;
        padding: 11.5rem 1.5rem 0;
        position: static;
        width: 100%
    }

    .header__main__navigation,
    .header__main__navigation__main {
        display: block
    }

    .header__main__navigation__firstblock {
        flex: 0 0 100%;
        height: auto;
        margin-bottom: 1.6rem;
        width: 100%
    }

    .header__main__navigation__group {
        margin-top: 1.1rem;
        padding-right: 0;
        width: 100%
    }

    .header__main__navigation__group:has(.header__main__navigation__container) .header__main__navigation__link {
        position: relative
    }

    .header__main__navigation__group:has(.header__main__navigation__container) .header__main__navigation__link:after,
    .header__main__navigation__group:has(.header__main__navigation__container) .header__main__navigation__link:before {
        background-color: #666;
        content: "";
        display: block;
        height: 1px;
        position: absolute;
        right: 0;
        top: 50%;
        transition: opacity .25s linear;
        width: 2rem
    }

    .header__main__navigation__group:has(.header__main__navigation__container) .header__main__navigation__link:before {
        animation: containerPlusRotateBefore2 .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both
    }

    .header__main__navigation__group:has(.header__main__navigation__container) .header__main__navigation__link:after {
        animation: containerPlusRotateAfter2 .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both
    }

    .header__main__navigation__group:has(.header__main__navigation__container).open .header__main__navigation__link:before {
        animation: containerPlusRotateBefore1 .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both;
        opacity: 0
    }

    .header__main__navigation__group:has(.header__main__navigation__container).open .header__main__navigation__link:after {
        animation: containerPlusRotateAfter1 .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both
    }

    @keyframes containerPlusRotateBefore1 {
        0% {
            transform: rotate(0deg)
        }

        to {
            transform: rotate(90deg)
        }
    }

    @keyframes containerPlusRotateAfter1 {
        0% {
            transform: rotate(90deg)
        }

        to {
            transform: rotate(180deg)
        }
    }

    @keyframes containerPlusRotateBefore2 {
        0% {
            transform: rotate(90deg)
        }

        to {
            transform: rotate(180deg)
        }
    }

    @keyframes containerPlusRotateAfter2 {
        0% {
            transform: rotate(180deg)
        }

        to {
            transform: rotate(270deg)
        }
    }

    .header__main__navigation__group:not(:has(.header__main__navigation__container))+.header__main__navigation__group {
        margin-top: 1.6rem
    }

    .header__main__navigation__subblockcontainer {
        display: block;
        width: 100%
    }

    .header__main__navigation__subblock {
        margin-top: 2.6rem;
        min-width: 100%;
        padding: 0;
        width: 100%
    }

    .header__main__navigation__subblock+.header__main__navigation__subblock {
        margin-top: .5rem
    }

    .header__main__navigation__subblock:last-child {
        width: 100%
    }

    .header__main__navigation__subblock .header__main__navigation__link {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.7692307692em;
        margin-left: auto;
        min-width: auto
    }

    .header__main__navigation__link {
        display: block;
        font-size: max(1.8rem, 18px);
        letter-spacing: 0;
        line-height: 1.5555555556em;
        width: 100%
    }

    .header__main__navigation__container {
        height: 0;
        margin-top: .5rem;
        overflow: hidden;
        position: relative;
        width: 100%
    }

    .header__main__navigation__group.open .header__main__navigation__container {
        height: auto
    }

    .header__main__navigation__container.transitioning {
        transition: height .75s cubic-bezier(.19, 1, .22, 1)
    }

    .header__main__navigation__list {
        display: block;
        height: auto;
        margin-top: 0;
        padding-left: 1.5rem;
        padding-right: 0;
        position: relative;
        width: 100%
    }

    .header__main__navigation__list__item {
        flex: 0 0 auto;
        font-size: max(1.6rem, 16px);
        letter-spacing: 0;
        line-height: 1em;
        width: 100%
    }

    .header__main__navigation__list__item--spitem {
        display: block
    }

    .header__main__navigation__list__item__link {
        color: #666;
        display: block;
        padding: 1rem 0;
        width: -moz-fit-content;
        width: fit-content
    }

    .header__main__copyright {
        bottom: 3rem;
        color: #666;
        font-size: max(1rem, 10px);
        left: 1.5rem;
        letter-spacing: 0;
        line-height: 1em;
        position: absolute;
        right: auto;
        z-index: 2
    }
}

.layersection {
    position: relative
}

.layersection .layersection__contents {
    position: relative;
    transform: translate3d(0, calc(var(--layerprlx)*50lvh), 0);
    will-change: transform
}

.layersection__dimmer {
    background-color: rgba(0, 0, 0, .5);
    height: 100%;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 50
}

.basecolor_wh .layersection__dimmer {
    background-color: hsla(0, 0%, 100%, .5)
}

.section {
    position: relative
}

.section__contents {
    position: relative;
    z-index: 11
}

.section:has(.divider) .section__contents {
    margin-top: 50rem
}

.section__contents__breadcrumb {
    margin-top: 25rem
}

.section__dimmer {
    background-color: rgba(0, 0, 0, .5);
    height: 100%;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 12
}

.transitionMask {
    height: 100lvh;
    left: 0;
    overflow: hidden;
    position: fixed;
    top: 0;
    transform: translateZ(1px);
    width: 100%;
    z-index: 999999
}

.transitionMask__main {
    height: 100%;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%
}

.transitionMask__container {
    display: flex;
    flex-flow: column-reverse nowrap;
    position: relative
}

.transitionMask__row {
    font-size: 0;
    height: 6.4rem;
    letter-spacing: 0;
    line-height: 0px;
    margin-bottom: -3.2rem;
    opacity: 1;
    position: relative;
    white-space: nowrap;
    width: 100%
}

.transitionMask__row:nth-child(odd) {
    margin-left: -4.8rem
}

.transitionMask__grid {
    display: inline-block;
    height: 6.4rem;
    opacity: 1;
    position: relative;
    transition: opacity .15s linear;
    width: 9.6rem;
    will-change: opacity
}

.transitionMask__grid:after,
.transitionMask__grid:before {
    background-color: #fff;
    clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
    content: "";
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    width: 100%
}

.transitionMask__grid:before {
    top: 0;
    z-index: 1
}

.transitionMask__grid:after {
    top: 1px;
    z-index: 0
}

.transitionMask__grid.active {
    opacity: 0
}

.transitionMask.gray .transitionMask__grid:after,
.transitionMask.gray .transitionMask__grid:before,
body.basecolor_wh .transitionMask__grid:after,
body.basecolor_wh .transitionMask__grid:before {
    background-color: #e6e6e6
}

.transitionMask__title {
    align-items: stretch;
    color: #000;
    display: flex;
    flex-flow: row nowrap;
    height: max(2.4rem, 24px);
    justify-content: center;
    left: 0;
    overflow: hidden;
    position: absolute;
    text-align: center;
    top: calc(50% - max(1.2rem, 12px));
    white-space: nowrap;
    width: 100%;
    z-index: 10
}

.transitionMask__title__prefix,
.transitionMask__title__text {
    display: block;
    flex: 0 0 auto;
    opacity: 1
}

.transitionMask__title__prefix {
    flex: 0 0 max(12rem, 120px)
}

.transitionMask__title__prefix img {
    display: block;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain;
    -o-object-position: center;
    object-position: center;
    position: relative;
    width: 100%
}

.transitionMask__title__text {
    font-size: max(2.4rem, 24px);
    letter-spacing: -.05em;
    line-height: 1em;
    margin-left: max(1.3rem, 13px);
    width: -moz-fit-content;
    width: fit-content
}

.transitionMask__title__text:empty {
    display: none
}

body.initial .transitionMask .transitionMask__title__prefix,
body.initial .transitionMask .transitionMask__title__text {
    transform: translateY(calc(100% + 2px))
}

body:not(.initial) .transitionMask .transitionMask__title__prefix,
body:not(.initial) .transitionMask .transitionMask__title__text {
    transform: translateY(0);
    transition: transform .5s cubic-bezier(.165, .84, .44, 1) 0s
}

.transitionMask.wipeOut {
    background-color: transparent;
    height: 0;
    pointer-events: none;
    transition: height 0s linear 2s, visibility 0s linear 2s;
    visibility: hidden
}

.transitionMask.wipeOut .transitionMask__container {
    flex-flow: column-reverse nowrap
}

.transitionMask.wipeOut .transitionMask__title__prefix,
.transitionMask.wipeOut .transitionMask__title__text {
    animation: transitionTitleWipeOut .75s cubic-bezier(.165, .84, .44, 1) 0s 1 normal both
}

.transitionMask.wipeOut .transitionMask__grid,
.transitionMask.wipeOut .transitionMask__grid:after {
    opacity: 1
}

.transitionMask.wipeOut .transitionMask__grid.active {
    opacity: 0;
    transition-delay: .05s
}

.transitionMask.wipeIn {
    background-color: transparent;
    height: 100lvh;
    pointer-events: auto;
    transition: none;
    visibility: visible
}

.transitionMask.wipeIn .transitionMask__container {
    flex-flow: column-reverse nowrap
}

.transitionMask.wipeIn .transitionMask__title__prefix,
.transitionMask.wipeIn .transitionMask__title__text {
    animation: transitionTitleWipeIn .75s cubic-bezier(.19, 1, .22, 1) .35s 1 normal both
}

.transitionMask.wipeIn .transitionMask__grid {
    opacity: 0
}

.transitionMask.wipeIn .transitionMask__grid.active {
    opacity: 1
}

.transitionMask.hide {
    display: none
}

@media (min-width:1024px) {
    body.transitioning>:not(.transitionMask) {
        animation: transitionContentsWipeOut .75s cubic-bezier(.57, 0, .24, 1) 0s 1 normal both !important
    }
}

@media (max-width:1023px) {
    body.transitioning>:not(.transitionMask) {
        animation: transitionContentsWipeOutSp .75s cubic-bezier(.57, 0, .24, 1) 0s 1 normal both !important
    }
}

body.transitioning.transitioned>:not(.transitionMask) {
    animation: none !important
}

@keyframes transitionContentsWipeOut {
    0% {
        top: 0
    }

    to {
        top: -20lvh
    }
}

@keyframes transitionContentsWipeOutSp {
    0% {
        top: 0
    }

    to {
        top: -10lvh
    }
}

@keyframes transitionContentsWipeIn {
    0% {
        top: 20lvh
    }

    to {
        top: 0
    }
}

@keyframes transitionTitleWipeOut {
    0% {
        transform: translateY(0)
    }

    to {
        transform: translateY(calc(-100% - 2px))
    }
}

@keyframes transitionTitleWipeIn {
    0% {
        transform: translateY(calc(100% + 2px))
    }

    to {
        transform: translateY(0)
    }
}

@media (max-width:1023px) {
    .transitionMask__row {
        height: 3.8rem;
        margin-bottom: -1.9rem
    }

    .transitionMask__row:nth-child(odd) {
        margin-left: -2.9rem
    }

    .transitionMask__grid {
        height: 3.8rem;
        width: 5.8rem
    }

    .transitionMask__grid:nth-child(n+8) {
        display: none
    }

    .transitionMask__title {
        align-items: center;
        color: #000;
        display: flex;
        flex-flow: row nowrap;
        height: max(2rem, 20px);
        justify-content: center;
        left: 0;
        overflow: hidden;
        position: absolute;
        text-align: center;
        top: calc(50vh - max(1.2rem, 12px));
        white-space: nowrap;
        width: 100%;
        z-index: 10
    }

    .transitionMask__title__prefix,
    .transitionMask__title__text {
        display: block;
        flex: 0 0 auto;
        opacity: 1
    }

    .transitionMask__title__prefix {
        flex: 0 0 max(10.6rem, 106px);
        height: 2rem;
        width: 10.6rem
    }

    .transitionMask__title__text {
        font-size: max(2rem, 20px);
        letter-spacing: -.05em;
        line-height: 1em;
        margin-left: max(.9rem, 9px);
        width: -moz-fit-content;
        width: fit-content
    }

    .transitionMask__title__text span {
        display: none
    }

    body.initial .transitionMask .transitionMask__title__prefix,
    body.initial .transitionMask .transitionMask__title__text {
        transform: translateY(calc(100% + 2px))
    }

    body:not(.initial) .transitionMask .transitionMask__title__prefix,
    body:not(.initial) .transitionMask .transitionMask__title__text {
        transform: translateY(0);
        transition: transform .5s cubic-bezier(.165, .84, .44, 1) 0s
    }

    .transitionMask.wipeOut {
        background-color: transparent;
        height: 0;
        pointer-events: none;
        transition: height 0s linear 2s, visibility 0s linear 2s;
        visibility: hidden
    }

    .transitionMask.wipeOut .transitionMask__container {
        flex-flow: column-reverse nowrap
    }

    .transitionMask.wipeOut .transitionMask__title__prefix,
    .transitionMask.wipeOut .transitionMask__title__text {
        animation: transitionTitleWipeOut .75s cubic-bezier(.165, .84, .44, 1) .05s 1 normal both
    }

    .transitionMask.wipeOut .transitionMask__grid,
    .transitionMask.wipeOut .transitionMask__grid:after {
        opacity: 1
    }

    .transitionMask.wipeOut .transitionMask__grid.active {
        opacity: 0;
        transition-delay: .05s
    }

    .transitionMask.wipeIn {
        background-color: transparent;
        height: 100lvh;
        pointer-events: auto;
        transition: none;
        visibility: visible
    }

    .transitionMask.wipeIn .transitionMask__container {
        flex-flow: column-reverse nowrap
    }

    .transitionMask.wipeIn .transitionMask__title__prefix,
    .transitionMask.wipeIn .transitionMask__title__text {
        animation: transitionTitleWipeIn .75s cubic-bezier(.19, 1, .22, 1) .45s 1 normal both
    }

    .transitionMask.wipeIn .transitionMask__grid {
        opacity: 0
    }

    .transitionMask.wipeIn .transitionMask__grid.active,
    .transitionMask.wipeIn .transitionMask__grid.active:after {
        opacity: 1
    }
}

.news__article__body p,
.recruit__future__section__text p,
.recruit__interview__section__body p,
.recruit__overview__detail__item dd p,
.recruit__overview__jobs__block__contents p,
.wysiwyg p {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em
}

.news__article__body a:not([href^="tel:"]),
.recruit__future__section__text a:not([href^="tel:"]),
.recruit__interview__section__body a:not([href^="tel:"]),
.recruit__overview__detail__item dd a:not([href^="tel:"]),
.recruit__overview__jobs__block__contents a:not([href^="tel:"]),
.wysiwyg a:not([href^="tel:"]) {
    color: #999;
    text-decoration: underline;
    text-decoration-color: #ccc;
    text-underline-offset: max(.6rem, 6px)
}

.news__article__body img,
.recruit__future__section__text img,
.recruit__interview__section__body img,
.recruit__overview__detail__item dd img,
.recruit__overview__jobs__block__contents img,
.wysiwyg img {
    display: block;
    height: auto;
    margin: 5rem auto 0;
    max-width: 100%
}

.news__article__body img+*,
.news__article__body p:has(img:last-child)+*,
.recruit__future__section__text img+*,
.recruit__future__section__text p:has(img:last-child)+*,
.recruit__interview__section__body img+*,
.recruit__interview__section__body p:has(img:last-child)+*,
.recruit__overview__detail__item dd img+*,
.recruit__overview__detail__item dd p:has(img:last-child)+*,
.recruit__overview__jobs__block__contents img+*,
.recruit__overview__jobs__block__contents p:has(img:last-child)+*,
.wysiwyg img+*,
.wysiwyg p:has(img:last-child)+* {
    margin-top: 5rem
}

.news__article__body img+img,
.recruit__future__section__text img+img,
.recruit__interview__section__body img+img,
.recruit__overview__detail__item dd img+img,
.recruit__overview__jobs__block__contents img+img,
.wysiwyg img+img {
    margin-top: 2rem
}

.news__article__body p:has(img:last-child)+p:has(img:first-child),
.recruit__future__section__text p:has(img:last-child)+p:has(img:first-child),
.recruit__interview__section__body p:has(img:last-child)+p:has(img:first-child),
.recruit__overview__detail__item dd p:has(img:last-child)+p:has(img:first-child),
.recruit__overview__jobs__block__contents p:has(img:last-child)+p:has(img:first-child),
.wysiwyg p:has(img:last-child)+p:has(img:first-child) {
    margin-top: 0
}

.news__article__body p:has(img:last-child)+p img:first-child,
.recruit__future__section__text p:has(img:last-child)+p img:first-child,
.recruit__interview__section__body p:has(img:last-child)+p img:first-child,
.recruit__overview__detail__item dd p:has(img:last-child)+p img:first-child,
.recruit__overview__jobs__block__contents p:has(img:last-child)+p img:first-child,
.wysiwyg p:has(img:last-child)+p img:first-child {
    margin-top: 2rem
}

.news__article__body p:has(a:only-child)+p:has(a:only-child),
.recruit__future__section__text p:has(a:only-child)+p:has(a:only-child),
.recruit__interview__section__body p:has(a:only-child)+p:has(a:only-child),
.recruit__overview__detail__item dd p:has(a:only-child)+p:has(a:only-child),
.recruit__overview__jobs__block__contents p:has(a:only-child)+p:has(a:only-child),
.wysiwyg p:has(a:only-child)+p:has(a:only-child) {
    margin-top: max(.5rem, 5px)
}

.news__article__body blockquote,
.recruit__future__section__text blockquote,
.recruit__interview__section__body blockquote,
.recruit__overview__detail__item dd blockquote,
.recruit__overview__jobs__block__contents blockquote,
.wysiwyg blockquote {
    background-color: #f2f2f2;
    margin: 2.4rem 0;
    padding: 3rem
}

.news__article__body h1,
.news__article__body h2,
.news__article__body h3,
.news__article__body h4,
.news__article__body h5,
.news__article__body h6,
.recruit__future__section__text h1,
.recruit__future__section__text h2,
.recruit__future__section__text h3,
.recruit__future__section__text h4,
.recruit__future__section__text h5,
.recruit__future__section__text h6,
.recruit__interview__section__body h1,
.recruit__interview__section__body h2,
.recruit__interview__section__body h3,
.recruit__interview__section__body h4,
.recruit__interview__section__body h5,
.recruit__interview__section__body h6,
.recruit__overview__detail__item dd h1,
.recruit__overview__detail__item dd h2,
.recruit__overview__detail__item dd h3,
.recruit__overview__detail__item dd h4,
.recruit__overview__detail__item dd h5,
.recruit__overview__detail__item dd h6,
.recruit__overview__jobs__block__contents h1,
.recruit__overview__jobs__block__contents h2,
.recruit__overview__jobs__block__contents h3,
.recruit__overview__jobs__block__contents h4,
.recruit__overview__jobs__block__contents h5,
.recruit__overview__jobs__block__contents h6,
.wysiwyg h1,
.wysiwyg h2,
.wysiwyg h3,
.wysiwyg h4,
.wysiwyg h5,
.wysiwyg h6 {
    color: #666;
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.5555555556em;
    margin: 9rem 0 2.4rem;
    position: relative
}

.news__article__body h1:before,
.news__article__body h2:before,
.news__article__body h3:before,
.news__article__body h4:before,
.news__article__body h5:before,
.news__article__body h6:before,
.recruit__future__section__text h1:before,
.recruit__future__section__text h2:before,
.recruit__future__section__text h3:before,
.recruit__future__section__text h4:before,
.recruit__future__section__text h5:before,
.recruit__future__section__text h6:before,
.recruit__interview__section__body h1:before,
.recruit__interview__section__body h2:before,
.recruit__interview__section__body h3:before,
.recruit__interview__section__body h4:before,
.recruit__interview__section__body h5:before,
.recruit__interview__section__body h6:before,
.recruit__overview__detail__item dd h1:before,
.recruit__overview__detail__item dd h2:before,
.recruit__overview__detail__item dd h3:before,
.recruit__overview__detail__item dd h4:before,
.recruit__overview__detail__item dd h5:before,
.recruit__overview__detail__item dd h6:before,
.recruit__overview__jobs__block__contents h1:before,
.recruit__overview__jobs__block__contents h2:before,
.recruit__overview__jobs__block__contents h3:before,
.recruit__overview__jobs__block__contents h4:before,
.recruit__overview__jobs__block__contents h5:before,
.recruit__overview__jobs__block__contents h6:before,
.wysiwyg h1:before,
.wysiwyg h2:before,
.wysiwyg h3:before,
.wysiwyg h4:before,
.wysiwyg h5:before,
.wysiwyg h6:before {
    background-color: #666;
    content: "";
    display: block;
    height: 1px;
    left: -8rem;
    position: absolute;
    top: max(1.4rem, 14px);
    width: 6rem
}

.news__article__body ul,
.recruit__future__section__text ul,
.recruit__interview__section__body ul,
.recruit__overview__detail__item dd ul,
.recruit__overview__jobs__block__contents ul,
.wysiwyg ul {
    list-style: none outside
}

.news__article__body ul li,
.recruit__future__section__text ul li,
.recruit__interview__section__body ul li,
.recruit__overview__detail__item dd ul li,
.recruit__overview__jobs__block__contents ul li,
.wysiwyg ul li {
    padding-left: .75em;
    position: relative
}

.news__article__body ul li:before,
.recruit__future__section__text ul li:before,
.recruit__interview__section__body ul li:before,
.recruit__overview__detail__item dd ul li:before,
.recruit__overview__jobs__block__contents ul li:before,
.wysiwyg ul li:before {
    content: "・";
    left: 0;
    position: absolute
}

.news__article__body ul li+li,
.recruit__future__section__text ul li+li,
.recruit__interview__section__body ul li+li,
.recruit__overview__detail__item dd ul li+li,
.recruit__overview__jobs__block__contents ul li+li,
.wysiwyg ul li+li {
    margin-top: max(.5rem, 5px)
}

.news__article__body ol,
.recruit__future__section__text ol,
.recruit__interview__section__body ol,
.recruit__overview__detail__item dd ol,
.recruit__overview__jobs__block__contents ol,
.wysiwyg ol {
    counter-reset: list;
    list-style: none outside
}

.news__article__body ol li,
.recruit__future__section__text ol li,
.recruit__interview__section__body ol li,
.recruit__overview__detail__item dd ol li,
.recruit__overview__jobs__block__contents ol li,
.wysiwyg ol li {
    counter-increment: list;
    padding-left: 1.25em;
    position: relative
}

.news__article__body ol li:before,
.recruit__future__section__text ol li:before,
.recruit__interview__section__body ol li:before,
.recruit__overview__detail__item dd ol li:before,
.recruit__overview__jobs__block__contents ol li:before,
.wysiwyg ol li:before {
    content: counter(list) ".";
    display: block;
    left: 1.25em;
    min-width: 1em;
    position: absolute;
    text-align: center;
    transform: translateX(calc(-100% - .25em));
    width: -moz-fit-content;
    width: fit-content
}

.news__article__body ol li+li,
.recruit__future__section__text ol li+li,
.recruit__interview__section__body ol li+li,
.recruit__overview__detail__item dd ol li+li,
.recruit__overview__jobs__block__contents ol li+li,
.wysiwyg ol li+li {
    margin-top: max(.5rem, 5px)
}

.news__article__body table,
.recruit__future__section__text table,
.recruit__interview__section__body table,
.recruit__overview__detail__item dd table,
.recruit__overview__jobs__block__contents table,
.wysiwyg table,
.wysiwyg table.mce-item-table {
    border: none;
    height: auto;
    width: -moz-fit-content;
    width: fit-content
}

.news__article__body table td,
.news__article__body table th,
.recruit__future__section__text table td,
.recruit__future__section__text table th,
.recruit__interview__section__body table td,
.recruit__interview__section__body table th,
.recruit__overview__detail__item dd table td,
.recruit__overview__detail__item dd table th,
.recruit__overview__jobs__block__contents table td,
.recruit__overview__jobs__block__contents table th,
.wysiwyg table td,
.wysiwyg table th,
.wysiwyg table.mce-item-table td,
.wysiwyg table.mce-item-table th {
    border: none;
    font-weight: 400
}

.news__article__body table td+td,
.news__article__body table th+th,
.recruit__future__section__text table td+td,
.recruit__future__section__text table th+th,
.recruit__interview__section__body table td+td,
.recruit__interview__section__body table th+th,
.recruit__overview__detail__item dd table td+td,
.recruit__overview__detail__item dd table th+th,
.recruit__overview__jobs__block__contents table td+td,
.recruit__overview__jobs__block__contents table th+th,
.wysiwyg table td+td,
.wysiwyg table th+th,
.wysiwyg table.mce-item-table td+td,
.wysiwyg table.mce-item-table th+th {
    padding-left: 3rem
}

.news__article__body dl.keywordlist,
.recruit__future__section__text dl.keywordlist,
.recruit__interview__section__body dl.keywordlist,
.recruit__overview__detail__item dd dl.keywordlist,
.recruit__overview__jobs__block__contents dl.keywordlist,
.wysiwyg dl.keywordlist {
    align-items: flex-start;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start
}

.news__article__body dl.keywordlist dt,
.recruit__future__section__text dl.keywordlist dt,
.recruit__interview__section__body dl.keywordlist dt,
.recruit__overview__detail__item dd dl.keywordlist dt,
.recruit__overview__jobs__block__contents dl.keywordlist dt,
.wysiwyg dl.keywordlist dt {
    flex: 0 0 max(4rem, 40px);
    font-weight: 400;
    padding-right: max(1.8rem, 18px);
    position: relative;
    white-space: nowrap
}

.news__article__body dl.keywordlist dt:after,
.recruit__future__section__text dl.keywordlist dt:after,
.recruit__interview__section__body dl.keywordlist dt:after,
.recruit__overview__detail__item dd dl.keywordlist dt:after,
.recruit__overview__jobs__block__contents dl.keywordlist dt:after,
.wysiwyg dl.keywordlist dt:after {
    content: "…";
    display: block;
    pointer-events: none;
    position: absolute;
    right: 0;
    text-align: center;
    top: min(-.4rem, -4px);
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    width: max(2rem, 20px)
}

.news__article__body dl.keywordlist dd,
.recruit__future__section__text dl.keywordlist dd,
.recruit__interview__section__body dl.keywordlist dd,
.recruit__overview__detail__item dd dl.keywordlist dd,
.recruit__overview__jobs__block__contents dl.keywordlist dd,
.wysiwyg dl.keywordlist dd {
    flex: 0 0 calc(100% - max(4rem, 40px))
}

.news__article__body p.dot,
.news__article__body p.note,
.news__article__body p.square,
.news__article__body p.star,
.recruit__future__section__text p.dot,
.recruit__future__section__text p.note,
.recruit__future__section__text p.square,
.recruit__future__section__text p.star,
.recruit__interview__section__body p.dot,
.recruit__interview__section__body p.note,
.recruit__interview__section__body p.square,
.recruit__interview__section__body p.star,
.recruit__overview__detail__item dd p.dot,
.recruit__overview__detail__item dd p.note,
.recruit__overview__detail__item dd p.square,
.recruit__overview__detail__item dd p.star,
.recruit__overview__jobs__block__contents p.dot,
.recruit__overview__jobs__block__contents p.note,
.recruit__overview__jobs__block__contents p.square,
.recruit__overview__jobs__block__contents p.star,
.wysiwyg p.dot,
.wysiwyg p.note,
.wysiwyg p.square,
.wysiwyg p.star {
    padding-left: 1.1em;
    position: relative
}

.news__article__body p.dot:before,
.news__article__body p.note:before,
.news__article__body p.square:before,
.news__article__body p.star:before,
.recruit__future__section__text p.dot:before,
.recruit__future__section__text p.note:before,
.recruit__future__section__text p.square:before,
.recruit__future__section__text p.star:before,
.recruit__interview__section__body p.dot:before,
.recruit__interview__section__body p.note:before,
.recruit__interview__section__body p.square:before,
.recruit__interview__section__body p.star:before,
.recruit__overview__detail__item dd p.dot:before,
.recruit__overview__detail__item dd p.note:before,
.recruit__overview__detail__item dd p.square:before,
.recruit__overview__detail__item dd p.star:before,
.recruit__overview__jobs__block__contents p.dot:before,
.recruit__overview__jobs__block__contents p.note:before,
.recruit__overview__jobs__block__contents p.square:before,
.recruit__overview__jobs__block__contents p.star:before,
.wysiwyg p.dot:before,
.wysiwyg p.note:before,
.wysiwyg p.square:before,
.wysiwyg p.star:before {
    display: block;
    left: 0;
    position: absolute;
    text-align: center;
    width: 1em
}

.news__article__body p.dot:before,
.recruit__future__section__text p.dot:before,
.recruit__interview__section__body p.dot:before,
.recruit__overview__detail__item dd p.dot:before,
.recruit__overview__jobs__block__contents p.dot:before,
.wysiwyg p.dot:before {
    content: "・"
}

.news__article__body p.note:before,
.recruit__future__section__text p.note:before,
.recruit__interview__section__body p.note:before,
.recruit__overview__detail__item dd p.note:before,
.recruit__overview__jobs__block__contents p.note:before,
.wysiwyg p.note:before {
    content: "※"
}

.news__article__body p.square:before,
.recruit__future__section__text p.square:before,
.recruit__interview__section__body p.square:before,
.recruit__overview__detail__item dd p.square:before,
.recruit__overview__jobs__block__contents p.square:before,
.wysiwyg p.square:before {
    content: "■"
}

.news__article__body p.star:before,
.recruit__future__section__text p.star:before,
.recruit__interview__section__body p.star:before,
.recruit__overview__detail__item dd p.star:before,
.recruit__overview__jobs__block__contents p.star:before,
.wysiwyg p.star:before {
    content: "★"
}

.news__article__body>:first-child,
.recruit__future__section__text>:first-child,
.recruit__interview__section__body>:first-child,
.recruit__overview__detail__item dd>:first-child,
.recruit__overview__jobs__block__contents>:first-child,
.wysiwyg>:first-child {
    margin-top: 0
}

.recruit__overview__detail__item body:not(.touch) dd a.clicked,
.recruit__overview__detail__item body:not(.touch) dd a:hover,
body:not(.touch) .news__article__body a.clicked,
body:not(.touch) .news__article__body a:hover,
body:not(.touch) .recruit__future__section__text a.clicked,
body:not(.touch) .recruit__future__section__text a:hover,
body:not(.touch) .recruit__interview__section__body a.clicked,
body:not(.touch) .recruit__interview__section__body a:hover,
body:not(.touch) .recruit__overview__detail__item dd a.clicked,
body:not(.touch) .recruit__overview__detail__item dd a:hover,
body:not(.touch) .recruit__overview__jobs__block__contents a.clicked,
body:not(.touch) .recruit__overview__jobs__block__contents a:hover,
body:not(.touch) .wysiwyg a.clicked,
body:not(.touch) .wysiwyg a:hover {
    text-decoration: none !important
}

@media (max-width:1023px) {

    .news__article__body p,
    .recruit__future__section__text p,
    .recruit__interview__section__body p,
    .recruit__overview__detail__item dd p,
    .recruit__overview__jobs__block__contents p,
    .wysiwyg p {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.7692307692em
    }

    .news__article__body a,
    .recruit__future__section__text a,
    .recruit__interview__section__body a,
    .recruit__overview__detail__item dd a,
    .recruit__overview__jobs__block__contents a,
    .wysiwyg a {
        word-break: break-all
    }

    .news__article__body a:not([href^="tel:"]),
    .recruit__future__section__text a:not([href^="tel:"]),
    .recruit__interview__section__body a:not([href^="tel:"]),
    .recruit__overview__detail__item dd a:not([href^="tel:"]),
    .recruit__overview__jobs__block__contents a:not([href^="tel:"]),
    .wysiwyg a:not([href^="tel:"]) {
        text-underline-offset: max(.6rem, 6px)
    }

    .news__article__body img,
    .recruit__future__section__text img,
    .recruit__interview__section__body img,
    .recruit__overview__detail__item dd img,
    .recruit__overview__jobs__block__contents img,
    .wysiwyg img {
        margin: 5rem auto 0
    }

    .news__article__body img+*,
    .news__article__body p:has(img:last-child)+*,
    .recruit__future__section__text img+*,
    .recruit__future__section__text p:has(img:last-child)+*,
    .recruit__interview__section__body img+*,
    .recruit__interview__section__body p:has(img:last-child)+*,
    .recruit__overview__detail__item dd img+*,
    .recruit__overview__detail__item dd p:has(img:last-child)+*,
    .recruit__overview__jobs__block__contents img+*,
    .recruit__overview__jobs__block__contents p:has(img:last-child)+*,
    .wysiwyg img+*,
    .wysiwyg p:has(img:last-child)+* {
        margin-top: 5rem
    }

    .news__article__body img+img,
    .recruit__future__section__text img+img,
    .recruit__interview__section__body img+img,
    .recruit__overview__detail__item dd img+img,
    .recruit__overview__jobs__block__contents img+img,
    .wysiwyg img+img {
        margin-top: 2rem
    }

    .news__article__body p:has(img:last-child)+p:has(img:first-child),
    .recruit__future__section__text p:has(img:last-child)+p:has(img:first-child),
    .recruit__interview__section__body p:has(img:last-child)+p:has(img:first-child),
    .recruit__overview__detail__item dd p:has(img:last-child)+p:has(img:first-child),
    .recruit__overview__jobs__block__contents p:has(img:last-child)+p:has(img:first-child),
    .wysiwyg p:has(img:last-child)+p:has(img:first-child) {
        margin-top: 0
    }

    .news__article__body p:has(img:last-child)+p img:first-child,
    .recruit__future__section__text p:has(img:last-child)+p img:first-child,
    .recruit__interview__section__body p:has(img:last-child)+p img:first-child,
    .recruit__overview__detail__item dd p:has(img:last-child)+p img:first-child,
    .recruit__overview__jobs__block__contents p:has(img:last-child)+p img:first-child,
    .wysiwyg p:has(img:last-child)+p img:first-child {
        margin-top: 2rem
    }

    .news__article__body h1,
    .news__article__body h2,
    .news__article__body h3,
    .news__article__body h4,
    .news__article__body h5,
    .news__article__body h6,
    .recruit__future__section__text h1,
    .recruit__future__section__text h2,
    .recruit__future__section__text h3,
    .recruit__future__section__text h4,
    .recruit__future__section__text h5,
    .recruit__future__section__text h6,
    .recruit__interview__section__body h1,
    .recruit__interview__section__body h2,
    .recruit__interview__section__body h3,
    .recruit__interview__section__body h4,
    .recruit__interview__section__body h5,
    .recruit__interview__section__body h6,
    .recruit__overview__detail__item dd h1,
    .recruit__overview__detail__item dd h2,
    .recruit__overview__detail__item dd h3,
    .recruit__overview__detail__item dd h4,
    .recruit__overview__detail__item dd h5,
    .recruit__overview__detail__item dd h6,
    .recruit__overview__jobs__block__contents h1,
    .recruit__overview__jobs__block__contents h2,
    .recruit__overview__jobs__block__contents h3,
    .recruit__overview__jobs__block__contents h4,
    .recruit__overview__jobs__block__contents h5,
    .recruit__overview__jobs__block__contents h6,
    .wysiwyg h1,
    .wysiwyg h2,
    .wysiwyg h3,
    .wysiwyg h4,
    .wysiwyg h5,
    .wysiwyg h6 {
        font-size: max(1.8rem, 18px);
        letter-spacing: 0;
        line-height: 1.2777777778em;
        margin: 6rem 0 2.3rem
    }

    .news__article__body h1:before,
    .news__article__body h2:before,
    .news__article__body h3:before,
    .news__article__body h4:before,
    .news__article__body h5:before,
    .news__article__body h6:before,
    .recruit__future__section__text h1:before,
    .recruit__future__section__text h2:before,
    .recruit__future__section__text h3:before,
    .recruit__future__section__text h4:before,
    .recruit__future__section__text h5:before,
    .recruit__future__section__text h6:before,
    .recruit__interview__section__body h1:before,
    .recruit__interview__section__body h2:before,
    .recruit__interview__section__body h3:before,
    .recruit__interview__section__body h4:before,
    .recruit__interview__section__body h5:before,
    .recruit__interview__section__body h6:before,
    .recruit__overview__detail__item dd h1:before,
    .recruit__overview__detail__item dd h2:before,
    .recruit__overview__detail__item dd h3:before,
    .recruit__overview__detail__item dd h4:before,
    .recruit__overview__detail__item dd h5:before,
    .recruit__overview__detail__item dd h6:before,
    .recruit__overview__jobs__block__contents h1:before,
    .recruit__overview__jobs__block__contents h2:before,
    .recruit__overview__jobs__block__contents h3:before,
    .recruit__overview__jobs__block__contents h4:before,
    .recruit__overview__jobs__block__contents h5:before,
    .recruit__overview__jobs__block__contents h6:before,
    .wysiwyg h1:before,
    .wysiwyg h2:before,
    .wysiwyg h3:before,
    .wysiwyg h4:before,
    .wysiwyg h5:before,
    .wysiwyg h6:before {
        display: none
    }

    .news__article__body>:first-child,
    .recruit__future__section__text>:first-child,
    .recruit__interview__section__body>:first-child,
    .recruit__overview__detail__item dd>:first-child,
    .recruit__overview__jobs__block__contents>:first-child,
    .wysiwyg>:first-child {
        margin-top: 0
    }
}

.achievements .page__header .page__header__visual__image2 {
    align-self: flex-start
}

.achievements .page__header .page__header__visual__image3 {
    align-self: flex-start;
    margin-top: 33rem
}

.achievements__global {
    margin-top: -6rem;
    padding-top: 6rem
}

.achievements__global__body {
    margin-top: 5rem
}

.achievements__global__contents {
    margin: 0 0 0 auto;
    width: 66rem
}

.achievements__global__lead {
    font-size: max(4.2rem, 42px);
    letter-spacing: -.01em;
    line-height: 1.119047619em
}

.achievements__global__text {
    margin: 5rem 0 0 auto
}

.achievements__global__figure {
    margin-top: 10rem
}

.achievements__clients {
    margin-top: -6rem;
    padding-top: 6rem
}

.achievements__clients__body {
    margin-top: 5rem;
    position: relative
}

.achievements__clients__notice {
    color: #999;
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1em;
    position: absolute;
    right: 0;
    top: calc(-5rem + min(-2rem, -20px))
}

.achievements__clients__section {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    height: auto;
    justify-content: flex-end;
    margin: 0 0 0 auto;
    position: relative;
    width: 96rem
}

.achievements__clients__section+.achievements__clients__section {
    border-top: 1px solid #ccc;
    margin-top: 10rem;
    padding-top: 10rem
}

.achievements__clients__section__title {
    flex: 0 0 30rem;
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.1785714286em;
    padding-right: 3rem;
    width: 30rem
}

.achievements__clients__section__list {
    align-items: flex-start;
    display: flex;
    flex: 0 0 66rem;
    flex-flow: row wrap;
    gap: .5rem 0;
    justify-content: flex-start;
    width: 66rem
}

.achievements__clients__section__list li {
    flex: 0 0 50%;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    padding-left: 1em;
    padding-right: 3rem;
    position: relative
}

.achievements__clients__section__list li:before {
    content: "・";
    left: 0;
    position: absolute;
    top: 0
}

.achievements__clients__movies {
    aspect-ratio: 16/9;
    height: auto;
    margin: 20rem auto 0;
    position: relative;
    width: 100%
}

.achievements__clients__movies__viewport {
    height: 100%;
    overflow: hidden;
    position: relative;
    width: 100%
}

.achievements__clients__movies__container {
    font-size: 0;
    height: 100%;
    letter-spacing: 0;
    line-height: 0px;
    position: relative;
    white-space: nowrap;
    width: 100%;
    will-change: transform
}

.achievements__clients__movies.moving .achievements__clients__movies__container {
    transition: transform 1s cubic-bezier(.19, 1, .22, 1)
}

.achievements__clients__movies.moving.moveByDrag .achievements__clients__movies__container {
    transition: transform .75s cubic-bezier(.19, 1, .22, 1)
}

.achievements__clients__movies[data-position="0"] .achievements__clients__movies__container {
    transform: translateZ(0)
}

.achievements__clients__movies[data-position="1"] .achievements__clients__movies__container {
    transform: translate3d(-100%, 0, 0)
}

.achievements__clients__movies[data-position="2"] .achievements__clients__movies__container {
    transform: translate3d(-200%, 0, 0)
}

.achievements__clients__movies[data-position="3"] .achievements__clients__movies__container {
    transform: translate3d(-300%, 0, 0)
}

.achievements__clients__movies[data-position="4"] .achievements__clients__movies__container {
    transform: translate3d(-400%, 0, 0)
}

.achievements__clients__movies[data-position="5"] .achievements__clients__movies__container {
    transform: translate3d(-500%, 0, 0)
}

.achievements__clients__movies[data-position="6"] .achievements__clients__movies__container {
    transform: translate3d(-600%, 0, 0)
}

.achievements__clients__movies[data-position="7"] .achievements__clients__movies__container {
    transform: translate3d(-700%, 0, 0)
}

.achievements__clients__movies[data-position="8"] .achievements__clients__movies__container {
    transform: translate3d(-800%, 0, 0)
}

.achievements__clients__movies[data-position="9"] .achievements__clients__movies__container {
    transform: translate3d(-900%, 0, 0)
}

.achievements__clients__movies[data-position="10"] .achievements__clients__movies__container {
    transform: translate3d(-1000%, 0, 0)
}

.achievements__clients__movies[data-position="11"] .achievements__clients__movies__container {
    transform: translate3d(-1100%, 0, 0)
}

.achievements__clients__movies[data-position="12"] .achievements__clients__movies__container {
    transform: translate3d(-1200%, 0, 0)
}

.achievements__clients__movies[data-position="13"] .achievements__clients__movies__container {
    transform: translate3d(-1300%, 0, 0)
}

.achievements__clients__movies[data-position="14"] .achievements__clients__movies__container {
    transform: translate3d(-1400%, 0, 0)
}

.achievements__clients__movies[data-position="15"] .achievements__clients__movies__container {
    transform: translate3d(-1500%, 0, 0)
}

.achievements__clients__movies[data-position="16"] .achievements__clients__movies__container {
    transform: translate3d(-1600%, 0, 0)
}

.achievements__clients__movies[data-position="17"] .achievements__clients__movies__container {
    transform: translate3d(-1700%, 0, 0)
}

.achievements__clients__movies[data-position="18"] .achievements__clients__movies__container {
    transform: translate3d(-1800%, 0, 0)
}

.achievements__clients__movies[data-position="19"] .achievements__clients__movies__container {
    transform: translate3d(-1900%, 0, 0)
}

.achievements__clients__movies[data-position="20"] .achievements__clients__movies__container {
    transform: translate3d(-2000%, 0, 0)
}

.achievements__clients__movies[data-position="21"] .achievements__clients__movies__container {
    transform: translate3d(-2100%, 0, 0)
}

.achievements__clients__movies[data-position="22"] .achievements__clients__movies__container {
    transform: translate3d(-2200%, 0, 0)
}

.achievements__clients__movies[data-position="23"] .achievements__clients__movies__container {
    transform: translate3d(-2300%, 0, 0)
}

.achievements__clients__movies[data-position="24"] .achievements__clients__movies__container {
    transform: translate3d(-2400%, 0, 0)
}

.achievements__clients__movies[data-position="25"] .achievements__clients__movies__container {
    transform: translate3d(-2500%, 0, 0)
}

.achievements__clients__movies[data-position="26"] .achievements__clients__movies__container {
    transform: translate3d(-2600%, 0, 0)
}

.achievements__clients__movies[data-position="27"] .achievements__clients__movies__container {
    transform: translate3d(-2700%, 0, 0)
}

.achievements__clients__movies[data-position="28"] .achievements__clients__movies__container {
    transform: translate3d(-2800%, 0, 0)
}

.achievements__clients__movies[data-position="29"] .achievements__clients__movies__container {
    transform: translate3d(-2900%, 0, 0)
}

.achievements__clients__movies__slide {
    color: #fff;
    display: inline-block;
    height: 100%;
    position: relative;
    white-space: normal;
    width: 100%
}

.achievements__clients__movies.moving .achievements__clients__movies__slide {
    pointer-events: none
}

.achievements__clients__movies__slide__thumb {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    transition: opacity .3s linear;
    width: 100%;
    z-index: 1
}

.achievements__clients__movies:not(.moving) .achievements__clients__movies__slide__thumb {
    cursor: pointer
}

.achievements__clients__movies__slide.playing .achievements__clients__movies__slide__thumb,
.achievements__clients__movies__slide:not(.ready) .achievements__clients__movies__slide__thumb {
    pointer-events: none
}

.achievements__clients__movies__slide.playing:not(.reveal) .achievements__clients__movies__slide__thumb:before {
    animation: rotateVideoLading .25s linear 0s infinite normal both;
    border: 2px solid #fff;
    border-radius: 50%;
    clip-path: inset(0 50% 0 0);
    content: "";
    height: 6rem;
    left: calc(50% - 3rem);
    position: absolute;
    top: calc(50% - 3rem);
    width: 6rem;
    z-index: 2
}

@keyframes rotateVideoLading {
    0% {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(1turn)
    }
}

.achievements__clients__movies__slide.playing.reveal .achievements__clients__movies__slide__thumb {
    opacity: 0
}

.achievements__clients__movies__slide__thumb__bg {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.achievements__clients__movies__slide__thumb__bg img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    width: 100%
}

.achievements__clients__movies__slide__thumb__bg:after {
    background-color: rgba(0, 0, 0, .3);
    content: "";
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.achievements__clients__movies__slide__thumb__label {
    font-size: max(7.2rem, 72px);
    left: 50%;
    letter-spacing: -.05em;
    line-height: 1em;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    visibility: hidden
}

.achievements__clients__movies__slide.playing .achievements__clients__movies__slide__thumb__label {
    opacity: 0
}

.achievements__clients__movies__slide.ready .achievements__clients__movies__slide__thumb__label {
    visibility: visible
}

.achievements__clients__movies__slide__thumb__title {
    left: 3rem;
    position: absolute;
    top: 3rem
}

.achievements__clients__movies__slide__thumb__title__1 {
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1em
}

.achievements__clients__movies__slide__thumb__title__2 {
    font-size: max(2.4rem, 24px);
    letter-spacing: 0;
    line-height: 1em;
    margin-top: 1rem
}

.achievements__clients__movies__slide__embed {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 0
}

.achievements__clients__movies__button {
    background-color: #fff;
    border-radius: 50%;
    color: transparent;
    cursor: pointer;
    display: block;
    font-size: 0;
    height: 12rem;
    letter-spacing: 0;
    line-height: 0px;
    overflow: hidden;
    position: absolute;
    top: calc(28.125vw - 9.375rem);
    white-space: nowrap;
    width: 12rem;
    z-index: 1
}

.achievements__clients__movies__button:before {
    border-color: #000;
    border-style: solid;
    content: "";
    display: block;
    height: 1.8rem;
    position: absolute;
    top: calc(50% - .9rem);
    transform: rotate(-45deg);
    width: 1.8rem
}

.achievements__clients__movies__button.disabled {
    display: none
}

.achievements__clients__movies__button--prev {
    left: -6rem
}

.achievements__clients__movies__button--prev:before {
    border-left-width: 1px;
    border-top-width: 1px;
    left: calc(50% + .3rem)
}

body:not(.touch) .achievements__clients__movies__button--prev:hover:before {
    animation: moviePrevBtnTick 1s cubic-bezier(.19, 1, .22, 1) 0s infinite normal both
}

@keyframes moviePrevBtnTick {
    0% {
        transform: translate(-.6rem) rotate(-45deg)
    }

    75% {
        transform: translate(0) rotate(-45deg)
    }

    to {
        transform: translate(0) rotate(-45deg)
    }
}

.achievements__clients__movies__button--next {
    right: -6rem
}

.achievements__clients__movies__button--next:before {
    border-bottom-width: 1px;
    border-right-width: 1px;
    right: calc(50% + .3rem)
}

body:not(.touch) .achievements__clients__movies__button--next:hover:before {
    animation: movieNextBtnTick 1s cubic-bezier(.19, 1, .22, 1) 0s infinite normal both
}

@keyframes movieNextBtnTick {
    0% {
        transform: translate(.6rem) rotate(-45deg)
    }

    75% {
        transform: translate(0) rotate(-45deg)
    }

    to {
        transform: translate(0) rotate(-45deg)
    }
}

.achievements__clients__movies__pager {
    align-items: center;
    display: flex;
    flex-flow: row wrap;
    gap: 1rem;
    justify-content: center;
    margin: 3rem 0 0
}

.achievements__clients__movies__pager__page {
    background-color: #ccc;
    border-radius: 50%;
    cursor: pointer;
    display: block;
    flex: 0 0 0.8rem;
    height: .8rem;
    width: .8rem
}

.achievements__clients__movies[data-position="0"] .achievements__clients__movies__pager__page[data-num="0"],
.achievements__clients__movies[data-position="1"] .achievements__clients__movies__pager__page[data-num="1"],
.achievements__clients__movies[data-position="10"] .achievements__clients__movies__pager__page[data-num="10"],
.achievements__clients__movies[data-position="11"] .achievements__clients__movies__pager__page[data-num="11"],
.achievements__clients__movies[data-position="12"] .achievements__clients__movies__pager__page[data-num="12"],
.achievements__clients__movies[data-position="13"] .achievements__clients__movies__pager__page[data-num="13"],
.achievements__clients__movies[data-position="14"] .achievements__clients__movies__pager__page[data-num="14"],
.achievements__clients__movies[data-position="15"] .achievements__clients__movies__pager__page[data-num="15"],
.achievements__clients__movies[data-position="16"] .achievements__clients__movies__pager__page[data-num="16"],
.achievements__clients__movies[data-position="17"] .achievements__clients__movies__pager__page[data-num="17"],
.achievements__clients__movies[data-position="18"] .achievements__clients__movies__pager__page[data-num="18"],
.achievements__clients__movies[data-position="19"] .achievements__clients__movies__pager__page[data-num="19"],
.achievements__clients__movies[data-position="2"] .achievements__clients__movies__pager__page[data-num="2"],
.achievements__clients__movies[data-position="20"] .achievements__clients__movies__pager__page[data-num="20"],
.achievements__clients__movies[data-position="21"] .achievements__clients__movies__pager__page[data-num="21"],
.achievements__clients__movies[data-position="22"] .achievements__clients__movies__pager__page[data-num="22"],
.achievements__clients__movies[data-position="23"] .achievements__clients__movies__pager__page[data-num="23"],
.achievements__clients__movies[data-position="24"] .achievements__clients__movies__pager__page[data-num="24"],
.achievements__clients__movies[data-position="25"] .achievements__clients__movies__pager__page[data-num="25"],
.achievements__clients__movies[data-position="26"] .achievements__clients__movies__pager__page[data-num="26"],
.achievements__clients__movies[data-position="27"] .achievements__clients__movies__pager__page[data-num="27"],
.achievements__clients__movies[data-position="28"] .achievements__clients__movies__pager__page[data-num="28"],
.achievements__clients__movies[data-position="29"] .achievements__clients__movies__pager__page[data-num="29"],
.achievements__clients__movies[data-position="3"] .achievements__clients__movies__pager__page[data-num="3"],
.achievements__clients__movies[data-position="4"] .achievements__clients__movies__pager__page[data-num="4"],
.achievements__clients__movies[data-position="5"] .achievements__clients__movies__pager__page[data-num="5"],
.achievements__clients__movies[data-position="6"] .achievements__clients__movies__pager__page[data-num="6"],
.achievements__clients__movies[data-position="7"] .achievements__clients__movies__pager__page[data-num="7"],
.achievements__clients__movies[data-position="8"] .achievements__clients__movies__pager__page[data-num="8"],
.achievements__clients__movies[data-position="9"] .achievements__clients__movies__pager__page[data-num="9"] {
    background-color: #000;
    pointer-events: none
}

.achievements__clients__movies__caption {
    margin: -1.6rem 0 0 auto;
    max-width: 50%;
    position: relative
}

.achievements__clients__movies__caption__page {
    color: #999;
    display: none;
    text-align: right
}

.achievements__clients__movies[data-position="0"] .achievements__clients__movies__caption__page[data-num="0"],
.achievements__clients__movies[data-position="1"] .achievements__clients__movies__caption__page[data-num="1"],
.achievements__clients__movies[data-position="10"] .achievements__clients__movies__caption__page[data-num="10"],
.achievements__clients__movies[data-position="11"] .achievements__clients__movies__caption__page[data-num="11"],
.achievements__clients__movies[data-position="12"] .achievements__clients__movies__caption__page[data-num="12"],
.achievements__clients__movies[data-position="13"] .achievements__clients__movies__caption__page[data-num="13"],
.achievements__clients__movies[data-position="14"] .achievements__clients__movies__caption__page[data-num="14"],
.achievements__clients__movies[data-position="15"] .achievements__clients__movies__caption__page[data-num="15"],
.achievements__clients__movies[data-position="16"] .achievements__clients__movies__caption__page[data-num="16"],
.achievements__clients__movies[data-position="17"] .achievements__clients__movies__caption__page[data-num="17"],
.achievements__clients__movies[data-position="18"] .achievements__clients__movies__caption__page[data-num="18"],
.achievements__clients__movies[data-position="19"] .achievements__clients__movies__caption__page[data-num="19"],
.achievements__clients__movies[data-position="2"] .achievements__clients__movies__caption__page[data-num="2"],
.achievements__clients__movies[data-position="20"] .achievements__clients__movies__caption__page[data-num="20"],
.achievements__clients__movies[data-position="21"] .achievements__clients__movies__caption__page[data-num="21"],
.achievements__clients__movies[data-position="22"] .achievements__clients__movies__caption__page[data-num="22"],
.achievements__clients__movies[data-position="23"] .achievements__clients__movies__caption__page[data-num="23"],
.achievements__clients__movies[data-position="24"] .achievements__clients__movies__caption__page[data-num="24"],
.achievements__clients__movies[data-position="25"] .achievements__clients__movies__caption__page[data-num="25"],
.achievements__clients__movies[data-position="26"] .achievements__clients__movies__caption__page[data-num="26"],
.achievements__clients__movies[data-position="27"] .achievements__clients__movies__caption__page[data-num="27"],
.achievements__clients__movies[data-position="28"] .achievements__clients__movies__caption__page[data-num="28"],
.achievements__clients__movies[data-position="29"] .achievements__clients__movies__caption__page[data-num="29"],
.achievements__clients__movies[data-position="3"] .achievements__clients__movies__caption__page[data-num="3"],
.achievements__clients__movies[data-position="4"] .achievements__clients__movies__caption__page[data-num="4"],
.achievements__clients__movies[data-position="5"] .achievements__clients__movies__caption__page[data-num="5"],
.achievements__clients__movies[data-position="6"] .achievements__clients__movies__caption__page[data-num="6"],
.achievements__clients__movies[data-position="7"] .achievements__clients__movies__caption__page[data-num="7"],
.achievements__clients__movies[data-position="8"] .achievements__clients__movies__caption__page[data-num="8"],
.achievements__clients__movies[data-position="9"] .achievements__clients__movies__caption__page[data-num="9"] {
    animation: captionFadeIn .5s linear .1s 1 normal both;
    display: block
}

@keyframes captionFadeIn {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.achievements__clients__movies__caption__title {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em
}

.achievements__clients__movies__caption__desc {
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1.8333333333em
}

@media (max-width:1023px) {
    .achievements .page__header .page__header__visual__image1 {
        orer: 1
    }

    .achievements .page__header .page__header__visual__image2 {
        margin: 0 auto 0 0;
        order: 2
    }

    .achievements .page__header .page__header__visual__image3 {
        margin: 0 0 0 auto;
        order: 3
    }

    .achievements__global {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .achievements__global__body {
        margin-top: 3.5rem
    }

    .achievements__global__contents {
        margin: 0 auto;
        width: 100%
    }

    .achievements__global__lead {
        font-size: max(2.8rem, 28px);
        letter-spacing: -.01em;
        line-height: 1.1785714286em
    }

    .achievements__global__text {
        margin: 3rem auto 0
    }

    .achievements__global__figure {
        margin-top: 5rem
    }

    body.touch .achievements__global__figure .diagram__image img {
        display: block;
        height: 46.1rem;
        -o-object-fit: cover;
        object-fit: cover;
        -o-object-position: right center;
        object-position: right center;
        width: 90rem
    }

    .achievements__clients {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .achievements__clients__body {
        margin-top: 3.5rem
    }

    .achievements__clients__notice {
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1.3571428571em;
        margin-bottom: 2.5rem;
        position: relative;
        right: auto;
        text-align: right;
        top: auto
    }

    .achievements__clients__section {
        display: block;
        width: 100%
    }

    .achievements__clients__section+.achievements__clients__section {
        border-top: 1px solid #ccc;
        margin-top: 5rem;
        padding-top: 5rem
    }

    .achievements__clients__section__title {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        padding-right: 0;
        width: 100%
    }

    .achievements__clients__section__list {
        display: block;
        margin-top: 2.5rem;
        width: 100%
    }

    .achievements__clients__section__list li {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.3846153846em;
        padding-right: 0
    }

    .achievements__clients__section__list li+li {
        margin-top: .5rem
    }

    .achievements__clients__movies {
        aspect-ratio: auto;
        margin: 6rem auto 0
    }

    .achievements__clients__movies__viewport {
        height: 0;
        overflow: hidden;
        padding-bottom: max(6.6rem, 66px);
        padding-top: 56.25%;
        position: relative;
        width: 100%
    }

    .achievements__clients__movies__container {
        left: 0;
        position: absolute;
        top: 0
    }

    .achievements__clients__movies__slide {
        aspect-ratio: 16/9;
        height: auto;
        width: 100%
    }

    .achievements__clients__movies__slide__thumb {
        transform: translateZ(0);
        z-index: 10
    }

    .achievements__clients__movies:not(.moving) .achievements__clients__movies__slide__thumb {
        cursor: pointer
    }

    .achievements__clients__movies__slide.playing .achievements__clients__movies__slide__thumb {
        pointer-events: none
    }

    .achievements__clients__movies__slide.playing:not(.reveal) .achievements__clients__movies__slide__thumb:before {
        height: 3rem;
        left: calc(50% - 1.5rem);
        top: calc(50% - 1.5rem);
        width: 3rem
    }

    .achievements__clients__movies__slide.playing.reveal .achievements__clients__movies__slide__thumb {
        opacity: 1 !important
    }

    .achievements__clients__movies__slide__thumb__bg {
        transition: opacity .3s linear
    }

    .achievements__clients__movies__slide__thumb__bg:after {
        background-color: rgba(0, 0, 0, .3)
    }

    .achievements__clients__movies__slide.playing.reveal .achievements__clients__movies__slide__thumb__bg {
        opacity: 0
    }

    .achievements__clients__movies__slide__thumb__label {
        font-size: max(3rem, 30px);
        letter-spacing: -.05em;
        line-height: 1em;
        transition: opacity .3s linear;
        white-space: nowrap
    }

    .achievements__clients__movies__slide.playing.reveal .achievements__clients__movies__slide__thumb__label {
        opacity: 0
    }

    .achievements__clients__movies__slide__thumb__title {
        color: #000;
        height: max(6.6rem, 66px);
        left: 0;
        padding: max(2.2rem, 22px) max(1rem, 10px);
        position: absolute;
        text-align: center;
        top: 100%;
        width: 100%
    }

    .achievements__clients__movies__slide__thumb__title__1 {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        transform: scale(.9)
    }

    .achievements__clients__movies__slide__thumb__title__2 {
        font-size: max(1.8rem, 18px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: .5rem
    }

    .achievements__clients__movies__slide__embed {
        height: 100%;
        left: 0;
        position: relative;
        top: 0;
        width: 100%;
        z-index: 0
    }

    .achievements__clients__movies__button {
        background-color: #fff;
        border-radius: 0;
        bottom: auto;
        height: max(7.6rem, 76px);
        margin-top: 56.25%;
        top: 0;
        width: max(5rem, 50px)
    }

    .achievements__clients__movies__button:before {
        content: "";
        height: max(1.8rem, 18px);
        top: calc(50% - max(.9rem, 9px));
        width: max(1.8rem, 18px)
    }

    .achievements__clients__movies__button--prev {
        left: min(-1.5rem, -15px)
    }

    .achievements__clients__movies__button--prev:before {
        left: max(1.9rem, 19px)
    }

    .achievements__clients__movies__button--next {
        right: min(-1.5rem, -15px)
    }

    .achievements__clients__movies__button--next:before {
        right: max(1.9rem, 19px)
    }

    .achievements__clients__movies__pager {
        gap: .8rem;
        margin: 1rem 0 0
    }

    .achievements__clients__movies__pager__page {
        flex: 0 0 0.6rem;
        height: .6rem;
        width: .6rem
    }

    .achievements__clients__movies__caption {
        margin: 1.8rem auto 0;
        max-width: 100%
    }

    .achievements__clients__movies__caption__page {
        text-align: center
    }

    .achievements__clients__movies__caption__title {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.3846153846em
    }

    .achievements__clients__movies__caption__desc {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1.5em;
        transform: scale(.9)
    }
}

.company .page__header .page__header__visual__image2 {
    align-self: flex-end
}

.company .page__header .page__header__visual__image3 {
    align-self: flex-start
}

.company__phonedl {
    align-items: flex-start;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    margin-top: 2.4rem
}

.company__phonedl dt {
    flex: 0 0 max(5.8rem, 58px);
    font-style: normal;
    font-weight: 400;
    position: relative;
    width: max(5.8rem, 58px)
}

.company__phonedl dt:after {
    content: "：";
    position: absolute;
    right: max(.3rem, 3px);
    top: 0
}

.company__phonedl dd {
    flex: 0 0 calc(100% - max(5.8rem, 58px));
    width: calc(100% - max(5.8rem, 58px))
}

.company__overview {
    margin-top: -6rem;
    padding-top: 6rem
}

.company__overview__body {
    margin-left: auto;
    margin-top: 5rem;
    position: relative;
    width: 96rem
}

.company__overview__table__line {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start
}

.company__overview__table__line+.company__overview__table__line {
    border-top: 1px solid #4d4d4d;
    margin-top: 2.7rem;
    padding-top: 2.7rem
}

.company__overview__table__term {
    flex: 0 0 30rem;
    font-size: max(1.8rem, 18px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.3333333333em;
    padding-right: 3rem;
    width: 30rem
}

.company__overview__table__desc {
    flex: 1 1 auto
}

.company__overview__stats {
    align-items: flex-start;
    background-color: #fff;
    border-radius: .5rem;
    display: flex;
    flex-flow: row wrap;
    gap: 6rem;
    height: auto;
    justify-content: flex-start;
    margin-top: 10rem;
    padding: 6rem;
    width: 100%
}

.company__overview__stats__chart {
    flex: 0 0 calc(33.3333% - 4rem)
}

.company__overview__stats__chart img {
    display: block;
    height: auto;
    width: 100%
}

.company__history {
    margin-top: -6rem;
    padding-top: 6rem
}

.company__history__timeline {
    margin-left: auto;
    margin-top: 5rem;
    position: relative;
    width: 96rem
}

.company__history__timeline:after {
    background-image: linear-gradient(180deg, #fff 1px, transparent 0);
    background-repeat: repeat-y;
    background-size: 1px 4px;
    content: "";
    display: block;
    height: 100%;
    left: 5rem;
    position: absolute;
    top: 0;
    width: 1px;
    z-index: 0
}

.company__history__timeline__block {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    position: relative
}

.company__history__timeline__block+.company__history__timeline__block .company__history__timeline__body {
    border-top: 1px solid #4d4d4d;
    margin-top: 2.7rem;
    padding-top: 2.7rem
}

.company__history__timeline__block+.company__history__timeline__block .company__history__timeline__year {
    top: 4.9rem
}

.company__history__timeline__block:last-child .company__history__timeline__year {
    bottom: 0;
    top: auto
}

.company__history__timeline__block:last-child .company__history__timeline__body {
    border-top: 0;
    padding-top: 3rem
}

.company__history__timeline__year {
    align-items: center;
    background-color: #fff;
    border-radius: 9999px;
    color: #000;
    display: flex;
    flex: 0 0 10rem;
    flex-flow: row nowrap;
    font-size: max(1.8rem, 18px);
    height: autp;
    justify-content: center;
    left: 0;
    letter-spacing: 0;
    line-height: 1.2777777778em;
    margin-right: 5rem;
    min-height: 3.3rem;
    padding: .5rem;
    position: absolute;
    text-align: center;
    top: -5px;
    width: 10rem;
    z-index: 1
}

.company__history__timeline__body {
    flex: 0 0 81rem;
    margin-left: auto;
    width: 81rem
}

.company__history__timeline__event {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start
}

.company__history__timeline__event+.company__history__timeline__event {
    margin-top: 2.4rem
}

.company__history__timeline__event__month {
    flex: 0 0 15rem;
    padding-right: 3rem;
    width: 15rem
}

.company__history__timeline__event__desc {
    flex: 0 0 45rem;
    padding-right: 3rem;
    width: 45rem
}

.company__history__timeline__event__img {
    flex: 0 0 21rem;
    height: auto;
    width: 21rem
}

.company__history__timeline__event__img img {
    aspect-ratio: 1;
    display: block;
    height: auto;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    width: 100%
}

.company__base {
    margin-top: -6rem;
    padding-top: 6rem
}

.company__base__body {
    margin-left: auto;
    margin-top: 5rem;
    position: relative;
    width: 96rem
}

.company__base__section+.company__base__section {
    border-top: 1px solid #4d4d4d;
    margin-top: 10rem;
    padding-top: 10rem
}

.company__base__block {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start
}

.company__base__block+.company__base__block {
    margin-top: 5rem
}

.company__base__section__label+.company__base__block {
    margin-top: 4rem
}

.company__base__block__label {
    flex: 0 0 30rem;
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.1785714286em;
    padding-right: 3rem;
    width: 30rem
}

.company__base__block__label__sub {
    display: block;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em
}

.company__base__block__body {
    flex: 0 0 66rem;
    width: 66rem
}

.company__base__block__image {
    height: auto;
    position: relative;
    width: 100%
}

.company__base__block__image img {
    display: block;
    height: auto;
    width: 100%
}

.company__base__block__detail {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start
}

.company__base__block__image+.company__base__block__detail {
    margin-top: 3rem
}

.company__base__block__detail__info {
    flex: 0 1 42rem;
    padding-right: 3rem;
    width: 42rem
}

.company__base__block__detail__info:only-child {
    flex: 0 1 auto;
    width: auto
}

.company__base__block__detail__info p:not(:first-child) {
    margin-top: 2.4rem
}

.company__base__block__detail__link {
    flex: 0 0 24rem;
    width: 24rem
}

.company__base__section__label {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.1785714286em
}

.company__base__block--subsidiary .company__base__block__label {
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.5555555556em
}

.company__base__block--subsidiary .company__base__block__label__sub {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em
}

@media (max-width:1280px) and (min-width:1024px) {

    body:not(.touch) .company__base__block__detail__link.blockbtn.clicked .blockbtn__label,
    body:not(.touch) .company__base__block__detail__link.blockbtn:hover .blockbtn__label {
        display: none !important
    }
}

@media (max-width:1023px) {
    .company .page__header .page__header__visual__image1 {
        orer: 1
    }

    .company .page__header .page__header__visual__image2 {
        margin: 0 auto 0 0;
        order: 3
    }

    .company .page__header .page__header__visual__image3 {
        margin: 0 0 0 auto;
        order: 2
    }

    .company__phonedl dt {
        flex: 0 0 max(4rem, 40px);
        width: max(4rem, 40px)
    }

    .company__phonedl dt:after {
        right: max(.3rem, 3px)
    }

    .company__phonedl dd {
        flex: 0 0 calc(100% - max(4rem, 40px));
        width: calc(100% - max(4rem, 40px))
    }

    .company__overview {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .company__overview__body {
        margin-top: 4rem;
        width: 100%
    }

    .company__overview__table__line+.company__overview__table__line {
        margin-top: 2.1rem;
        padding-top: 2.3rem
    }

    .company__overview__table__term {
        flex: 0 0 10rem;
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em;
        padding-right: 1.5rem;
        position: relative;
        top: min(-.2rem, -2px);
        width: 10rem
    }

    .company__overview__table__desc {
        flex: 1 1 auto;
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.3846153846em
    }

    .company__overview__stats {
        border-radius: .5rem;
        display: block;
        margin-top: 6rem;
        padding: 3.5rem 1.6rem
    }

    .company__overview__stats__chart {
        display: block;
        height: auto;
        margin-left: auto;
        margin-right: auto;
        width: 22.8rem
    }

    .company__overview__stats__chart+.company__overview__stats__chart {
        margin-top: 4rem
    }

    .company__history {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .company__history__timeline {
        margin-top: 5rem;
        width: 100%
    }

    .company__history__timeline:after {
        left: 3.7rem
    }

    .company__history__timeline__block {
        align-items: flex-start;
        display: flex;
        flex-flow: row nowrap;
        justify-content: flex-start;
        position: relative
    }

    .company__history__timeline__block+.company__history__timeline__block .company__history__timeline__body {
        border-top: 1px solid #4d4d4d;
        margin-top: 2.3rem;
        padding-top: 2.1rem
    }

    .company__history__timeline__block+.company__history__timeline__block .company__history__timeline__year {
        top: 4.1rem
    }

    .company__history__timeline__block:last-child .company__history__timeline__year {
        bottom: 0;
        top: auto
    }

    .company__history__timeline__block:last-child .company__history__timeline__body {
        border-top: 0;
        padding-top: 0
    }

    .company__history__timeline__year {
        flex: 0 0 7.5rem;
        font-size: max(1.5rem, 15px);
        height: 2.5rem;
        left: 0;
        letter-spacing: 0;
        line-height: 1em;
        margin-right: 1.5rem;
        top: 0;
        width: 7.5rem
    }

    .company__history__timeline__body {
        flex: 0 0 calc(100% - 9rem);
        margin-left: auto;
        width: calc(100% - 9rem)
    }

    .company__history__timeline__event {
        align-items: flex-start;
        display: flex;
        flex-flow: row wrap;
        font-size: max(1.3rem, 13px);
        justify-content: flex-start;
        letter-spacing: 0;
        line-height: 1.3846153846em
    }

    .company__history__timeline__event+.company__history__timeline__event {
        margin-top: 2rem
    }

    .company__history__timeline__event__month {
        flex: 0 0 100%;
        padding-right: 0;
        width: 100%
    }

    .company__history__timeline__event__desc {
        flex: 0 0 100%;
        margin-top: 1rem;
        padding-right: 0;
        width: 100%
    }

    .company__history__timeline__event__img {
        flex: 1 1 100%;
        height: auto;
        margin-top: 1.5rem;
        width: 100%
    }

    .company__history__timeline__event__img img {
        height: 12rem;
        margin-left: auto;
        width: 12rem
    }

    .company__base {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .company__base__body {
        margin-top: 4rem;
        width: 100%
    }

    .company__base__section+.company__base__section {
        margin-top: 5rem;
        padding-top: 5rem
    }

    .company__base__block {
        display: block
    }

    .company__base__block+.company__base__block {
        margin-top: 5rem
    }

    .company__base__section__label+.company__base__block {
        margin-top: 4rem
    }

    .company__base__block__label {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        padding-right: 0;
        width: 100%
    }

    .company__base__block__label__sub {
        display: block;
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1.7142857143em
    }

    .company__base__block__body {
        margin-top: 2rem;
        width: 100%
    }

    .company__base__block__image+.company__base__block__detail {
        margin-top: 3rem
    }

    .company__base__block__detail__info {
        flex: 1 1 100%;
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.3846153846em;
        padding-right: 0;
        width: 100%
    }

    .company__base__block__detail:has(.company__base__block__detail__link) .company__base__block__detail__info {
        flex: 1 1 calc(100% - 7.5rem);
        padding-right: 1.5rem;
        width: calc(100% - 7.5rem)
    }

    .company__base__block__detail__link {
        flex: 0 0 7.5rem;
        width: 7.5rem
    }

    .company__base__block__detail__link .blockbtn__title {
        padding-left: 1.5rem !important;
        padding-right: 1.5rem !important;
        width: 100% !important
    }

    .company__base__block__detail__link .blockbtn__arrowbox,
    .company__base__block__detail__link .blockbtn__label {
        display: none
    }

    .company__base__section__label {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em
    }

    .company__base__block--subsidiary .company__base__block__label {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em
    }

    .company__base__block--subsidiary .company__base__block__label__sub {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.5384615385em
    }
}

.contact .page__header {
    padding-top: 20rem
}

.contact__main {
    margin: 6.6rem 6rem 0 auto;
    position: relative;
    width: 96rem
}

@media (max-width:1023px) {
    .contact .page__header {
        padding-top: 12rem
    }

    .contact__main {
        margin: 2rem auto 0;
        position: relative;
        width: calc(100% - 3rem)
    }
}

.index__firstview {
    box-sizing: content-box;
    height: 100svh;
    min-height: max(56rem, 560px);
    padding-bottom: 19rem;
    position: relative;
    width: 100%
}

.index__firstview+.divider {
    margin-top: -19rem
}

.index__firstview__visual {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.index__firstview__visual video {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    opacity: 0;
    width: 100%
}

.index__firstview__visual:after,
.index__firstview__visual:before {
    content: "";
    display: block;
    left: 0;
    position: absolute;
    width: 100%
}

.index__firstview__visual:before {
    background-color: rgba(0, 0, 0, .4);
    height: 100%;
    top: 0;
    z-index: 0
}

.index__firstview__visual:after {
    background: linear-gradient(0deg, #000, transparent);
    bottom: -1px;
    height: 38rem;
    z-index: 1
}

.index__firstview__contents {
    align-items: flex-start;
    display: flex;
    flex-flow: column nowrap;
    height: calc(100% - 19rem);
    justify-content: flex-end;
    left: 0;
    padding: 0 6rem 7rem;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 2
}

.index__firstview__contents__lead {
    font-size: max(2.1rem, 21px);
    height: auto;
    letter-spacing: 0;
    line-height: 1em;
    padding-left: 50%;
    position: relative;
    width: 100%
}

.index__firstview__contents__catch {
    height: auto;
    margin-top: 5rem;
    padding-left: 50%;
    position: relative;
    width: 100%
}

.index__firstview__contents__catch__part1 {
    font-size: max(3.6rem, 36px);
    left: 0;
    letter-spacing: 0;
    line-height: 1em;
    position: absolute
}

.index__firstview__contents__catch__part2 {
    font-size: max(10rem, 100px);
    letter-spacing: -.05em;
    line-height: .9em
}

.index__firstview__contents__catch__part2 span {
    display: block;
    height: auto;
    overflow: hidden;
    position: relative;
    width: 100%
}

.index__firstview__contents__catch__part2 span>span {
    display: block;
    position: relative;
    transform: translateY(100%)
}

body.ready .index__firstview__contents__catch__part2 span>span {
    transform: translateY(0);
    transition: transform 1.5s cubic-bezier(.19, 1, .22, 1) 0s
}

body.ready .index__firstview__contents__catch__part2 span:first-child>span,
body.ready .index__firstview__contents__catch__part2 span:nth-child(2)>span {
    transition-delay: .5s
}

.index__firstview__contents__catch__part3 {
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1.7692307692em;
    margin-top: 3rem
}

.index__firstview__contents__arrow {
    animation: scrollarrow 2s cubic-bezier(.19, 1, .22, 1) 1s infinite;
    border-bottom: 1px solid #fff;
    bottom: 7rem;
    height: 1rem;
    left: 6rem;
    overflow: hidden;
    position: absolute;
    transform: translate(-100%) rotate(90deg);
    transform-origin: right bottom;
    width: 12rem
}

.index__firstview__contents__arrow:before {
    background-color: #fff;
    bottom: -1px;
    content: "";
    display: block;
    height: 1px;
    position: absolute;
    right: 0;
    transform: rotate(20deg);
    transform-origin: right bottom;
    width: 100%
}

@keyframes scrollarrow {
    0% {
        clip-path: inset(0 100% 0 0)
    }

    25% {
        clip-path: inset(0 0 0 0)
    }

    75% {
        clip-path: inset(0 0 0 0)
    }

    to {
        clip-path: inset(0 0 0 100%)
    }
}

@media (max-width:1280px) {

    .index__firstview__contents__catch,
    .index__firstview__contents__lead {
        padding-left: calc(100% - 588px)
    }
}

.index__about__title {
    padding-left: 18rem;
    padding-right: 18rem;
    position: relative;
    width: 100%
}

.index__about__lead {
    font-size: max(4.2rem, 42px);
    letter-spacing: -.01em;
    line-height: 1.119047619em
}

.index__about__body p+p {
    margin-top: max(4.8rem, 48px)
}

.index__about__section {
    padding-left: 18rem;
    padding-right: 18rem;
    position: relative;
    width: 100%
}

.index__about__section__body {
    width: 45rem
}

.index__about__section1 {
    margin-top: max(8rem, 80px)
}

.index__about__section1 .index__about__section__body {
    margin-right: auto
}

.index__about__section1 .index__about__body {
    margin-top: max(4.8rem, 48px);
    padding-bottom: 30.5rem
}

.index__about__section2 {
    min-height: 117rem
}

.index__about__section2 .index__about__section__body {
    margin-left: auto
}

.index__about__section2 .index__about__body {
    padding-top: 26.5rem
}

.index__about__navigation {
    margin-top: 10rem
}

.index__about__img {
    overflow: hidden;
    position: absolute
}

.index__about__img img {
    display: block;
    height: auto;
    left: 0;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    position: absolute;
    top: 0;
    width: 100%
}

.index__about__img1 {
    height: 16.5rem;
    right: 0;
    top: -18rem;
    width: 16.5rem
}

.index__about__img1 img {
    transform: translateY(calc(28.57143%*var(--progress)*-1))
}

.index__about__img2 {
    height: 60rem;
    right: 18rem;
    top: 0;
    width: 45rem
}

.index__about__img3 {
    bottom: 1.5rem;
    height: 16.5rem;
    left: 0;
    width: 16.5rem
}

.index__about__img3 img {
    transform: translateY(calc(28.57143%*var(--progress)*-1))
}

.index__about__img4 {
    height: 62rem;
    left: 18rem;
    top: 0;
    width: 45rem
}

.index__about__img5 {
    height: 27rem;
    left: 36rem;
    top: 72rem;
    width: 27rem
}

.index__about__img5 img {
    transform: translateY(calc(28.57143%*var(--progress)*-1))
}

.index__about__img6 {
    height: 16.5rem;
    left: 18rem;
    top: 100.5rem;
    width: 16.5rem
}

.index__about__img6 img {
    transform: translateY(calc(28.57143%*var(--progress)*-1))
}

.index__features {
    position: relative
}

@media (min-width:1024px) {
    .index__features {
        transform: translate(0);
        will-change: transform
    }
}

.index__features__intro {
    padding-left: 6rem;
    padding-right: 6rem;
    position: relative;
    width: 100%
}

.index__features__intro__title {
    height: auto;
    margin-right: auto;
    width: 100%
}

.index__features__intro__text {
    height: auto;
    margin: 5rem 0 0 auto;
    width: 66rem
}

.index__features__intro__text p+p {
    margin-top: max(2.4rem, 24px)
}

.index__features__main {
    height: 500lvh;
    margin-top: 6rem;
    overflow: hidden;
    position: relative;
    width: 100%
}

.index__features__indicator {
    align-items: center;
    display: flex;
    flex-flow: row nowrap;
    height: max(8.4rem, 84px);
    justify-content: space-between;
    left: 0;
    padding: 3rem;
    pointer-events: none;
    position: absolute;
    top: 0;
    transform: translateY(calc((100lvh - max(8.4rem, 84px))*var(--progress)));
    width: 100%;
    z-index: 4
}

.index__features__indicator__label {
    flex: 0 0 auto;
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1em
}

.index__features__indicator__pages {
    display: flex;
    flex: 0 0 auto;
    flex-flow: row nowrap;
    text-align: center;
    width: max(8.2rem, 82px)
}

.index__features__indicator__pages__current {
    color: #fff;
    flex: 0 0 max(2.4rem, 24px);
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1em;
    width: max(2.4rem, 24px)
}

.index__features__indicator__pages__max {
    color: hsla(0, 0%, 100%, .4);
    flex: 0 0 max(5.8rem, 58px);
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1em;
    padding-left: max(3.4rem, 34px);
    position: relative;
    width: max(5.8rem, 58px)
}

.index__features__indicator__pages__max:before {
    background-color: hsla(0, 0%, 100%, .4);
    content: "";
    display: block;
    height: 1px;
    left: max(.7rem, 7px);
    position: absolute;
    top: 50%;
    width: max(2rem, 20px)
}

.index__features__frame {
    height: 100lvh;
    position: relative;
    width: 100%
}

.index__features__background {
    height: 100%;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    transform: translateY(calc(-300%*var(--progress)));
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    width: 100%;
    z-index: 0
}

.index__features__background__image {
    height: 100%;
    left: 0;
    opacity: 1;
    overflow: hidden;
    position: relative;
    top: 0;
    width: 100%
}

.index__features__background__image img {
    display: block;
    height: 100%;
    left: 0;
    -o-object-fit: cover;
    object-fit: cover;
    position: absolute;
    top: 0;
    width: 100%
}

.index__features__background__image[data-section="0"] img {
    transform: translateY(calc(20%*clamp(-1, var(--progress) * 3 - 0, 1)))
}

.index__features__background__image[data-section="1"] img {
    transform: translateY(calc(20%*clamp(-1, var(--progress) * 3 - 1, 1)))
}

.index__features__background__image[data-section="2"] img {
    transform: translateY(calc(20%*clamp(-1, var(--progress) * 3 - 2, 1)))
}

.index__features__background__image[data-section="3"] img {
    transform: translateY(calc(20%*clamp(-1, var(--progress) * 3 - 3, 1)))
}

.index__features__images {
    align-items: flex-start;
    display: flex;
    flex-flow: column nowrap;
    gap: 1.5rem;
    height: 36rem;
    justify-content: flex-start;
    left: calc(50% - 54rem);
    overflow: hidden;
    position: absolute;
    top: calc(50% - 18rem);
    width: 36rem
}

.index__features__images__img {
    flex: 0 0 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
    transform: translateY(calc((-300% - 4.5rem)*(1 - var(--progress))));
    width: 100%
}

.index__features__images__img img {
    display: block;
    height: 100%;
    left: 0;
    -o-object-fit: cover;
    object-fit: cover;
    position: absolute;
    top: 0;
    width: 100%
}

.index__features__images__img[data-section="0"] {
    order: 4
}

.index__features__images__img[data-section="1"] {
    order: 3
}

.index__features__images__img[data-section="2"] {
    order: 2
}

.index__features__images__img[data-section="3"] {
    order: 1
}

.index__features__images__img[data-section="0"] img {
    transform: translateY(calc(-20%*clamp(-1, var(--progress) * 3 - 0, 1)))
}

.index__features__images__img[data-section="1"] img {
    transform: translateY(calc(-20%*clamp(-1, var(--progress) * 3 - 1, 1)))
}

.index__features__images__img[data-section="2"] img {
    transform: translateY(calc(-20%*clamp(-1, var(--progress) * 3 - 2, 1)))
}

.index__features__images__img[data-section="3"] img {
    transform: translateY(calc(-20%*clamp(-1, var(--progress) * 3 - 3, 1)))
}

.index__features__section {
    height: 36rem;
    left: 0;
    left: 50%;
    position: absolute;
    top: 0;
    top: calc(50% - 18rem);
    width: 54rem
}

.index__features__section__block {
    align-items: flex-start;
    display: flex;
    flex: 0 0 54rem;
    flex-flow: column nowrap;
    height: 100%;
    justify-content: center;
    left: 0;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    transition: opacity 0s linear 0s;
    width: 54rem;
    z-index: 0
}

.index__features__section__block__lead {
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1em
}

.index__features__section__block__title {
    font-size: max(4.2rem, 42px);
    letter-spacing: -.01em;
    line-height: 1.119047619em;
    margin-top: max(1.5rem, 15px)
}

.index__features__section__block__link {
    margin-top: 6rem;
    width: 24rem
}

.index__features__main[data-page="0"] .index__features__background__image[data-section="0"],
.index__features__main[data-page="1"] .index__features__background__image[data-section="1"],
.index__features__main[data-page="2"] .index__features__background__image[data-section="2"],
.index__features__main[data-page="3"] .index__features__background__image[data-section="3"] {
    opacity: 1
}

.index__features__main[data-page="0"] .index__features__section__block[data-section="0"],
.index__features__main[data-page="1"] .index__features__section__block[data-section="1"],
.index__features__main[data-page="2"] .index__features__section__block[data-section="2"],
.index__features__main[data-page="3"] .index__features__section__block[data-section="3"] {
    opacity: 1;
    pointer-events: auto;
    transition: opacity .5s linear .1s;
    z-index: 3
}

@keyframes featureSectionSlideInDown {
    0% {
        transform: translateY(25%)
    }

    to {
        transform: translate(0)
    }
}

@keyframes featureSectionSlideOutDown {
    0% {
        transform: translate(0)
    }

    to {
        transform: translateY(-25%)
    }
}

@keyframes featureSectionSlideInUp {
    0% {
        transform: translateY(-25%)
    }

    to {
        transform: translate(0)
    }
}

@keyframes featureSectionSlideOutUp {
    0% {
        transform: translate(0)
    }

    to {
        transform: translateY(25%)
    }
}

@media (max-width:1280px) {
    .index__features .index__features__intro__text {
        margin-top: max(3rem, 30px)
    }
}

.index__achievements__contents {
    padding-top: 20rem
}

.index__achievements__title {
    padding: 0 18rem;
    text-align: center
}

.index__achievements__title .titleset__lead3 {
    margin-left: auto;
    margin-right: auto
}

.index__achievements__body {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    margin-top: max(6rem, 60px);
    padding: 0 18rem;
    position: relative
}

.index__achievements__text {
    flex: 0 0 48rem;
    width: 48rem
}

.index__achievements__text p+p {
    margin-top: max(2.4rem, 24px)
}

.index__achievements__nav {
    flex: 0 0 48rem;
    width: 48rem
}

.index__achievements__clients {
    height: 10rem;
    margin-top: 12rem;
    overflow: hidden;
    position: relative;
    width: 100%
}

.index__achievements__clients__body {
    will-change: transform
}

.index__achievements__clients__body,
.index__achievements__clients__container {
    font-size: 0;
    letter-spacing: 0;
    line-height: 0px;
    position: relative;
    white-space: nowrap
}

.index__achievements__clients__container {
    display: inline-block;
    height: auto;
    width: auto
}

.index__achievements__clients__container.prefix {
    left: 0;
    position: absolute;
    top: 0;
    transform: translateX(-100%)
}

.index__achievements__clients__logo {
    display: inline-block;
    height: 10rem;
    margin-right: 10rem;
    width: -moz-fit-content;
    width: fit-content
}

.index__achievements__clients__logo img {
    display: block;
    height: 100%;
    width: auto
}

@keyframes achievementClientsScroll {
    0% {
        transform: translate(0)
    }

    to {
        transform: translate(-100%)
    }
}

.index__news {
    position: relative
}

@media (min-width:1024px) {
    .index__news {
        transform: translate(0);
        will-change: transform
    }
}

.index__news .section__contents,
.index__news:last-child {
    padding-bottom: 20rem
}

.index__news__title {
    padding: 0 6rem
}

.index__news__main {
    margin: 5rem auto 0;
    position: relative;
    width: calc(100% - 12rem)
}

.index__news__main__link {
    bottom: 0;
    left: 0;
    position: absolute;
    width: 24rem
}

.index__news__main__list {
    margin-left: auto;
    position: relative;
    width: calc(100% - 51rem)
}

@media (max-width:1280px) {
    .index__news__main {
        margin-top: max(3rem, 30px)
    }
}

.index__recruit {
    margin-top: 20rem;
    position: relative;
    z-index: 11
}

@media (min-width:1024px) {
    .index__recruit {
        transform: translate(0);
        will-change: transform
    }
}

.index__recruit__contents {
    background-color: #fff;
    color: #000;
    height: 300lvh;
    position: relative;
    width: 100%
}

.index__recruit__viewport {
    height: 100lvh;
    position: relative;
    width: 100%
}

.index__recruit__visual {
    height: 100%;
    left: 0;
    overflow: hidden;
    position: absolute;
    top: 0;
    width: 100%
}

.index__recruit__visual__img {
    height: 48rem;
    left: 50%;
    overflow: hidden;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 36rem
}

.index__recruit__visual__img img {
    display: block;
    height: 100%;
    left: 0;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    position: absolute;
    top: 0;
    width: 100%
}

.index__recruit__visual__img1 {
    margin-left: 0;
    margin-top: -54rem;
    transform: translate(calc(-50% + 0rem*var(--progress)), calc(-50% + -10rem*var(--progress)))
}

.index__recruit__visual__img1 img {
    transform: translate(calc(0rem*var(--progress)), calc(5rem*var(--progress)))
}

.index__recruit__visual__img2 {
    margin-left: -48rem;
    margin-top: -27rem;
    transform: translate(calc(-50% + -5rem*var(--progress)), calc(-50% + -5rem*var(--progress)))
}

.index__recruit__visual__img2 img {
    left: auto;
    right: 0;
    transform: translate(calc(2.5rem*var(--progress)), calc(2.5rem*var(--progress)));
    width: calc(100% + 5rem)
}

.index__recruit__visual__img3 {
    margin-left: -48rem;
    margin-top: 27rem;
    transform: translate(calc(-50% + -5rem*var(--progress)), calc(-50% + 5rem*var(--progress)))
}

.index__recruit__visual__img3 img {
    left: auto;
    right: 0;
    transform: translate(calc(2.5rem*var(--progress)), calc(-2.5rem*var(--progress)));
    width: calc(100% + 2.5rem)
}

.index__recruit__visual__img4 {
    margin-left: 48rem;
    margin-top: -27rem;
    transform: translate(calc(-50% + 5rem*var(--progress)), calc(-50% + -5rem*var(--progress)))
}

.index__recruit__visual__img4 img {
    left: 0;
    right: auto;
    transform: translate(calc(-2.5rem*var(--progress)), calc(2.5rem*var(--progress)));
    width: calc(100% + 2.5rem)
}

.index__recruit__visual__img6 {
    margin-left: 48rem;
    margin-top: 27rem;
    transform: translate(calc(-50% + 5rem*var(--progress)), calc(-50% + 5rem*var(--progress)))
}

.index__recruit__visual__img6 img {
    left: 0;
    right: auto;
    transform: translate(calc(-2.5rem*var(--progress)), calc(-2.5rem*var(--progress)));
    width: calc(100% + 5rem)
}

.index__recruit__visual__img7 {
    margin-left: 0;
    margin-top: 54rem;
    transform: translate(calc(-50% + 0rem*var(--progress)), calc(-50% + 10rem*var(--progress)))
}

.index__recruit__visual__img7 img {
    transform: translate(calc(0rem*var(--progress)), calc(-5rem*var(--progress)))
}

.index__recruit__visual__mainimg {
    height: calc(100% - (100% - 48rem)*var(--rprogress));
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% - (100% - 36rem)*var(--rprogress))
}

.index__recruit__visual__mainimg img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    width: 100%
}

.index__recruit__main {
    background-color: hsla(0, 0%, 100%, .9);
    height: auto;
    left: 50%;
    min-height: 60rem;
    padding: 4rem 4rem 2.5rem;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: max(40rem, 400px);
    z-index: 1
}

.index__recruit__main__title {
    text-align: center
}

.index__recruit__main__title .titleset__lead2 {
    color: #039
}

.index__recruit__main__title .titleset__title2 {
    color: #000
}

.index__recruit__main__title .titleset__title2.active .titleset__line>span {
    transform: translateY(0);
    transition: transform 1.5s cubic-bezier(.19, 1, .22, 1)
}

.index__recruit__main__lead {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: max(2.5rem, 25px);
    text-align: center
}

.index__recruit__main__text {
    margin-top: max(3rem, 30px)
}

.index__recruit__main__link {
    margin-top: max(4rem, 40px)
}

.index__recruit__main__link .blockbtn:before {
    background-color: rgba(0, 0, 0, .3)
}

.index__whitesection {
    background-color: #fff;
    color: #000;
    height: auto;
    position: relative;
    width: 100%
}

.index__whitesection .titleset__lead1,
.index__whitesection .titleset__lead2,
.index__whitesection .titleset__lead3 {
    background-color: #039;
    color: #039
}

.index__whitesection .titleset__title1,
.index__whitesection .titleset__title2,
.index__whitesection .titleset__title3 {
    color: #000
}

.index__whitesection .layersection__dimmer {
    background-color: hsla(0, 0%, 100%, .5)
}

@media (max-width:1280px) and (min-width:1024px) {

    body:not(.touch) .index__features__section__block__link .blockbtn.clicked .blockbtn__label,
    body:not(.touch) .index__features__section__block__link .blockbtn:hover .blockbtn__label,
    body:not(.touch) .index__news__main__link .blockbtn.clicked .blockbtn__label,
    body:not(.touch) .index__news__main__link .blockbtn:hover .blockbtn__label {
        display: none !important
    }

    body:not(.touch) .index__features__section__block__title br.spbr {
        display: block
    }
}

@media (max-width:1023px) {
    .index__firstview {
        height: auto;
        min-height: 100svh;
        padding-bottom: 0
    }

    .index__firstview:before {
        aspect-ratio: 375/420;
        content: "";
        display: block;
        height: auto;
        left: 0;
        position: relative;
        top: 0;
        width: 100%
    }

    .index__firstview+.divider {
        margin-top: -6rem
    }

    .index__firstview__visual {
        height: calc(100svh - 115px);
        width: 100%
    }

    .index__firstview__visual:after {
        bottom: -1px;
        height: 15rem
    }

    .index__firstview__contents {
        height: 100%;
        left: 0;
        padding: 12rem 1.5rem 11rem;
        position: absolute;
        top: 0;
        width: 100%
    }

    .index__firstview__contents__lead {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        padding-left: 0;
        text-align: right
    }

    .index__firstview__contents__catch {
        margin: auto 0 0;
        padding: 0
    }

    .index__firstview__contents__catch__part1 {
        font-size: max(1.8rem, 18px);
        left: 0;
        letter-spacing: 0;
        line-height: 1em;
        position: relative
    }

    .index__firstview__contents__catch__part2 {
        font-size: max(5rem, 50px);
        letter-spacing: -.05em;
        line-height: .9em;
        margin-top: 2rem
    }

    body.ready .index__firstview__contents__catch__part2 span:first-child>span,
    body.ready .index__firstview__contents__catch__part2 span:nth-child(2)>span {
        transition-delay: .7s
    }

    .index__firstview__contents__catch__part3 {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1.5em;
        margin-top: 1.2rem;
        transform: scale(.9);
        transform-origin: left top;
        width: calc(100% + 1.5rem)
    }

    .index__firstview__contents__arrow {
        bottom: 1.5rem;
        height: .7rem;
        left: 50%;
        position: absolute;
        width: 9rem
    }

    .index__about__title {
        padding-left: 1.5rem;
        padding-right: 1.5rem
    }

    .index__about__lead {
        font-size: max(2.8rem, 28px);
        letter-spacing: -.01em;
        line-height: 1.1785714286em
    }

    .index__about__body p+p {
        margin-top: max(2.3rem, 23px)
    }

    .index__about__section {
        padding-left: 1.5rem;
        padding-right: 1.5rem
    }

    .index__about__section__body {
        width: 100%
    }

    .index__about__section1 {
        margin-top: max(5rem, 50px)
    }

    .index__about__section1 .index__about__section__body {
        margin-right: auto
    }

    .index__about__section1 .index__about__body {
        margin-top: max(2.3rem, 23px);
        padding-bottom: 35rem
    }

    .index__about__section2 {
        min-height: 0;
        padding-bottom: 25rem
    }

    .index__about__section2 .index__about__section__body {
        margin-left: auto
    }

    .index__about__section2 .index__about__body {
        padding-top: 23rem;
        text-align: left
    }

    .index__about__navigation {
        margin-top: 5rem
    }

    .index__about__img1 {
        height: 7.5rem;
        right: 0;
        top: -7.5rem;
        width: 7.5rem
    }

    .index__about__img2 {
        bottom: 0;
        height: 22rem;
        right: 1.5rem;
        top: auto;
        width: 16.5rem
    }

    .index__about__img3 {
        bottom: 22rem;
        height: 7.5rem;
        left: 0;
        width: 7.5rem
    }

    .index__about__img4 {
        height: 22rem;
        left: 1.5rem;
        top: -6rem;
        width: 16.5rem
    }

    .index__about__img5 {
        bottom: 9rem;
        height: 12rem;
        left: 10.5rem;
        top: auto;
        width: 12rem
    }

    .index__about__img6 {
        bottom: 0;
        height: 7.5rem;
        left: 1.5rem;
        top: auto;
        width: 7.5rem
    }

    .index__features__intro {
        padding-left: 1.5rem;
        padding-right: 1.5rem
    }

    .index__features__intro__title {
        height: auto;
        margin-right: auto;
        width: 100%
    }

    .index__features__intro__text {
        height: auto;
        margin-left: auto;
        width: 100%
    }

    .index__features__intro__text p+p {
        margin-top: max(2.3rem, 23px)
    }

    .index__features__main {
        margin-top: 3rem
    }

    .index__features__indicator {
        height: max(5rem, 50px);
        padding: 1.5rem;
        transform: translateY(calc((100lvh - max(5rem, 50px))*var(--progress)))
    }

    .index__features__indicator__label {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        transform: scale(.9);
        transform-origin: left center
    }

    .index__features__indicator__pages {
        white-space: nowrap;
        width: -moz-fit-content;
        width: fit-content
    }

    .index__features__indicator__pages__current {
        flex: 0 0 max(1.5rem, 15px);
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1em;
        width: max(1.5rem, 15px)
    }

    .index__features__indicator__pages__max {
        flex: 0 0 max(4rem, 40px);
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1em;
        padding-left: max(2.5rem, 25px);
        width: max(4rem, 40px)
    }

    .index__features__indicator__pages__max:before {
        left: max(.5rem, 5px);
        width: max(1.5rem, 15px)
    }

    .index__features__background__image[data-section="0"] img {
        -o-object-position: 68% center;
        object-position: 68% center
    }

    .index__features__background__image[data-section="1"] img {
        -o-object-position: 73% center;
        object-position: 73% center
    }

    .index__features__background__image[data-section="2"] img {
        -o-object-position: 50% center;
        object-position: 50% center
    }

    .index__features__background__image[data-section="3"] img {
        -o-object-position: 27% center;
        object-position: 27% center
    }

    .index__features__images {
        gap: 1rem;
        height: 16.5rem;
        left: calc(50% - 8.25rem);
        top: calc(50% - 17.2rem);
        width: 16.5rem
    }

    .index__features__images__img {
        transform: translateY(calc((-300% - 3rem)*(1 - var(--progress))))
    }

    .index__features__section {
        height: max(15.2rem, 152px);
        left: 0;
        position: absolute;
        top: calc(50% + 1.5rem);
        width: 100%
    }

    .index__features__section__block {
        align-items: center;
        flex: 0 0 auto;
        height: 100%;
        justify-content: flex-start;
        width: 100%
    }

    .index__features__section__block__lead {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        text-align: center;
        transform: scale(.9);
        transform-origin: top center
    }

    .index__features__section__block__title {
        font-size: max(2.8rem, 28px);
        letter-spacing: -.01em;
        line-height: 1.1785714286em;
        margin-top: max(.6rem, 6px);
        text-align: center
    }

    .index__features__section__block__link {
        height: 4.4rem;
        margin: auto auto 0;
        width: 16.5rem
    }

    .index__features__section__block__link .blockbtn {
        height: 4.4rem;
        min-height: 4.4rem
    }

    .index__achievements__contents {
        padding-top: 10rem
    }

    .index__achievements__title {
        padding: 0 1.5rem;
        text-align: center
    }

    .index__achievements__body {
        display: block;
        margin-top: max(3.5rem, 35px);
        padding: 0 1.5rem
    }

    .index__achievements__text {
        width: 100%
    }

    .index__achievements__text p+p {
        margin-top: max(2.3rem, 23px)
    }

    .index__achievements__nav {
        margin-top: 5rem;
        width: 100%
    }

    .index__achievements__clients {
        height: 7.5rem;
        margin-top: 6rem
    }

    .index__achievements__clients__logo {
        height: 7.5rem;
        margin-right: 5rem
    }

    .index__news .section__contents,
    .index__news:last-child {
        padding-bottom: 10rem
    }

    .index__news__title {
        padding: 0 1.5rem
    }

    .index__news__main {
        padding-bottom: 8.5rem;
        width: calc(100% - 3rem)
    }

    .index__news__main__link {
        bottom: 0;
        left: calc(50% - 8.25rem);
        position: absolute;
        width: 16.5rem
    }

    .index__news__main__link .blockbtn {
        height: 4.4rem;
        min-height: 4.4rem
    }

    .index__news__main__list {
        margin-left: auto;
        position: relative;
        width: 100%
    }

    .index__recruit {
        margin-top: 10rem
    }

    .index__recruit__contents {
        height: 200lvh
    }

    .index__recruit__visual__img {
        height: 30rem;
        width: 22.5rem
    }

    .index__recruit__visual__img1 {
        margin-left: 0;
        margin-top: -33rem
    }

    .index__recruit__visual__img2 {
        margin-left: -25.5rem;
        margin-top: -16.5rem
    }

    .index__recruit__visual__img3 {
        margin-left: -25.5rem;
        margin-top: 16.5rem
    }

    .index__recruit__visual__img4 {
        margin-left: 25.5rem;
        margin-top: -16.5rem
    }

    .index__recruit__visual__img6 {
        margin-left: 25.5rem;
        margin-top: 16.5rem
    }

    .index__recruit__visual__img7 {
        margin-left: 0;
        margin-top: 33rem
    }

    .index__recruit__visual__mainimg {
        height: calc(100% - (100% - 30rem)*var(--rprogress));
        width: calc(100% - (100% - 22.5rem)*var(--rprogress))
    }

    .index__recruit__main {
        height: auto;
        min-height: 0;
        padding: 2rem 1.5rem .5rem;
        width: max(22.5rem, 225px)
    }

    .index__recruit__main__lead {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        margin-top: max(1.8rem, 18px)
    }

    .index__recruit__main__text {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.7692307692em;
        margin-top: max(1.8rem, 18px)
    }

    .index__recruit__main__text span {
        display: none
    }

    .index__recruit__main__link {
        margin-top: max(3rem, 30px)
    }
}

.message .page__header .page__header__visual__image2 {
    align-self: flex-start
}

.message .page__header .page__header__visual__image3 {
    align-self: flex-start;
    margin-top: 33rem
}

.message__top {
    margin-top: -6rem;
    padding-top: 6rem
}

.message__top__body {
    margin-top: 5rem;
    padding-left: 50%;
    position: relative
}

.message__top__contents p+p {
    margin-top: max(4.8rem, 48px)
}

.message__top__sign {
    margin-top: 18rem
}

.message__top__sign__title {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em
}

.message__top__sign__name {
    margin: 1.2rem 0 .8rem
}

.message__top__sign__name img {
    display: block;
    height: max(5.6rem, 56px);
    width: max(19.8rem, 198px)
}

.message__top__sign__en {
    color: #666;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em
}

.message__top__portrait {
    bottom: 0;
    height: auto;
    position: absolute;
    right: calc(50% + 6rem);
    width: 36rem
}

.message__top__portrait img {
    display: block;
    height: auto;
    width: 100%
}

.message__members {
    margin-top: -6rem;
    padding-top: 6rem
}

.message__members__body {
    margin-top: 5rem
}

.message__members__list {
    align-items: flex-start;
    display: flex;
    flex-flow: row wrap;
    gap: 10rem 3rem;
    height: auto;
    justify-content: flex-start;
    margin-left: auto;
    position: relative;
    width: 96rem
}

.message__members__list+.message__members__list {
    border-top: 1px solid #4d4d4d;
    margin-top: 10rem;
    padding-top: 10rem
}

.message__members__list__item {
    align-items: flex-start;
    display: flex;
    flex: 0 0 21.7rem;
    flex-flow: column nowrap;
    justify-content: flex-start;
    width: 21.7rem
}

.message__members__list__item__portrait {
    aspect-ratio: 217/290;
    height: auto;
    order: 0;
    position: relative;
    width: 100%
}

.message__members__list__item__portrait img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    width: 100%
}

.message__members__list__item__title {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: 1.8rem;
    order: 2
}

.message__members__list__item__name {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.1785714286em;
    margin-top: 2rem;
    order: 1;
    width: 10px
}

.message__members__list__item__en {
    color: #666;
    margin-top: .5rem
}

.message__members__list__item__desc,
.message__members__list__item__en {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em
}

.message__members__list__item__desc {
    color: grey;
    margin-top: 1.5rem;
    order: 3
}

.message__organization {
    margin-top: -6rem;
    padding-top: 6rem
}

.message__organization__body {
    margin-top: 5rem
}

@media (max-width:1023px) {
    .message .page__header .page__header__visual__image2 {
        align-self: flex-start;
        margin: 0 auto 0 0;
        order: 1
    }

    .message .page__header .page__header__visual__image3 {
        align-self: flex-start;
        margin: 0 0 0 auto;
        order: 2
    }

    .message .page__header .page__header__visual__image1 {
        order: 3
    }

    .message__top {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .message__top__body {
        margin-top: 3.5rem;
        padding-left: 0
    }

    .message__top__contents p+p {
        margin-top: max(4.6rem, 46px)
    }

    .message__top__sign {
        margin-top: 5.5rem
    }

    .message__top__sign__title {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.4545454545em
    }

    .message__top__sign__name {
        margin: .8rem 0 .4rem
    }

    .message__top__sign__name img {
        display: block;
        height: max(4.5rem, 45px);
        width: max(15.5rem, 155px)
    }

    .message__top__sign__en {
        color: #666;
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.4545454545em
    }

    .message__top__portrait {
        bottom: auto;
        height: auto;
        margin: 3rem 0 0 auto;
        position: relative;
        right: auto;
        width: 21rem
    }

    .message__members {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .message__members__body {
        margin-top: 3.5rem
    }

    .message__members__list {
        gap: 3rem 1.5rem;
        margin-left: auto;
        width: 100%
    }

    .message__members__list+.message__members__list {
        margin-top: 6rem;
        padding-top: 6rem
    }

    .message__members__list__item {
        flex: 0 0 calc(50% - 0.75rem);
        width: calc(50% - .75rem)
    }

    .message__members__list__item__title {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.4545454545em;
        margin-top: 1.2rem
    }

    .message__members__list__item__name {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        margin-top: 1.5rem
    }

    .message__members__list__item__en {
        color: #666;
        margin-top: .4rem
    }

    .message__members__list__item__desc,
    .message__members__list__item__en {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.4545454545em
    }

    .message__members__list__item__desc {
        margin-top: 1rem
    }

    .message__organization {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .message__organization__body {
        margin-top: 5rem
    }

    body.touch .message__organization__body .diagram__image img {
        display: block;
        height: 40.275rem;
        -o-object-fit: cover;
        object-fit: cover;
        -o-object-position: center center;
        object-position: center center;
        width: 78.2rem
    }

    body.touch .message__organization__body .diagram__scrollviewport__scrollbar {
        bottom: 2.2rem
    }
}

.news .page__header {
    padding-top: 20rem
}

.news .page__header--small .page__header__body {
    padding-left: max(26rem, 260px)
}

.news__index {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-end;
    margin: 10rem auto 0;
    position: relative;
    width: calc(100% - 12rem)
}

.news__index__aside {
    flex: 0 0 36rem;
    padding-right: 3rem;
    width: 36rem
}

.news__index__aside__label {
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1em
}

.news__index__aside__categories__list {
    display: flex;
    flex-flow: row wrap;
    gap: .8rem;
    margin-top: 2rem;
    max-width: 30rem;
    width: 100%
}

.news__index__aside__categories__list__item {
    display: block;
    flex: 0 0 auto;
    height: max(2.2rem, 22px);
    min-width: 10.5rem;
    width: auto
}

.news__index__aside__categories__list__link {
    border: 1px solid #ccc;
    border-radius: 9999px;
    display: block;
    font-size: max(1rem, 10px);
    letter-spacing: 0;
    line-height: 2em;
    padding: 0 1.5rem;
    text-align: center;
    text-decoration: none
}

.news__index__aside__categories__list__link.current {
    background-color: #000;
    border-color: #000;
    color: #fff;
    pointer-events: none
}

.news__index__aside__archive {
    margin-top: 5rem
}

.news__index__aside__archive__list {
    margin-top: 2rem
}

.news__index__aside__archive__list__item:last-child {
    margin-top: 3.4rem
}

.news__index__aside__archive__list__item a,
.news__index__aside__archive__list__link {
    color: #999;
    display: block;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 2.4285714286em;
    text-decoration: underline;
    text-decoration-color: #ccc;
    text-underline-offset: max(.6rem, 6px);
    width: -moz-fit-content;
    width: fit-content
}

body:not(.touch) .news__index__aside__archive__list__item a:hover,
body:not(.touch) .news__index__aside__archive__list__link:hover {
    text-decoration: none
}

.news__index__aside__archive__list__item a[aria-current=page],
.news__index__aside__archive__list__link[aria-current=page] {
    color: #000 !important;
    pointer-events: none;
    text-decoration: none
}

.news__index__main {
    flex: 0 0 96rem;
    width: 96rem
}

.news__index__list__item {
    border-top: 1px solid #ccc
}

.news__index__list__item+.news__index__list__item {
    margin-top: 2.8rem
}

.news__index__list__item__link {
    display: block;
    padding-bottom: 2.1rem;
    padding-top: calc(2.1rem + max(4.5rem, 45px));
    position: relative
}

.news__index__list__item__date {
    left: 0;
    line-height: 2.2em
}

.news__index__list__item__date,
.news__index__list__item__term {
    font-size: max(1rem, 10px);
    letter-spacing: 0;
    position: absolute;
    top: 2.1rem
}

.news__index__list__item__term {
    border: 1px solid #ccc;
    border-radius: 9999px;
    display: block;
    height: max(2.2rem, 22px);
    left: 14rem;
    line-height: 2em;
    min-width: 10.5rem;
    padding: 0 1.5rem;
    text-align: center;
    text-decoration: none;
    width: auto
}

.news__index__list__item__title {
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.2777777778em;
    position: relative;
    transition: padding .5s cubic-bezier(.19, 1, .22, 1) 0s
}

.news__index__list__item__title:after {
    background-color: #039;
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    content: "";
    display: block;
    height: max(.8rem, 8px);
    left: min(-2rem, -20px);
    opacity: 1;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: calc(50% - max(.4rem, 4px));
    width: max(.8rem, 8px)
}

body:not(.touch) .news__index__list__item__link:not(.clicked) .news__index__list__item__title,
body:not(.touch) .news__index__list__item__link:not(:hover) .news__index__list__item__title {
    animation: articlelistItemTextOff .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both
}

body:not(.touch) .news__index__list__item__link.clicked .news__index__list__item__title,
body:not(.touch) .news__index__list__item__link:hover .news__index__list__item__title {
    animation: articlelistItemTextOn 1s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both
}

body:not(.touch) .news__index__list__item__link.clicked .news__index__list__item__title:after,
body:not(.touch) .news__index__list__item__link:hover .news__index__list__item__title:after {
    animation: articlelistItemArrowTick 1s cubic-bezier(.19, 1, .22, 1) .75s infinite normal both;
    left: 0;
    opacity: 1
}

.news__index__pagenation {
    align-items: center;
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    margin-top: 10rem;
    min-height: 6.6rem;
    padding: 0 23rem;
    position: relative;
    width: 100%
}

.news__index__pagenation__next,
.news__index__pagenation__prev {
    position: absolute;
    top: 0;
    width: 21rem
}

.news__index__pagenation__prev {
    left: 0
}

.news__index__pagenation__next {
    right: 0
}

.news__index__pagenation .current,
.news__index__pagenation .first,
.news__index__pagenation .last,
.news__index__pagenation .page,
.news__index__pagenation__page {
    color: #999;
    display: block;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1em;
    padding: max(.7rem, 7px);
    text-decoration: underline;
    text-decoration-color: #ccc;
    text-underline-offset: max(.6rem, 6px)
}

body:not(.touch) .news__index__pagenation .current.clicked,
body:not(.touch) .news__index__pagenation .current:hover,
body:not(.touch) .news__index__pagenation .first.clicked,
body:not(.touch) .news__index__pagenation .first:hover,
body:not(.touch) .news__index__pagenation .last.clicked,
body:not(.touch) .news__index__pagenation .last:hover,
body:not(.touch) .news__index__pagenation .page.clicked,
body:not(.touch) .news__index__pagenation .page:hover,
body:not(.touch) .news__index__pagenation__page.clicked,
body:not(.touch) .news__index__pagenation__page:hover {
    text-decoration: none !important
}

.news__index__pagenation .extend {
    color: #999;
    display: block;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1em;
    padding: max(.2rem, 2px)
}

.news__index__pagenation .current,
.news__index__pagenation__page.current {
    color: #000;
    text-decoration: none
}

.news__article {
    margin: 10rem auto 0;
    width: 84rem
}

.news__article__header {
    padding-top: 6rem;
    position: relative
}

.news__article__header__date {
    left: 0;
    line-height: 2.2em
}

.news__article__header__date,
.news__article__header__term {
    font-size: max(1rem, 10px);
    letter-spacing: 0;
    position: absolute;
    top: 0
}

.news__article__header__term {
    border: 1px solid #ccc;
    border-radius: 9999px;
    display: block;
    height: max(2.2rem, 22px);
    left: max(14rem, 140px);
    line-height: 2em;
    min-width: 9.6rem;
    padding: 0 1.5rem;
    text-align: center;
    text-decoration: none;
    width: auto
}

.news__article__header__title {
    font-size: max(4.2rem, 42px);
    letter-spacing: -.01em;
    line-height: 1.119047619em
}

.news__article__body {
    margin: 10rem auto 0;
    width: 66rem
}

.news__article__backbtn {
    margin: 10rem auto 0;
    width: 30rem
}

@media (max-width:1023px) {
    .news .page__header {
        padding-top: 12rem
    }

    .news .page__header--small .page__header__body {
        padding-left: 0
    }

    .news__index {
        flex-flow: column nowrap;
        margin: 2rem auto 0;
        position: relative;
        width: calc(100% - 3rem)
    }

    .news__index,
    .news__index__aside {
        align-items: flex-start;
        display: flex;
        justify-content: flex-start
    }

    .news__index__aside {
        flex: 0 0 100%;
        flex-flow: row wrap;
        margin-top: 10rem;
        order: 2;
        padding-right: 0;
        width: 100%
    }

    .news__index__aside__label {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1em
    }

    .news__index__aside__categories {
        flex: 0 0 calc(50% - 0.75rem)
    }

    .news__index__aside__categories__list {
        display: flex;
        flex-flow: row wrap;
        gap: .8rem;
        margin-top: 2rem;
        max-width: 30rem;
        width: 100%
    }

    .news__index__aside__categories__list__item {
        display: block;
        flex: 0 0 auto;
        height: max(2.2rem, 22px);
        min-width: 10.5rem;
        width: auto
    }

    .news__index__aside__categories__list__link {
        border: 1px solid #ccc;
        border-radius: 9999px;
        display: block;
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 2em;
        padding: 0 1.5rem;
        text-align: center;
        text-decoration: none
    }

    .news__index__aside__archive {
        flex: 0 0 calc(50% - 0.75rem);
        margin-top: 0
    }

    .news__index__aside__archive__list {
        display: flex;
        flex-flow: row wrap;
        margin-top: 1rem
    }

    .news__index__aside__archive__list__item {
        flex: 0 0 50%;
        width: 50%
    }

    .news__index__aside__archive__list__item:last-child {
        flex: 0 0 100%;
        margin-top: 3.3rem;
        width: 100%
    }

    .news__index__aside__archive__list__item a,
    .news__index__aside__archive__list__link {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 2.5384615385em
    }

    .news__index__main {
        flex: 0 0 100%;
        order: 1;
        width: 100%
    }

    .news__index__list__item {
        border-top: 1px solid #ccc
    }

    .news__index__list__item+.news__index__list__item {
        margin-top: 1.5rem
    }

    .news__index__list__item__link {
        display: block;
        padding-bottom: 1.5rem;
        padding-top: max(4.2rem, 42px);
        position: relative
    }

    .news__index__list__item__date {
        font-size: max(1rem, 10px);
        left: 0;
        letter-spacing: 0;
        line-height: 1em;
        position: absolute;
        top: 1.8rem;
        transform: scale(.9);
        transform-origin: left center
    }

    .news__index__list__item__term {
        border: 1px solid #ccc;
        font-size: max(1rem, 10px);
        height: max(2.2rem, 22px);
        left: 11rem;
        letter-spacing: 0;
        line-height: 2em;
        min-width: max(9rem, 90px);
        padding: 0 max(2rem, 20px);
        position: absolute;
        text-decoration: none;
        top: 1.2rem;
        transform: scale(.8);
        transform-origin: left center
    }

    .news__index__list__item__title {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em
    }

    .news__index__pagenation {
        margin-top: 3.5rem;
        min-height: 0;
        padding: 0 0 8rem
    }

    .news__index__pagenation__next,
    .news__index__pagenation__prev {
        bottom: 0;
        top: auto;
        width: calc(50% - .75rem)
    }

    .news__index__pagenation .current,
    .news__index__pagenation .first,
    .news__index__pagenation .last,
    .news__index__pagenation .page,
    .news__index__pagenation__page {
        color: #999;
        display: block;
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1em;
        padding: max(.6rem, 6px);
        text-decoration: underline;
        text-decoration-color: #ccc;
        text-underline-offset: max(.6rem, 6px)
    }

    body:not(.touch) .news__index__pagenation .current.clicked,
    body:not(.touch) .news__index__pagenation .current:hover,
    body:not(.touch) .news__index__pagenation .first.clicked,
    body:not(.touch) .news__index__pagenation .first:hover,
    body:not(.touch) .news__index__pagenation .last.clicked,
    body:not(.touch) .news__index__pagenation .last:hover,
    body:not(.touch) .news__index__pagenation .page.clicked,
    body:not(.touch) .news__index__pagenation .page:hover,
    body:not(.touch) .news__index__pagenation__page.clicked,
    body:not(.touch) .news__index__pagenation__page:hover {
        text-decoration: none !important
    }

    .news__index__pagenation .extend {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1em;
        padding: max(.2rem, 2px)
    }

    .news__article {
        margin: 5.5rem auto 0;
        width: calc(100% - 3rem)
    }

    .news__article__header {
        padding-top: 3rem
    }

    .news__article__header__date {
        left: 0;
        line-height: 1em;
        top: 0;
        transform: scale(.9);
        transform-origin: left center
    }

    .news__article__header__date,
    .news__article__header__term {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        position: absolute
    }

    .news__article__header__term {
        border: 1px solid #ccc;
        height: max(2.2rem, 22px);
        left: 11rem;
        line-height: 2em;
        min-width: max(9rem, 90px);
        padding: 0 max(2rem, 20px);
        text-decoration: none;
        top: -.6rem;
        transform: scale(.8);
        transform-origin: left center
    }

    .news__article__header__title {
        font-size: max(2.8rem, 28px);
        letter-spacing: -.01em;
        line-height: 1.1785714286em
    }

    .news__article__body {
        margin: 5rem auto 0;
        width: 100%
    }

    .news__article__backbtn {
        margin: 6rem auto 0;
        width: 23rem
    }
}

.notfound__main {
    min-height: 100lvh;
    padding-bottom: 20rem
}

.notfound__main .page__header__description {
    max-width: 100%
}

.notfound__main .page__header__lead {
    margin-left: auto;
    margin-right: auto
}

.notfound__header {
    text-align: center
}

.notfound__back {
    margin: 10rem auto 0;
    width: 27rem
}

.page__breadcrumb {
    margin-top: 20rem;
    padding-bottom: 20rem
}

.page__header {
    margin: 0 auto;
    padding: 30rem 0 0;
    position: relative;
    width: 100%
}

.page__header__bg {
    height: auto;
    left: 0;
    position: absolute;
    top: -30rem;
    width: 100%;
    z-index: 0
}

.page__header__bg:before {
    aspect-ratio: 1440/980;
    content: "";
    display: block;
    height: auto;
    min-height: 100svh;
    width: 100%
}

.page__header__bg img {
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center top;
    object-position: center top;
    top: 0;
    z-index: 0
}

.page__header__bg img,
.page__header__bg:after {
    display: block;
    left: 0;
    position: absolute;
    width: 100%
}

.page__header__bg:after {
    background: linear-gradient(0deg, #000, transparent);
    bottom: 0;
    content: "";
    height: 60rem
}

.page__header__contents {
    padding: 0 6rem
}

.page__header__lead {
    background-color: #05f;
    height: .3rem;
    position: relative;
    width: 3rem
}

.basecolor_wh .page__header__lead {
    background-color: #039
}

.page__header__title {
    font-size: max(10rem, 100px);
    -webkit-hyphens: manual;
    hyphens: manual;
    letter-spacing: -.05em;
    line-height: .9em;
    margin-top: 3rem
}

.page__header__title__line {
    display: block;
    overflow: hidden;
    position: relative
}

.page__header__title__line span {
    display: block;
    position: relative;
    transform: translateY(100%)
}

body.ready .page__header__title__line span {
    transform: translateY(0);
    transition: transform 1.5s cubic-bezier(.19, 1, .22, 1) .5s
}

.page__header__body {
    align-items: flex-end;
    display: flex;
    flex-flow: row nowrap;
    height: auto;
    justify-content: space-between;
    margin-top: 5rem;
    position: relative;
    width: 100%
}

.page__header__description {
    flex: 1 1 auto;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em;
    max-width: 80rem;
    width: auto
}

.page__header__breadcrumb {
    flex: 1 1 auto;
    justify-content: flex-end;
    width: auto
}

.page__header__visual {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    gap: 0 3rem;
    justify-content: flex-start;
    margin-top: 6rem;
    position: relative
}

.page__header__visual__image1,
.page__header__visual__image2,
.page__header__visual__image3 {
    display: block;
    overflow: hidden;
    position: relative
}

.page__header__visual__image1 img,
.page__header__visual__image2 img,
.page__header__visual__image3 img {
    display: block;
    height: auto;
    position: relative;
    width: 100%
}

.page__header__visual__image1 {
    flex: 0 0 66rem;
    height: 88rem;
    width: 66rem
}

.page__header__visual__image2,
.page__header__visual__image3 {
    flex: 0 0 30rem;
    height: 30rem;
    width: 30rem
}

.page__header__visual__image2 img,
.page__header__visual__image3 img {
    transform: translate3d(0, calc(28.57143%*var(--progress)*-1), 0);
    will-change: transform
}

.page__header__navi {
    align-items: stretch;
    flex-flow: row wrap;
    gap: 1rem 1rem;
    margin-top: 10rem;
    width: 100%
}

.page__header__navi,
.page__header__navi__btn {
    display: flex;
    height: auto;
    justify-content: center;
    position: relative
}

.page__header__navi__btn {
    align-items: center;
    border: 1px solid #4d4d4d;
    border-radius: 9999px;
    flex: 0 0 auto;
    flex-flow: row nowrap;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.2857142857em;
    min-height: 4.4rem;
    min-width: 16rem;
    padding: 1rem 4rem 1rem 2rem;
    text-align: center;
    width: -moz-fit-content;
    width: fit-content
}

.page__header__navi__btn:after {
    border-bottom: 1px solid #fff;
    border-right: 1px solid #fff;
    content: "";
    display: block;
    height: .9rem;
    position: absolute;
    right: 1.9rem;
    top: calc(50% - .7rem);
    transform: rotate(45deg);
    width: .9rem
}

body:not(.touch) .page__header__navi__btn:hover:after {
    animation: headerNaviBtnHoverTick 1s cubic-bezier(.19, 1, .22, 1) 0s infinite normal both
}

.basecolor_wh .page__header__navi__btn {
    border-color: #ccc
}

.basecolor_wh .page__header__navi__btn:after {
    border-bottom-color: #000;
    border-right-color: #000
}

@keyframes headerNaviBtnHoverTick {
    0% {
        transform: translateY(.6rem) rotate(45deg)
    }

    75% {
        transform: translate(0) rotate(45deg)
    }

    to {
        transform: translate(0) rotate(45deg)
    }
}

.page__header.page__header--small {
    padding-top: 20rem
}

.page__header.page__header--small .page__header__title {
    font-size: max(7.2rem, 72px);
    letter-spacing: -.05em;
    line-height: 1em;
    margin-top: 3rem
}

.page__header.page__header--small .page__header__body:not(:has(.page__header__description)) {
    height: 0;
    margin-top: 0
}

.page__section {
    height: auto;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    width: calc(100% - 12rem)
}

@media (min-width:1024px) {
    .page__section {
        transform: translateZ(0);
        will-change: transform
    }
}

@media (max-width:1023px) {
    .page__breadcrumb {
        margin: 10rem auto 0;
        padding-bottom: 10rem;
        width: calc(100% - 3rem)
    }

    .page__header {
        padding: 16rem 0 0
    }

    .page__header__bg {
        top: -21rem
    }

    .page__header__bg:before {
        aspect-ratio: auto;
        content: "";
        height: 52rem;
        min-height: 0
    }

    .page__header__bg:after {
        content: "";
        height: 16.6rem
    }

    .page__header__contents {
        padding: 0 1.5rem
    }

    .page__header__lead {
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1em
    }

    .page__header__title {
        font-size: max(5rem, 50px);
        letter-spacing: -.05em;
        line-height: .9em;
        margin-top: max(1.5rem, 15px)
    }

    body.ready .page__header__title__line span {
        transform: translateY(0);
        transition: transform 1.5s cubic-bezier(.19, 1, .22, 1) .7s
    }

    .page__header__body {
        display: block;
        margin-top: 3.5rem
    }

    .page__header__description {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.7692307692em;
        width: 100%
    }

    .page__header__breadcrumb {
        margin: 2rem 0 0 auto
    }

    .page__header__visual {
        align-items: flex-start;
        display: flex;
        flex-flow: column nowrap;
        gap: 1.5rem;
        height: auto;
        justify-content: flex-start;
        margin-top: 1.5rem;
        position: relative;
        width: 100%
    }

    .page__header__visual__image1 {
        aspect-ratio: 660/880;
        flex: 0 0 auto;
        height: auto;
        width: 100%
    }

    .page__header__visual__image2,
    .page__header__visual__image3 {
        aspect-ratio: 1/1;
        flex: 0 0 auto;
        height: auto;
        width: calc(50% - .75rem)
    }

    .page__header__navi {
        gap: .7rem .7rem;
        margin-top: 5rem
    }

    .page__header__navi__btn {
        font-size: max(1.3rem, 13px);
        height: auto;
        letter-spacing: 0;
        line-height: 1.3846153846em;
        min-height: 3.4rem;
        min-width: 11rem;
        padding: 0 3.2rem 0 1.6rem
    }

    .page__header__navi__btn:after {
        height: .7rem;
        right: 1.4rem;
        top: calc(50% - .5rem);
        width: .7rem
    }

    .page__header.page__header--small {
        padding-top: 12rem
    }

    .page__header.page__header--small .page__header__title {
        font-size: max(3.8rem, 38px);
        letter-spacing: -.05em;
        line-height: 1em;
        margin-top: 1.5rem
    }

    .page__header.page__header--small .page__header__body:not(:has(.page__header__description)) {
        height: auto;
        margin-top: 0
    }

    .page__section {
        width: calc(100% - 3rem)
    }
}

.partner .page__header {
    padding-top: 20rem
}

.partner__main {
    margin: 6.6rem 6rem 0 auto;
    position: relative;
    width: 96rem
}

@media (max-width:1023px) {
    .partner .page__header {
        padding-top: 12rem
    }

    .partner__main {
        margin: 2rem auto 0;
        position: relative;
        width: calc(100% - 3rem)
    }
}

.philosophy .page__header .page__header__visual__image2 {
    align-self: flex-start
}

.philosophy .page__header .page__header__visual__image3 {
    align-self: flex-end
}

.philosophy__diagram {
    margin-left: auto;
    margin-right: auto;
    width: calc(100% - 12rem)
}

.philosophy__diagram,
.philosophy__section {
    height: auto;
    position: relative;
    transform: translateZ(0)
}

.philosophy__section {
    margin-top: 16rem;
    padding: 4rem 6rem;
    width: 100%
}

.philosophy__section+.philosophy__section {
    padding-top: 4rem
}

.philosophy__section+.philosophy__section:before {
    background-color: #4d4d4d;
    content: "";
    height: 1px;
    left: 0;
    position: absolute;
    top: -1px;
    width: 100%
}

.philosophy__section__main {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    margin-top: 5rem
}

.philosophy__section__lead {
    color: #666;
    flex: 0 0 36rem;
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.5555555556em;
    padding-right: 6rem;
    width: 36rem
}

.philosophy__section__body {
    flex: 0 0 calc(100% - 66rem);
    width: calc(100% - 66rem)
}

.philosophy__section__body:has(.philosophy__section__block) {
    flex: 0 0 calc(100% - 36rem);
    width: calc(100% - 36rem)
}

.philosophy__section__catch {
    font-size: max(4.2rem, 42px);
    letter-spacing: -.01em;
    line-height: 1.119047619em
}

.philosophy__section__text {
    margin-top: 5rem
}

.philosophy__section__text p+p {
    margin-top: 4.8rem
}

.philosophy__section__block {
    display: flex;
    flex-flow: row nowrap
}

.philosophy__section__block+.philosophy__section__block {
    margin-top: 10rem
}

.philosophy__section__block .philosophy__section__catch {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.1785714286em
}

.philosophy__section__block .philosophy__section__text {
    margin-top: 2.8rem
}

.philosophy__section__block .philosophy__section__text p+p {
    margin-top: 2.4rem
}

.philosophy__section__block__keyword {
    flex: 0 0 30rem;
    width: 30rem
}

.philosophy__section__block__keyword p {
    align-items: center;
    background-color: #fff;
    border-radius: 50%;
    color: #000;
    display: flex;
    flex-flow: row nowrap;
    font-size: 2.1rem;
    height: 20rem;
    justify-content: center;
    line-height: 3.1rem;
    text-align: center;
    width: 20rem
}

.philosophy__section__block__body {
    flex: 0 0 calc(100% - 30rem);
    width: calc(100% - 30rem)
}

@media (max-width:1023px) {
    .philosophy .page__header .page__header__visual__image2 {
        align-self: flex-start
    }

    .philosophy .page__header .page__header__visual__image3 {
        align-self: flex-end
    }

    .philosophy__diagram {
        width: calc(100% - 3rem)
    }

    .philosophy__section {
        margin-top: 7rem;
        padding: 3rem 1.5rem 0
    }

    .philosophy__section+.philosophy__section {
        padding-top: 2rem
    }

    .philosophy__section__main {
        display: block;
        margin-top: 3.5rem
    }

    .philosophy__section__lead {
        color: #666;
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1.3571428571em;
        padding-right: 0;
        text-align: right;
        width: 100%
    }

    .philosophy__section__main:has(.philosophy__section__block) .philosophy__section__lead {
        text-align: center
    }

    .philosophy__section__body {
        margin-top: 2.5rem;
        width: 100%
    }

    .philosophy__section__body:has(.philosophy__section__block) {
        width: 100%
    }

    .philosophy__section__catch {
        font-size: max(2.8rem, 28px);
        letter-spacing: -.01em;
        line-height: 1.1785714286em
    }

    .philosophy__section__text {
        margin-top: 3rem
    }

    .philosophy__section__text p+p {
        margin-top: 2.3rem
    }

    .philosophy__section__block {
        display: block;
        margin-top: 3rem
    }

    .philosophy__section__block+.philosophy__section__block {
        margin-top: 5rem
    }

    .philosophy__section__block .philosophy__section__catch {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        text-align: center
    }

    .philosophy__section__block .philosophy__section__text {
        margin-top: 2.5rem
    }

    .philosophy__section__block .philosophy__section__text p+p {
        margin-top: 2.3rem
    }

    .philosophy__section__block__keyword {
        flex: 0 0 15rem;
        margin: 0 auto;
        width: 15rem
    }

    .philosophy__section__block__keyword p {
        font-size: 1.5rem;
        height: 15rem;
        line-height: 2rem;
        width: 15rem
    }

    .philosophy__section__block__body {
        margin-top: 2.5rem;
        width: 100%
    }
}

.privacy .page__header {
    padding-top: 20rem
}

.privacy__body {
    margin: 10rem 6rem 0 auto;
    position: relative;
    width: 96rem
}

.privacy__section {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-end
}

.privacy__section+.privacy__section {
    border-top: 1px solid #ccc;
    margin-top: 10rem;
    padding-top: 10rem
}

.privacy__section__body {
    flex: 0 0 66rem
}

.privacy__section__body ol:not(:first-child),
.privacy__section__body p:not(:first-child),
.privacy__section__body ul:not(:first-child) {
    margin-top: max(2.4rem, 24px)
}

.privacy__section__body ul {
    list-style: none outside
}

.privacy__section__body ul li {
    padding-left: .75em;
    position: relative
}

.privacy__section__body ul li:before {
    content: "・";
    left: 0;
    position: absolute
}

.privacy__section__body ol {
    counter-reset: list;
    list-style: none outside
}

.privacy__section__body ol li {
    counter-increment: list;
    padding-left: 1.25em;
    position: relative
}

.privacy__section__body ol li:before {
    content: counter(list) ".";
    display: block;
    left: 1.25em;
    min-width: 1em;
    position: absolute;
    text-align: center;
    transform: translateX(calc(-100% - .25em));
    width: -moz-fit-content;
    width: fit-content
}

.privacy__section__body ol li li {
    padding-left: 2em
}

.privacy__section__body ol li li:before {
    content: "（" counter(list) "）";
    display: block;
    left: 2em;
    min-width: 2em;
    position: absolute;
    text-align: center;
    transform: translateX(calc(-100% - .25em));
    width: -moz-fit-content;
    width: fit-content
}

.privacy__section__body ol.parentheses li {
    padding-left: 2em
}

.privacy__section__body ol.parentheses li:before {
    content: "（" counter(list) "）";
    display: block;
    left: 2em;
    min-width: 2em;
    position: absolute;
    text-align: center;
    transform: translateX(calc(-100% - .25em));
    width: -moz-fit-content;
    width: fit-content
}

.privacy__section__body ol.parentheses li li {
    counter-increment: list;
    padding-left: 1.25em;
    position: relative
}

.privacy__section__body ol.parentheses li li:before {
    content: counter(list) ".";
    display: block;
    left: 1.25em;
    min-width: 1em;
    position: absolute;
    text-align: center;
    transform: translateX(calc(-100% - .25em));
    width: -moz-fit-content;
    width: fit-content
}

.privacy__section__body ol.separate>li+li,
.privacy__section__body ul.separate>li+li {
    margin-top: max(2.4rem, 24px)
}

.privacy__section__body .privacy__phonedl {
    align-items: flex-start;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start
}

.privacy__section__body .privacy__phonedl dt {
    flex: 0 0 max(5.8rem, 58px);
    font-style: normal;
    font-weight: 400;
    position: relative;
    width: max(5.8rem, 58px)
}

.privacy__section__body .privacy__phonedl dt:after {
    content: "：";
    position: absolute;
    right: max(.3rem, 3px);
    top: 0
}

.privacy__section__body .privacy__phonedl dd {
    flex: 0 0 calc(100% - max(5.8rem, 58px));
    width: calc(100% - max(5.8rem, 58px))
}

.privacy__section__title {
    flex: 0 0 30rem;
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.5555555556em;
    padding-right: 3rem
}

.privacy__date {
    display: block;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em;
    margin-top: 6rem;
    text-align: right
}

@media (max-width:1023px) {
    .privacy .page__header {
        padding-top: 12rem
    }

    .privacy__body {
        margin: 5rem auto 0;
        width: calc(100% - 3rem)
    }

    .privacy__section {
        display: block
    }

    .privacy__section+.privacy__section {
        margin-top: 5rem;
        padding-top: 5rem
    }

    .privacy__section__body {
        width: 100%
    }

    .privacy__section__body,
    .privacy__section__body ol.separate>li+li,
    .privacy__section__body ol:not(:first-child),
    .privacy__section__body p:not(:first-child),
    .privacy__section__body ul.separate>li+li,
    .privacy__section__body ul:not(:first-child) {
        margin-top: max(2.3rem, 23px)
    }

    .privacy__section__body a {
        word-break: break-all
    }

    .privacy__section__body .privacy__phonedl dt {
        flex: 0 0 max(4rem, 40px);
        width: max(4rem, 40px)
    }

    .privacy__section__body .privacy__phonedl dt:after {
        right: max(.3rem, 3px)
    }

    .privacy__section__body .privacy__phonedl dd {
        flex: 0 0 calc(100% - max(4rem, 40px));
        width: calc(100% - max(4rem, 40px))
    }

    .privacy__section__title {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em;
        padding: 0;
        width: 100%
    }

    .privacy__date {
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.7692307692em;
        margin-top: 6rem;
        text-align: right
    }
}

.products .page__header {
    box-sizing: content-box;
    min-height: calc(100svh - 30rem);
    padding-bottom: 19rem
}

.products .page__header .page__header__contents {
    transform: none !important
}

.products .page__header+.divider {
    margin-top: -19rem
}

.products__strength {
    margin-top: -6rem;
    padding-top: 6rem
}

.products__strength__body {
    margin-top: 6rem
}

.products__strength__section+.products__strength__section {
    margin-top: 20rem
}

.products__strength__section__heading__num {
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1em
}

.products__strength__section__heading__title {
    font-size: max(4.2rem, 42px);
    letter-spacing: -.01em;
    line-height: 1.119047619em;
    margin-top: 1rem
}

.products__strength__section__text {
    margin: 5rem 0 0 auto;
    width: 66rem
}

.products__strength__section__text p+p {
    margin-top: 2.4rem
}

.products__strength__section__figure {
    margin-top: 10rem
}

.products__service {
    margin-top: -6rem;
    padding-top: 6rem
}

.products__service__body {
    margin-top: 6rem
}

.products__service__section+.products__service__section {
    margin-top: 20rem
}

.products__service__section__cover {
    height: 100lvh;
    margin-left: -6rem;
    min-height: 48rem;
    overflow: hidden;
    position: relative;
    width: calc(100% + 12rem)
}

.products__service__section__bg {
    height: 100%;
    left: 0;
    position: relative;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 0
}

.products__service__section__bg img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    width: 100%
}

.products__service__section__heading {
    left: 6rem;
    position: absolute;
    top: 50%;
    transform: translateY(-50%)
}

.products__service__section__heading__num {
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1em
}

.products__service__section__heading__title {
    font-size: max(4.2rem, 42px);
    letter-spacing: -.01em;
    line-height: 1.119047619em;
    margin-top: 1rem
}

.products__service__section__heading__lead {
    margin: 4rem 0 0;
    width: 48rem
}

.products__service__section__body {
    margin: 10rem 0 0 auto;
    position: relative;
    width: 96rem
}

.products__service__section__block {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-end
}

.products__service__section__block+.products__service__section__block {
    border-top: 1px solid #4d4d4d;
    margin-top: 10rem;
    padding-top: 10rem
}

.products__service__section__block__title {
    flex: 0 0 30rem;
    font-size: max(2.8rem, 28px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.1785714286em;
    padding-right: 3rem;
    width: 30rem
}

.products__service__section__block__body {
    flex: 0 0 66rem;
    height: auto;
    width: 66rem
}

.products__service__section__block__figure {
    display: block;
    height: auto;
    position: relative;
    width: 100%
}

.products__service__section__block__figure img {
    display: block;
    height: auto;
    width: 100%
}

.products__service__section__block__figure+* {
    margin-top: 5rem
}

@media (max-width:1023px) {
    .products .page__header__title__line span {
        display: inline;
        transform: none !important;
        transition: none !important
    }

    .products .page__header__title__line {
        display: inline
    }

    .products__strength {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .products__strength__body {
        margin-top: 4rem
    }

    .products__strength__section+.products__strength__section {
        margin-top: 10rem
    }

    .products__strength__section__heading__num {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        transform: scale(.9);
        transform-origin: left center
    }

    .products__strength__section__heading__title {
        font-size: max(2.8rem, 28px);
        letter-spacing: -.01em;
        line-height: 1.1785714286em;
        margin-top: .5rem
    }

    .products__strength__section__text {
        margin: 3.5rem 0 0 auto;
        width: 100%
    }

    .products__strength__section__text p+p {
        margin-top: 2.3rem
    }

    .products__strength__section__figure {
        margin-top: 5rem
    }

    .products__service {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .products__service__body {
        margin-top: 4rem
    }

    .products__service__section+.products__service__section {
        margin-top: 10rem
    }

    .products__service__section__cover {
        height: auto;
        margin-left: -1.5rem;
        min-height: 0;
        overflow: visible;
        position: relative;
        width: calc(100% + 3rem)
    }

    .products__service__section__bg {
        aspect-ratio: 16/9;
        height: auto;
        left: 0;
        overflow: hidden;
        position: relative;
        top: 0;
        width: 100%
    }

    .products__service__section__bg img {
        height: 125%;
        position: relative;
        top: -12.5%
    }

    .products__service__section__heading {
        left: auto;
        margin: 0 auto;
        position: relative;
        top: auto;
        transform: none;
        transform: translateZ(0);
        width: calc(100% - 3rem);
        z-index: 1
    }

    .products__service__section__heading__main {
        left: 0;
        position: absolute;
        top: 0;
        transform: translateY(calc(-100% - 5rem))
    }

    .products__service__section__heading__num {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        transform: scale(.9);
        transform-origin: left center
    }

    .products__service__section__heading__title {
        font-size: max(2.8rem, 28px);
        letter-spacing: -.01em;
        line-height: 1.1785714286em;
        margin-top: .5rem
    }

    .products__service__section__heading__lead {
        margin: 2.5rem 0 0;
        width: 100%
    }

    .products__service__section__body {
        margin: 5rem 0 0 auto;
        width: 100%
    }

    .products__service__section__block {
        display: block
    }

    .products__service__section__block+.products__service__section__block {
        border-top: 1px solid #4d4d4d;
        margin-top: 5rem;
        padding-top: 5rem
    }

    .products__service__section__block__title {
        font-size: max(2.1rem, 21px);
        height: auto;
        letter-spacing: 0;
        line-height: 1.2380952381em;
        margin-bottom: 2.5rem;
        padding-right: 0;
        width: 100%
    }

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

    .products__service__section__block__figure+* {
        margin-top: 2.3rem
    }
}

.recruit__future__section {
    border-top: 1px solid #ccc;
    margin-top: 6rem;
    padding: 4rem 6rem 0;
    position: relative
}

.recruit__future__section+.recruit__future__section {
    margin-top: 20rem
}

.recruit__future__section__title .titleset__lead3 br {
    display: none
}

.recruit__future__section__main {
    display: flex;
    flex-flow: row nowrap;
    gap: 6rem;
    justify-content: flex-start;
    margin-top: 6rem
}

.recruit__future__section__img {
    aspect-ratio: 1;
    flex: 0 0 60rem;
    height: auto;
    width: 60rem
}

.recruit__future__section__img img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    width: 100%
}

.recruit__future__section__body {
    flex: 0 0 66rem;
    width: 66rem
}

.recruit__future__section__lead {
    font-size: max(4.2rem, 42px);
    letter-spacing: 0;
    line-height: 1.2380952381em
}

.recruit__future__section__text {
    margin-top: 5rem
}

.recruit__future__section.layout-left .recruit__future__section__img {
    order: 1
}

.recruit__future__section.layout-left .recruit__future__section__body,
.recruit__future__section.layout-right .recruit__future__section__img {
    order: 2
}

.recruit__future__section.layout-right .recruit__future__section__body {
    align-self: flex-end;
    order: 1
}

.recruit__future__business .recruit__future__section__img {
    order: 1
}

.recruit__future__business .recruit__future__section__body,
.recruit__future__organization .recruit__future__section__img {
    order: 2
}

.recruit__future__organization .recruit__future__section__body {
    align-self: flex-end;
    order: 1
}

.recruit__future__human .recruit__future__section__img {
    order: 1
}

.recruit__future__human .recruit__future__section__body {
    order: 2
}

.recruit__future__back {
    margin: 10rem auto 0;
    width: max(24rem, 240px)
}

@media (max-width:1280px) and (min-width:1024px) {
    .recruit__future__section__lead br {
        display: none
    }
}

@media (max-width:1023px) {
    .recruit__future__section {
        margin-top: 3rem;
        padding: 2rem 1.5rem 0
    }

    .recruit__future__section+.recruit__future__section {
        margin-top: 10rem
    }

    .recruit__future__section__main {
        display: block;
        margin-top: 4rem
    }

    .recruit__future__section__img {
        width: 100%
    }

    .recruit__future__section__body {
        margin-top: 6rem;
        width: 100%
    }

    .recruit__future__section__lead {
        font-size: max(2.8rem, 28px);
        letter-spacing: 0;
        line-height: 1.1785714286em
    }

    .recruit__future__section__text {
        margin-top: 3rem
    }

    .recruit__future__back {
        margin: 6rem auto 0;
        width: max(19.5rem, 195px)
    }
}

.recruit__header.page__header .page__header__description,
.recruit__header.page__header .page__header__lead,
.recruit__header.page__header .page__header__title {
    text-align: center
}

.recruit__header.page__header .page__header__breadcrumb {
    bottom: 0;
    position: absolute;
    right: 0
}

.recruit__header__images__image1,
.recruit__header__images__image2,
.recruit__header__images__image3 {
    height: 16.5rem;
    overflow: hidden;
    position: absolute;
    width: 16.5rem
}

.recruit__header__images__image1 img,
.recruit__header__images__image2 img,
.recruit__header__images__image3 img {
    display: block;
    height: auto;
    transform: translateY(calc(28.57143%*var(--progress)*-1));
    width: 100%
}

.recruit__header__images__image1 {
    bottom: 18rem;
    left: 18rem
}

.recruit__header__images__image2 {
    bottom: 18rem;
    right: 0
}

.recruit__header__images__image3 {
    bottom: 0;
    left: 0
}

.recruit__header__eyecatch {
    height: auto;
    margin-top: 6rem;
    position: relative;
    width: 100%
}

.recruit__header__eyecatch img {
    display: block;
    height: auto;
    width: 100%
}

.recruit__header__main {
    margin-top: 10rem;
    text-align: center
}

.recruit__header__main__title {
    color: #039;
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1em
}

.recruit__header__main__lead {
    font-size: max(4.2rem, 42px);
    letter-spacing: 0;
    line-height: 1.2380952381em;
    margin-top: 1rem
}

.recruit__header__main__body {
    margin-top: 5rem
}

.recruit__header__main__body p+p {
    margin-top: 2.4rem
}

.recruit__info {
    margin-top: -6rem;
    padding-top: 6rem
}

.recruit__info__links {
    align-items: stretch;
    flex-flow: row wrap;
    gap: 3rem;
    margin: 5rem 0 0 auto;
    position: relative;
    width: 81rem
}

.recruit__info__links,
.recruit__info__links__block {
    display: flex;
    height: auto;
    justify-content: flex-start
}

.recruit__info__links__block {
    align-items: flex-start;
    flex: 0 0 calc(50% - 1.5rem);
    flex-flow: column nowrap;
    width: calc(50% - 1.5rem)
}

.recruit__info__links__block .blockbtn {
    flex: 0 0 auto;
    margin-top: auto;
    width: 100%
}

.recruit__info__links__block__title {
    flex: 0 0 auto;
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1em;
    width: 100%
}

.recruit__info__links__block__text {
    flex: 0 0 auto;
    margin-bottom: 3rem;
    margin-top: 3rem;
    width: 100%
}

.recruit__info__news {
    margin: 10rem 0 0;
    padding-left: 51rem;
    position: relative
}

.recruit__info__news__title {
    left: 0;
    position: absolute;
    top: 0
}

.recruit__about {
    margin-top: -6rem;
    padding-top: 6rem
}

.recruit__about__lead {
    margin: 5rem 0 0 auto;
    position: relative;
    width: 66rem
}

.recruit__about__lead p+p {
    margin-top: 2.4rem
}

.recruit__about__main {
    display: flex;
    flex-flow: row wrap;
    gap: 4rem 72rem;
    height: auto;
    justify-content: flex-start;
    margin-top: 10rem;
    min-height: 88rem;
    position: relative;
    width: 100%
}

.recruit__about__main__visual {
    height: 88rem;
    left: calc(50% - 33rem);
    position: absolute;
    top: 0;
    width: 66rem
}

.recruit__about__main__visual img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    width: 100%
}

.recruit__about__main__block {
    flex: 0 0 30rem;
    height: auto;
    width: 30rem
}

.recruit__about__main__block img {
    aspect-ratio: 1/1;
    display: block;
    height: auto;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    width: 100%
}

.recruit__about__main__block .blockbtn {
    margin-top: 3rem
}

.recruit__about__catch {
    margin-top: 20rem;
    text-align: center
}

.recruit__about__catch__line1 {
    color: #000;
    font-size: max(2.1rem, 21px);
    letter-spacing: 0;
    line-height: 1em
}

.recruit__about__catch__line2 {
    color: #039;
    font-size: max(10rem, 100px);
    letter-spacing: -.05em;
    line-height: .9em;
    margin-top: 4rem
}

.recruit__works {
    margin-top: -6rem;
    padding-top: 6rem
}

.recruit__works__lead {
    margin: 5rem 0 0 auto;
    position: relative;
    width: 66rem
}

.recruit__works__lead p+p {
    margin-top: 2.4rem
}

.recruit__works__domains {
    margin: 10rem 0 0 auto;
    padding-left: 36rem;
    position: relative;
    width: 100%
}

.recruit__works__domains__title {
    left: 0;
    padding-right: 3rem;
    position: absolute;
    top: 0;
    width: 36rem
}

.recruit__works__interview {
    margin: 10rem 0 0 auto;
    padding: 0 0 0 36rem;
    position: relative;
    width: 100%
}

.recruit__works__interview__title {
    left: 0;
    padding-right: 3rem;
    position: absolute;
    top: 0;
    width: 36rem
}

.recruit__works__interview__title[id] {
    margin-top: -6rem;
    padding-top: 6rem
}

.recruit__works__interview__main {
    align-items: stretch;
    display: flex;
    flex-flow: row wrap;
    gap: 7rem 3rem;
    justify-content: flex-start;
    position: relative
}

.recruit__works__interview__main__block {
    align-items: flex-start;
    display: flex;
    flex: 0 0 calc(33.3333% - 2rem);
    flex-flow: column nowrap;
    height: auto;
    justify-content: flex-start;
    width: calc(33.3333% - 2rem)
}

.recruit__works__interview__main__block .blockbtn {
    flex: 0 0 auto;
    margin-top: auto;
    width: 100%
}

.recruit__works__interview__main__block__img {
    aspect-ratio: 3/4;
    flex: 0 0 auto;
    height: auto;
    position: relative;
    width: 100%
}

.recruit__works__interview__main__block__img img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    width: 100%
}

.recruit__works__interview__main__block__position {
    flex: 0 0 auto;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: 2.6rem;
    width: 100%
}

.recruit__works__interview__main__block__name {
    flex: 0 0 auto;
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.1785714286em;
    margin-top: 1.2rem;
    width: 100%
}

.recruit__works__interview__main__block__en {
    color: #666;
    flex: 0 0 auto;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-bottom: 3.8rem;
    margin-top: .6rem;
    width: 100%
}

.recruit__story {
    margin-top: -6rem;
    padding-top: 6rem
}

.recruit__story__lead {
    margin: 5rem 0 0 auto;
    position: relative;
    width: 66rem
}

.recruit__story__lead p+p {
    margin-top: 2.4rem
}

.recruit__story__body,
.recruit__story__comingsoon {
    margin: 10rem 0 0 auto;
    width: 96rem
}

.recruit__story__comingsoon {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    gap: 3rem;
    justify-content: flex-start
}

.recruit__story__comingsoon__block {
    align-items: center;
    align-self: flex-start;
    aspect-ratio: 1;
    border: 1px solid #ccc;
    color: #999;
    display: flex;
    flex: calc(50% - 1.5rem);
    flex-flow: row nowrap;
    font-size: max(2.1rem, 21px);
    height: auto;
    justify-content: center;
    letter-spacing: 0;
    line-height: 1em;
    text-align: center;
    width: calc(50% - 1.5rem)
}

.recruit__story__body:has(.recruit__halfblocknav__block:only-child) {
    width: 66rem
}

.recruit__story__body:has(.recruit__halfblocknav__block:only-child) .recruit__halfblocknav__block {
    flex-basis: 46.5rem;
    width: 46.5rem
}

.recruit__halfblocknav {
    align-items: stretch;
    display: flex;
    flex-flow: row wrap;
    gap: 3rem 3rem;
    justify-content: flex-start
}

.recruit__halfblocknav__block {
    align-items: flex-start;
    display: flex;
    flex: 0 0 calc(50% - 1.5rem);
    flex-flow: column nowrap;
    height: auto;
    justify-content: flex-start;
    width: calc(50% - 1.5rem)
}

.recruit__halfblocknav__block .blockbtn {
    flex: 0 0 auto;
    margin-top: auto;
    width: 100%
}

.recruit__halfblocknav__block__img {
    aspect-ratio: 1/1;
    display: block;
    flex: 0 0 auto;
    height: auto;
    position: relative;
    width: 100%
}

.recruit__halfblocknav__block__img img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    width: 100%
}

.recruit__halfblocknav__block__num {
    flex: 0 0 auto;
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1em;
    margin-top: 3rem;
    width: 100%
}

.recruit__halfblocknav__block__title {
    flex: 0 0 auto;
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-bottom: 3rem;
    margin-top: 1.5rem;
    width: 100%
}

@media (max-width:1280px) and (min-width:1024px) {
    body:not(.touch) .recruit__about__main__block .blockbtn__label {
        display: none !important
    }
}

@media (max-width:1023px) {

    .recruit__header.page__header .page__header__lead,
    .recruit__header.page__header .page__header__title {
        text-align: center
    }

    .recruit__header.page__header .page__header__description {
        text-align: left
    }

    .recruit__header.page__header .page__header__breadcrumb {
        bottom: auto;
        position: relative;
        right: auto
    }

    .recruit__header__images {
        margin-top: 1.5rem;
        position: static
    }

    .recruit__header__images__image1 {
        bottom: auto;
        left: auto;
        position: relative;
        right: auto;
        top: auto
    }

    .recruit__header__images__image2 {
        bottom: auto;
        height: 7.5rem;
        left: auto;
        position: absolute;
        right: 0;
        top: -18rem;
        width: 7.5rem
    }

    .recruit__header__images__image3 {
        bottom: auto;
        left: auto;
        margin-top: 49rem;
        position: absolute;
        right: 0;
        top: auto;
        z-index: 1
    }

    .recruit__header__eyecatch {
        aspect-ratio: 345/460;
        height: auto;
        margin-top: 1.5rem;
        position: relative;
        width: 100%
    }

    .recruit__header__eyecatch img {
        display: block;
        height: 100%;
        -o-object-fit: cover;
        object-fit: cover;
        -o-object-position: center;
        object-position: center;
        width: 100%
    }

    .recruit__header__main {
        margin-top: 24rem
    }

    .recruit__header__main__title {
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1em
    }

    .recruit__header__main__lead {
        font-size: max(2.8rem, 28px);
        letter-spacing: 0;
        line-height: 1.1785714286em;
        margin-top: 1rem
    }

    .recruit__header__main__body {
        margin-top: 3rem;
        text-align: left
    }

    .recruit__header__main__body p+p {
        margin-top: 2.3rem
    }

    .recruit__info {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .recruit__info__links {
        display: block;
        height: auto;
        margin: 4rem 0 0 auto;
        width: 100%
    }

    .recruit__info__links__block {
        width: 100%
    }

    .recruit__info__links__block+.recruit__info__links__block {
        margin-top: 5.5rem
    }

    .recruit__info__links__block__title {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1em
    }

    .recruit__info__links__block__text {
        margin-bottom: 2.5rem;
        margin-top: 2.5rem
    }

    .recruit__info__news {
        margin: 6rem 0 0;
        padding-left: 0;
        position: relative
    }

    .recruit__info__news__title {
        left: auto;
        position: relative;
        top: auto
    }

    .recruit__info__news__list {
        margin-top: 3rem
    }

    .recruit__about {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .recruit__about__lead {
        margin: 3.5rem 0 0 auto;
        width: 100%
    }

    .recruit__about__lead p+p {
        margin-top: 2.3rem
    }

    .recruit__about__main {
        display: flex;
        flex-flow: row wrap;
        gap: 1.5rem 1.5rem;
        margin-top: 6rem;
        min-height: 0;
        position: relative;
        width: 100%
    }

    .recruit__about__main__visual {
        aspect-ratio: 345/460;
        height: auto;
        left: auto;
        order: 3;
        position: relative;
        top: auto;
        width: 100%
    }

    .recruit__about__main__visual img {
        display: block;
        height: 100%;
        -o-object-fit: cover;
        object-fit: cover;
        width: 100%
    }

    .recruit__about__main__block {
        flex: 0 0 calc(50% - 0.75rem);
        height: auto;
        width: calc(50% - .75rem)
    }

    .recruit__about__main__block:nth-child(2) {
        order: 1
    }

    .recruit__about__main__block:nth-child(3) {
        order: 2
    }

    .recruit__about__main__block:nth-child(4) {
        margin-top: 1.5rem;
        order: 4
    }

    .recruit__about__main__block:nth-child(5) {
        margin-top: 1.5rem;
        order: 5
    }

    .recruit__about__main__block .blockbtn {
        margin-top: 2rem
    }

    .recruit__about__main__block .blockbtn .blockbtn__label {
        display: none
    }

    .recruit__about__catch {
        margin-top: 8rem;
        text-align: center
    }

    .recruit__about__catch__line1 {
        color: #000;
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1.3571428571em
    }

    .recruit__about__catch__line2 {
        color: #039;
        font-size: max(5rem, 50px);
        letter-spacing: -.05em;
        line-height: .9em;
        margin-top: 1.5rem
    }

    .recruit__works {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .recruit__works__lead {
        margin: 3.5rem 0 0 auto;
        width: 100%
    }

    .recruit__works__lead p+p {
        margin-top: 2.3rem
    }

    .recruit__works__domains {
        margin: 5rem 0 0 auto;
        padding-left: 0
    }

    .recruit__works__domains__main {
        margin-top: 3rem
    }

    .recruit__works__domains__title {
        left: auto;
        padding: 0;
        position: relative;
        top: auto;
        width: 100%
    }

    .recruit__works__interview {
        margin: 5rem 0 0;
        padding: 0;
        position: relative;
        width: 100%
    }

    .recruit__works__interview__title {
        left: auto;
        padding: 0;
        position: relative;
        top: auto;
        width: 100%
    }

    .recruit__works__interview__title[id] {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .recruit__works__interview__main {
        align-items: stretch;
        display: flex;
        flex-flow: row wrap;
        gap: 1rem 1.5rem;
        justify-content: flex-start;
        margin-top: 3rem;
        position: relative
    }

    .recruit__works__interview__main__block {
        align-items: flex-start;
        display: flex;
        flex: 0 0 calc(50% - 0.75rem);
        flex-flow: column nowrap;
        height: auto;
        justify-content: flex-start;
        width: calc(50% - .75rem)
    }

    .recruit__works__interview__main__block .blockbtn {
        flex: 0 0 auto;
        margin-top: auto;
        width: 100%
    }

    .recruit__works__interview__main__block__img {
        flex: 0 0 auto;
        width: 100%
    }

    .recruit__works__interview__main__block__position {
        flex: 0 0 auto;
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.4545454545em;
        margin-top: 1.5rem;
        width: 100%
    }

    .recruit__works__interview__main__block__name {
        flex: 0 0 auto;
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: .8rem;
        width: 100%
    }

    .recruit__works__interview__main__block__en {
        color: #666;
        flex: 0 0 auto;
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1em;
        margin-bottom: 3rem;
        margin-top: .8rem;
        width: 100%
    }

    .recruit__story {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .recruit__story__lead {
        margin: 3.5rem 0 0 auto;
        width: 100%
    }

    .recruit__story__lead p+p {
        margin-top: 2.3rem
    }

    .recruit__story__body {
        margin: 5rem 0 0 auto;
        width: 100%
    }

    .recruit__story__comingsoon {
        display: block;
        margin: 10rem 0 0 auto;
        width: 100%
    }

    .recruit__story__comingsoon__block {
        align-items: center;
        aspect-ratio: 1;
        border: 1px solid #ccc;
        color: #999;
        display: none;
        flex: 100%;
        flex-flow: row nowrap;
        font-size: max(2.1rem, 21px);
        height: auto;
        justify-content: center;
        letter-spacing: 0;
        line-height: 1em;
        text-align: center;
        width: 100%
    }

    .recruit__story__comingsoon__block+.recruit__story__comingsoon__block {
        margin-top: 3rem
    }

    .recruit__story__body:has(.recruit__halfblocknav__block:only-child) {
        width: 100%
    }

    .recruit__story__body:has(.recruit__halfblocknav__block:only-child) .recruit__halfblocknav__block {
        flex-basis: 100%;
        width: 100%
    }

    .recruit__halfblocknav {
        display: block
    }

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

    .recruit__halfblocknav__block+.recruit__halfblocknav__block {
        margin-top: 3rem
    }

    .recruit__halfblocknav__block__num {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: 2rem;
        transform: scale(.9);
        transform-origin: left center
    }

    .recruit__halfblocknav__block__title {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        margin-bottom: 3rem;
        margin-top: .5rem
    }
}

.recruit__interview__header__main {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    gap: 0 6rem;
    justify-content: flex-start;
    margin: 6rem auto 0;
    position: relative
}

.recruit__interview__header__main__img1 {
    align-self: flex-end;
    aspect-ratio: 420/560;
    display: block;
    flex: 0 0 42rem;
    height: auto;
    order: 3;
    width: 42rem
}

.recruit__interview__header__main__img1 img {
    display: block;
    height: 100%;
    width: 100%
}

.recruit__interview__header__main__img2 {
    align-self: flex-start;
    aspect-ratio: 1/1;
    display: block;
    flex: 0 0 16.5rem;
    height: auto;
    order: 1;
    overflow: hidden;
    position: relative;
    width: 16.5rem
}

.recruit__interview__header__main__img2 img {
    display: block;
    height: auto;
    width: 100%
}

.recruit__interview__header__main__body {
    align-self: flex-end;
    flex: 1 1 61.5rem;
    height: auto;
    order: 2;
    width: 61.5rem
}

.recruit__interview__header__main__lead {
    font-size: max(4.2rem, 42px);
    letter-spacing: 0;
    line-height: 1.2380952381em;
    width: -moz-fit-content;
    width: fit-content
}

.recruit__interview__header__main__profile {
    align-items: flex-start;
    display: flex;
    flex-flow: column nowrap;
    height: auto;
    justify-content: flex-start;
    margin: 6rem 0 0 auto;
    width: -moz-fit-content;
    width: fit-content
}

.recruit__interview__header__main__profile__position {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: 2.6rem;
    order: 1
}

.recruit__interview__header__main__profile__name {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.1785714286em;
    margin-top: 1.2rem;
    order: 2
}

.recruit__interview__header__main__profile__en {
    color: #666;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: .6rem;
    order: 3
}

.recruit__interview__header__main.layout-1 .recruit__interview__header__main__img1 {
    align-self: flex-end;
    order: 3
}

.recruit__interview__header__main.layout-1 .recruit__interview__header__main__img2 {
    align-self: flex-start;
    order: 1
}

.recruit__interview__header__main.layout-1 .recruit__interview__header__main__body {
    align-self: flex-end;
    order: 2
}

.recruit__interview__header__main.layout-1 .recruit__interview__header__main__lead {
    margin-left: auto
}

.recruit__interview__header__main.layout-1 .recruit__interview__header__main__profile {
    margin: 6rem 0 0 auto
}

.recruit__interview__header__main.layout-2 .recruit__interview__header__main__img1 {
    align-self: flex-end;
    order: 3
}

.recruit__interview__header__main.layout-2 .recruit__interview__header__main__img2 {
    align-self: flex-start;
    order: 2
}

.recruit__interview__header__main.layout-2 .recruit__interview__header__main__body {
    align-self: flex-end;
    order: 3
}

.recruit__interview__header__main.layout-2 .recruit__interview__header__main__profile {
    margin: 6rem 0 0
}

.recruit__interview__header__main.layout-3 .recruit__interview__header__main__img1 {
    align-self: flex-end;
    order: 1
}

.recruit__interview__header__main.layout-3 .recruit__interview__header__main__img2 {
    align-self: flex-start;
    order: 3
}

.recruit__interview__header__main.layout-3 .recruit__interview__header__main__body {
    align-self: flex-end;
    order: 2
}

.recruit__interview__header__main.layout-3 .recruit__interview__header__main__profile {
    margin: 6rem 0 0
}

.recruit__interview__header__main.layout-4 .recruit__interview__header__main__img1 {
    align-self: flex-end;
    order: 2
}

.recruit__interview__header__main.layout-4 .recruit__interview__header__main__img2 {
    align-self: flex-start;
    order: 3
}

.recruit__interview__header__main.layout-4 .recruit__interview__header__main__body {
    align-self: flex-end;
    order: 1
}

.recruit__interview__header__main.layout-4 .recruit__interview__header__main__lead {
    margin-left: auto
}

.recruit__interview__header__main.layout-4 .recruit__interview__header__main__profile {
    margin: 6rem 0 0 auto
}

.recruit__interview__main {
    margin: 0 auto;
    position: relative;
    transform: translateZ(0);
    width: calc(100% - 12rem);
    z-index: 1
}

.recruit__interview__group {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    margin-top: 20rem
}

.recruit__interview__group__image {
    aspect-ratio: 1/1;
    flex: 0 0 16.5rem;
    height: auto;
    overflow: hidden;
    position: relative;
    width: 16.5rem
}

.recruit__interview__group__image img {
    display: block;
    height: auto;
    width: 100%
}

.recruit__interview__group__main {
    flex: 0 0 66rem;
    height: auto;
    width: 66rem
}

.recruit__interview__group.layout-left .recruit__interview__group__image {
    order: 2
}

.recruit__interview__group.layout-left .recruit__interview__group__main {
    flex: 0 0 74rem;
    margin-right: auto;
    order: 1;
    padding-left: 8rem;
    width: 74rem
}

.recruit__interview__group.layout-right .recruit__interview__group__image {
    order: 1
}

.recruit__interview__group.layout-right .recruit__interview__group__main {
    margin-left: auto;
    order: 2
}

.recruit__interview__group.layout-center .recruit__interview__group__image {
    display: none
}

.recruit__interview__group.layout-center .recruit__interview__group__main {
    margin-left: auto;
    margin-right: auto;
    order: 1
}

.recruit__interview__section {
    position: relative
}

.recruit__interview__section+.recruit__interview__section {
    border-top: 1px solid #ccc;
    margin-top: 10rem;
    padding-top: 10rem
}

.recruit__interview__section__body {
    margin-top: 4.5rem
}

.recruit__interview__section__title {
    font-size: max(4.2rem, 42px);
    letter-spacing: 0;
    line-height: 1.2380952381em
}

.recruit__interview__section__title[id] {
    margin-top: -6rem;
    padding-top: 6rem
}

.recruit__interview__section__lead {
    color: #666;
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.5555555556em;
    position: relative
}

.recruit__interview__section__lead:not(:first-child) {
    margin-top: 9rem
}

.recruit__interview__section__title+.recruit__interview__section__lead {
    margin-top: 4.5rem
}

.recruit__interview__section__lead:before {
    background-color: #666;
    content: "";
    display: block;
    height: 1px;
    left: -8rem;
    position: absolute;
    top: max(1.4rem, 14px);
    width: 6rem
}

.recruit__interview__eyecatch {
    aspect-ratio: 1320/742;
    height: auto;
    margin: 20rem auto;
    overflow: hidden;
    position: relative;
    width: 100%
}

.recruit__interview__eyecatch img {
    display: block;
    height: 140.161725%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    transform: translateY(calc(28.65385%*var(--progress)*-1));
    width: 100%
}

.recruit__interview__schedule {
    background-color: #f2f2f2;
    border-radius: .5rem;
    height: auto;
    margin-top: 20rem;
    padding: 0 3rem 3rem;
    position: relative;
    width: 100%
}

.recruit__interview__schedule__title {
    color: #039;
    font-size: max(2.4rem, 24px);
    letter-spacing: 0;
    line-height: 1.2083333333em;
    padding: 2.6rem 3rem;
    text-align: center
}

.recruit__interview__schedule__body {
    align-items: flex-start;
    background-color: #fff;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    padding: 6rem 18rem
}

.recruit__interview__schedule__profile {
    flex: 0 0 30rem;
    height: auto;
    padding-right: 6rem;
    width: 30rem
}

.recruit__interview__schedule__profile__img {
    height: 21rem;
    overflow: hidden;
    position: relative;
    width: 21rem
}

.recruit__interview__schedule__profile__img img {
    display: block;
    height: 100%;
    -o-object-position: cover;
    object-position: cover;
    -o-object-position: center;
    object-position: center;
    width: 100%
}

.recruit__interview__schedule__profile__position {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: 2.6rem
}

.recruit__interview__schedule__profile__name {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.1785714286em;
    margin-top: 1.2rem
}

.recruit__interview__schedule__profile__en {
    color: #666;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: .6rem
}

.recruit__interview__schedule__main {
    flex: 1 1 60rem;
    height: auto;
    width: 60rem
}

.recruit__interview__schedule__main__line {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start
}

.recruit__interview__schedule__main__line dt {
    display: block;
    flex: 0 0 calc(6rem + max(6rem, 60px));
    font-size: max(1.8rem, 18px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.3333333333em;
    padding: 0 0 0 max(3rem, 30px);
    position: relative;
    width: calc(6rem + max(6rem, 60px))
}

.recruit__interview__schedule__main__line dd {
    display: block;
    flex: 1 1 calc(100% - 6rem - max(6rem, 60px));
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.7142857143em;
    width: calc(100% - 6rem - max(12rem, 120px))
}

.recruit__interview__schedule__main__line+.recruit__interview__schedule__main__line {
    border-top: 1px solid #ccc;
    margin-top: 2.4rem;
    padding-top: 2.4rem
}

.recruit__interview__schedule__main__line.time {
    color: #039
}

.recruit__interview__schedule__main__line.time svg.clock {
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: contain;
    display: block;
    height: max(2rem, 20px);
    left: 0;
    position: absolute;
    top: calc(50% - max(1rem, 10px));
    width: max(2rem, 20px)
}

.recruit__interview__schedule__main__line.time svg.clock path {
    fill: #039;
    stroke-width: 0px
}

.recruit__interview__schedule__main__line.time svg.clock path.hour,
.recruit__interview__schedule__main__line.time svg.clock path.minute {
    transform-origin: center center
}

.recruit__interview__schedule__main__line.time svg.clock path.minute {
    transform: rotate(calc(var(--time-minute)*6deg))
}

.recruit__interview__schedule__main__line.time svg.clock path.hour {
    transform: rotate(calc((var(--time-hour)*60 + var(--time-minute))*.5deg))
}

.recruit__interview__schedule__main__line.time dt {
    position: relative
}

.recruit__interview__back {
    margin: 10rem auto 0;
    width: max(24rem, 240px)
}

@media (max-width:1280px) {

    .recruit__interview__header__main__lead br,
    .recruit__interview__section__title br {
        display: none
    }
}

@media (max-width:1023px) {
    .recruit__interview__header__main {
        flex-flow: row wrap;
        gap: 0 1.5rem;
        margin: 6rem auto 0
    }

    .recruit__interview__header__main__img1 {
        aspect-ratio: 210/280;
        flex: 0 0 21rem;
        order: 2;
        width: 21rem
    }

    .recruit__interview__header__main__img2 {
        flex: 0 0 12rem;
        order: 1;
        width: 12rem
    }

    .recruit__interview__header__main__body {
        align-self: flex-end;
        flex: 1 1 100%;
        height: auto;
        margin-top: 3rem;
        order: 3;
        width: 100%
    }

    .recruit__interview__header__main__lead {
        font-size: max(2.8rem, 28px);
        letter-spacing: 0;
        line-height: 1.1785714286em;
        width: 100%
    }

    .recruit__interview__header__main__profile {
        align-items: flex-start;
        display: flex;
        flex-flow: column nowrap;
        height: auto;
        justify-content: flex-start;
        margin: 2.5rem 0 0 auto;
        width: -moz-fit-content;
        width: fit-content
    }

    .recruit__interview__header__main__profile__position {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.4545454545em;
        margin-top: 0;
        order: 1
    }

    .recruit__interview__header__main__profile__name {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: .8rem;
        order: 2
    }

    .recruit__interview__header__main__profile__en {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: .8rem;
        order: 3
    }

    .recruit__interview__header__main.layout-1 .recruit__interview__header__main__img1 {
        align-self: flex-end;
        order: 2
    }

    .recruit__interview__header__main.layout-1 .recruit__interview__header__main__img2 {
        align-self: flex-start;
        order: 1
    }

    .recruit__interview__header__main.layout-1 .recruit__interview__header__main__body {
        align-self: flex-end;
        order: 3
    }

    .recruit__interview__header__main.layout-1 .recruit__interview__header__main__lead {
        margin-left: auto
    }

    .recruit__interview__header__main.layout-1 .recruit__interview__header__main__profile {
        margin: 2rem 0 0
    }

    .recruit__interview__header__main.layout-2 .recruit__interview__header__main__img1 {
        align-self: flex-end;
        order: 1
    }

    .recruit__interview__header__main.layout-2 .recruit__interview__header__main__img2 {
        align-self: flex-start;
        order: 2
    }

    .recruit__interview__header__main.layout-2 .recruit__interview__header__main__body {
        align-self: flex-end;
        order: 3
    }

    .recruit__interview__header__main.layout-2 .recruit__interview__header__main__profile {
        margin: 2rem 0 0
    }

    .recruit__interview__header__main.layout-3 .recruit__interview__header__main__img1 {
        align-self: flex-end;
        order: 2
    }

    .recruit__interview__header__main.layout-3 .recruit__interview__header__main__img2 {
        align-self: flex-start;
        order: 1
    }

    .recruit__interview__header__main.layout-3 .recruit__interview__header__main__body {
        align-self: flex-end;
        order: 3
    }

    .recruit__interview__header__main.layout-3 .recruit__interview__header__main__profile {
        margin: 2rem 0 0
    }

    .recruit__interview__header__main.layout-4 .recruit__interview__header__main__img1 {
        align-self: flex-end;
        order: 1
    }

    .recruit__interview__header__main.layout-4 .recruit__interview__header__main__img2 {
        align-self: flex-start;
        order: 2
    }

    .recruit__interview__header__main.layout-4 .recruit__interview__header__main__body {
        align-self: flex-end;
        order: 3
    }

    .recruit__interview__header__main.layout-4 .recruit__interview__header__main__lead {
        margin-left: auto
    }

    .recruit__interview__header__main.layout-4 .recruit__interview__header__main__profile {
        margin: 2rem 0 0
    }

    .recruit__interview__main {
        width: 100%
    }

    .recruit__interview__group {
        display: block;
        margin: 10rem auto 0;
        width: calc(100% - 3rem)
    }

    .recruit__interview__group__image {
        width: 12rem
    }

    .recruit__interview__group__main {
        width: 100%
    }

    .recruit__interview__group.layout-left .recruit__interview__group__image {
        margin: 0 0 0 auto
    }

    .recruit__interview__group.layout-left .recruit__interview__group__main {
        margin: 3rem auto 0;
        padding: 0;
        width: 100%
    }

    .recruit__interview__group.layout-right .recruit__interview__group__image {
        margin: 0 auto 0 0
    }

    .recruit__interview__group.layout-right .recruit__interview__group__main {
        margin: 3rem auto 0;
        padding: 0;
        width: 100%
    }

    .recruit__interview__group.layout-center .recruit__interview__group__image {
        display: none
    }

    .recruit__interview__group.layout-center .recruit__interview__group__main {
        margin: 3rem auto 0;
        padding: 0;
        width: 100%
    }

    .recruit__interview__section+.recruit__interview__section {
        border-top: 1px solid #ccc;
        margin-top: 5rem;
        padding-top: 5rem
    }

    .recruit__interview__section__body {
        margin-top: 3.5rem
    }

    .recruit__interview__section__title {
        font-size: max(2.8rem, 28px);
        letter-spacing: 0;
        line-height: 1.1785714286em
    }

    .recruit__interview__section__title[id] {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .recruit__interview__section__lead {
        font-size: max(1.8rem, 18px);
        letter-spacing: 0;
        line-height: 1.2777777778em
    }

    .recruit__interview__section__lead:not(:first-child) {
        margin-top: 5rem
    }

    .recruit__interview__section__title+.recruit__interview__section__lead {
        margin-top: 3.5rem
    }

    .recruit__interview__section__lead br,
    .recruit__interview__section__lead:before {
        display: none
    }

    .recruit__interview__eyecatch {
        aspect-ratio: 3/2;
        margin: 10rem auto
    }

    .recruit__interview__eyecatch img {
        display: block;
        height: 140.161725%;
        -o-object-fit: cover;
        object-fit: cover;
        -o-object-position: center;
        object-position: center;
        transform: translateY(calc(28.65385%*var(--progress)*-1));
        width: 100%
    }

    .recruit__interview__schedule {
        margin: 10rem auto 0;
        padding: 0 1.5rem 1.5rem;
        width: calc(100% - 3rem)
    }

    .recruit__interview__schedule__title {
        font-size: max(1.8rem, 18px);
        letter-spacing: 0;
        line-height: 1.2777777778em;
        padding: 1.8rem 1.5rem
    }

    .recruit__interview__schedule__body {
        align-items: flex-start;
        display: flex;
        flex-flow: column nowrap;
        justify-content: flex-start;
        padding: 4rem 2rem
    }

    .recruit__interview__schedule__profile {
        flex: 0 0 auto;
        height: auto;
        margin: 4rem auto 0;
        order: 2;
        padding-right: 0;
        width: 19.5rem
    }

    .recruit__interview__schedule__profile__img {
        height: 19.5rem;
        width: 19.5rem
    }

    .recruit__interview__schedule__profile__position {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.4545454545em;
        margin-top: 1.6rem
    }

    .recruit__interview__schedule__profile__name {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: .8rem
    }

    .recruit__interview__schedule__profile__en {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: .8rem
    }

    .recruit__interview__schedule__main {
        flex: 1 1 auto;
        height: auto;
        order: 1;
        width: 100%
    }

    .recruit__interview__schedule__main__line dt {
        flex: 0 0 8.5rem;
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.2em;
        padding: 0 0 0 2.6rem;
        width: 8.5rem
    }

    .recruit__interview__schedule__main__line dd {
        flex: 1 1 calc(100% - 8.5rem);
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.3846153846em;
        width: calc(100% - 8.5rem)
    }

    .recruit__interview__schedule__main__line+.recruit__interview__schedule__main__line {
        border-top: 1px solid #ccc;
        margin-top: 2.4rem;
        padding-top: 2.4rem
    }

    .recruit__interview__back {
        margin: 10rem auto 0;
        width: max(19.5rem, 195px)
    }
}

.recruit__message__section {
    border-top: 1px solid #ccc;
    height: auto;
    margin-top: 6rem;
    padding: 4rem 6rem 0;
    width: 100%
}

.recruit__message__section+.recruit__message__section {
    margin-top: 20rem
}

.recruit__message__section__body {
    margin: 6rem 0 0 auto;
    position: relative;
    width: 66rem
}

.recruit__message__section__body p+p {
    margin-top: 2.4rem
}

.recruit__message__section__lead {
    font-size: max(4.2rem, 42px);
    letter-spacing: 0;
    line-height: 1.2380952381em
}

.recruit__message__section__lead+* {
    margin-top: 5rem
}

.recruit__message__fromteam__sign {
    margin-top: 20rem
}

.recruit__message__fromteam__sign__lead {
    font-size: max(1.8rem, 18px);
    letter-spacing: 0;
    line-height: 1.2777777778em
}

.recruit__message__fromteam__sign__position {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: 2.6rem
}

.recruit__message__fromteam__sign__name {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.1785714286em;
    margin-top: 1.2rem
}

.recruit__message__fromteam__sign__en {
    color: #666;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: .6rem
}

.recruit__message__fromteam__portrait {
    bottom: 0;
    height: 48rem;
    left: -42rem;
    position: absolute;
    width: 36rem
}

.recruit__message__fromteam__portrait img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    width: 100%
}

.recruit__message__global__figure {
    margin-top: 10rem
}

.recruit__message__back {
    margin: 10rem auto 0;
    width: max(24rem, 240px)
}

@media (max-width:1280px) and (min-width:1024px) {
    .recruit__message__section__lead br {
        display: none
    }
}

@media (max-width:1023px) {
    .recruit__message__section {
        margin-top: 3rem;
        padding: 2rem 1.5rem 0
    }

    .recruit__message__section+.recruit__message__section {
        margin-top: 10rem
    }

    .recruit__message__section__body {
        margin: 3rem 0 0 auto;
        width: 100%
    }

    .recruit__message__section__body p+p {
        margin-top: 2.3rem
    }

    .recruit__message__section__lead {
        font-size: max(2.8rem, 28px);
        letter-spacing: 0;
        line-height: 1.1785714286em
    }

    .recruit__message__section__lead+* {
        margin-top: 3rem
    }

    .recruit__message__fromteam__sign {
        margin-top: 5rem
    }

    .recruit__message__fromteam__sign__lead {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em
    }

    .recruit__message__fromteam__sign__position {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.4545454545em;
        margin-top: 2rem
    }

    .recruit__message__fromteam__sign__name {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: .8rem
    }

    .recruit__message__fromteam__sign__en {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: .8rem
    }

    .recruit__message__fromteam__portrait {
        bottom: auto;
        height: 28rem;
        left: auto;
        margin: 3rem 0 0 auto;
        position: relative;
        width: 21rem
    }

    .recruit__message__global__figure {
        margin-top: 6rem
    }

    body.touch .recruit__message__global__figure .diagram__image img {
        display: block;
        height: 46.1rem;
        -o-object-fit: cover;
        object-fit: cover;
        -o-object-position: right center;
        object-position: right center;
        width: 90rem
    }

    .recruit__message__back {
        margin: 6rem auto 0;
        width: max(19.5rem, 195px)
    }
}

.recruit__numbers__section {
    border-top: 1px solid #ccc;
    margin-top: 6rem;
    padding: 4rem 6rem 0;
    position: relative
}

.recruit__numbers__section+.recruit__numbers__section {
    margin-top: 20rem
}

.recruit__numbers__section__text {
    margin: 6rem 0 0 auto;
    width: 66rem
}

.recruit__numbers__section__text p+p {
    margin-top: 2.4rem
}

.recruit__numbers__diagram {
    margin-top: 10rem
}

.recruit__numbers__diagram .diagram__body {
    padding: 8rem 6rem;
    position: relative
}

.recruit__numbers__diagram__body {
    align-items: stretch;
    display: flex;
    flex-flow: row wrap;
    gap: 4rem 0;
    justify-content: flex-start;
    margin: 0 auto;
    max-width: max(90rem, 900px);
    width: 100%
}

.recruit__numbers__diagram__hr {
    background-color: #ccc;
    border: none;
    flex: 0 0 100%;
    height: 1px;
    width: 100%
}

.recruit__numbers__diagram__hr.sp {
    display: none
}

.recruit__numbers__block {
    padding-bottom: max(1rem, 10px);
    padding-top: max(4rem, 40px);
    position: relative
}

.recruit__numbers__block:before {
    background-color: #ccc;
    content: "";
    display: block;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 1px
}

.recruit__numbers__block__label {
    align-items: center;
    display: flex;
    flex-flow: row nowrap;
    height: auto;
    justify-content: center;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.recruit__numbers__block__label__icon {
    display: block;
    flex: 0 0 auto;
    height: max(2.6rem, 26px);
    margin-right: max(1.2rem, 12px);
    width: -moz-fit-content;
    width: fit-content
}

.recruit__numbers__block__label__icon img {
    display: block;
    height: max(2.6rem, 26px);
    width: auto
}

.recruit__numbers__block__label__title {
    color: #039;
    flex: 0 0 auto;
    font-size: max(1.8rem, 18px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.4444444444em;
    position: relative;
    text-align: center;
    width: -moz-fit-content;
    width: fit-content
}

.recruit__numbers__block__label__sub {
    bottom: min(-1.8rem, -18px);
    color: #039;
    display: block;
    font-size: max(1rem, 10px);
    height: auto;
    left: 0;
    letter-spacing: 0;
    line-height: 1.5em;
    position: absolute;
    text-align: center;
    width: 100%
}

.recruit__numbers__digit {
    flex: 0 0 25%;
    padding-top: max(5rem, 50px);
    position: relative;
    width: 25%
}

.recruit__numbers__digit__num {
    font-size: 9rem;
    letter-spacing: 0;
    line-height: 9rem;
    text-align: center;
    white-space: nowrap;
    width: 100%
}

.recruit__numbers__digit__unit {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: max(.2rem, 2px);
    text-align: center
}

.recruit__numbers__digit__note {
    font-size: max(1rem, 10px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.5em;
    margin: 0 auto;
    padding-left: 1em;
    position: relative;
    text-align: center;
    width: -moz-fit-content;
    width: fit-content
}

.recruit__numbers__digit__note:before {
    content: "※";
    left: 0;
    position: absolute
}

.recruit__numbers__digit__unit+.recruit__numbers__digit__note {
    margin-top: max(1rem, 10px)
}

.recruit__numbers__global {
    align-items: center;
    display: flex;
    flex: 0 0 100%;
    flex-flow: row nowrap;
    gap: 6rem;
    height: auto;
    justify-content: center;
    width: 100%
}

.recruit__numbers__global__graph {
    border-radius: 50%;
    flex: 0 0 26rem;
    height: 26rem;
    width: 26rem
}

.recruit__numbers__global__graph__labels {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.recruit__numbers__global__graph__labels__label {
    color: #fff;
    font-size: 1.6rem;
    letter-spacing: 0;
    line-height: 1.6rem;
    opacity: 0;
    position: absolute;
    transition: opacity .5s linear 0s
}

.recruit__numbers__global__graph__labels__label[data-label=us] {
    left: 16.6rem;
    top: 12rem;
    transition-delay: .4s
}

.recruit__numbers__global__graph__labels__label[data-label=jp] {
    left: 6rem;
    top: 18rem;
    transition-delay: .55s
}

.recruit__numbers__global__graph__labels__label[data-label=in] {
    left: 3rem;
    top: 8.5rem;
    transition-delay: .7s
}

.recruit__numbers__global__graph__labels__label[data-label=other] {
    color: #000;
    left: 4.5rem;
    top: -1.5rem;
    transition-delay: .85s
}

.recruit__numbers__global__graph__labels__label[data-label=ch] {
    color: #000;
    left: 11rem;
    top: -2.5rem;
    transition-delay: 1s
}

.recruit__numbers__block.active .recruit__numbers__global__graph__labels__label {
    opacity: 1
}

.recruit__numbers__global__detail {
    align-items: flex-start;
    display: flex;
    flex: 0 0 42rem;
    flex-flow: row wrap;
    gap: 2rem 4rem;
    justify-content: flex-start;
    width: 42rem
}

.recruit__numbers__global__detail__item {
    align-items: center;
    display: flex;
    flex: 0 0 19rem;
    flex-flow: row nowrap;
    justify-content: flex-start;
    width: 19rem
}

.recruit__numbers__global__detail__item__country {
    align-items: center;
    display: flex;
    flex: 0 0 9rem;
    flex-flow: row nowrap;
    font-weight: 400;
    gap: 0 1rem;
    height: auto;
    justify-content: flex-start;
    width: 9rem
}

.recruit__numbers__global__detail__item__country__icon {
    display: block;
    flex: 0 0 4rem;
    height: 4rem;
    width: 4rem
}

.recruit__numbers__global__detail__item__country__icon img {
    display: block;
    height: 4rem;
    -o-object-fit: contain;
    object-fit: contain;
    -o-object-position: center;
    object-position: center;
    width: 4rem
}

.recruit__numbers__global__detail__item__country__label {
    flex: 1 1 auto;
    font-size: max(1rem, 10px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.5em;
    width: auto
}

.recruit__numbers__global__detail__item__value {
    align-items: flex-end;
    display: flex;
    flex: 1 1 auto;
    flex-flow: row nowrap;
    gap: 0 .5rem;
    height: auto;
    justify-content: flex-start;
    width: auto
}

.recruit__numbers__global__detail__item__value__num {
    font-size: max(3.2rem, 32px);
    letter-spacing: 0;
    line-height: 1em;
    white-space: nowrap
}

.recruit__numbers__global__detail__item__value__unit {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1em;
    position: relative;
    top: min(-.3rem, -3px);
    white-space: nowrap
}

.recruit__numbers__graph {
    flex: 0 0 37.5%;
    padding-top: max(6rem, 60px);
    position: relative
}

.recruit__numbers__graph__body {
    align-items: center;
    display: flex;
    flex-flow: row nowrap;
    gap: 0 2.5rem;
    justify-content: center
}

.recruit__numbers__graph__graph {
    border-radius: 50%;
    flex: 0 0 13.2rem;
    height: 13.2rem;
    position: relative;
    width: 13.2rem
}

.recruit__numbers__graph__labels {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.recruit__numbers__graph__labels__label {
    color: #fff;
    font-size: 1.6rem;
    letter-spacing: 0;
    line-height: 1.6rem;
    opacity: 0;
    position: absolute;
    transition: opacity .5s linear 0s
}

.recruit__numbers__block.active .recruit__numbers__graph__labels__label {
    opacity: 1
}

.recruit__numbers__achievement--gender .recruit__numbers__graph__labels__label[data-label=male] {
    left: 6.6rem;
    top: 8rem;
    transition-delay: .4s
}

.recruit__numbers__achievement--gender .recruit__numbers__graph__labels__label[data-label=female] {
    color: #000;
    left: 2rem;
    top: -1.8rem;
    transition-delay: .55s
}

.recruit__numbers__achievement--career .recruit__numbers__graph__labels__label[data-label=new] {
    left: 8.2rem;
    top: 5.6rem;
    transition-delay: .4s
}

.recruit__numbers__achievement--career .recruit__numbers__graph__labels__label[data-label=carreer] {
    left: 1.6rem;
    top: 5.6rem;
    transition-delay: .55s
}

.recruit__numbers__achievement--type .recruit__numbers__graph__labels__label[data-label=engineer] {
    left: 3rem;
    top: 8.5rem;
    transition-delay: .4s
}

.recruit__numbers__achievement--type .recruit__numbers__graph__labels__label[data-label=manage] {
    left: 1.1rem;
    top: 3.8rem;
    transition-delay: .55s
}

.recruit__numbers__achievement--type .recruit__numbers__graph__labels__label[data-label=business] {
    color: #000;
    left: 2.5rem;
    top: -2rem;
    transition-delay: .7s
}

.recruit__numbers__achievement--home .recruit__numbers__graph__labels__label[data-label=aichi] {
    left: 7rem;
    top: 7.7rem;
    transition-delay: .4s
}

.recruit__numbers__achievement--home .recruit__numbers__graph__labels__label[data-label=gifu] {
    color: #000;
    left: .5rem;
    top: -1.5rem;
    transition-delay: .55s
}

.recruit__numbers__achievement--home .recruit__numbers__graph__labels__label[data-label=mie] {
    color: #000;
    left: 4.9rem;
    top: -2.5rem;
    transition-delay: .7s
}

.recruit__numbers__graph__detail {
    border-collapse: separate;
    border-spacing: 0 1rem;
    display: table;
    flex: 0 0 auto;
    font-size: 0;
    height: auto;
    letter-spacing: 0;
    line-height: 0px;
    width: -moz-fit-content;
    width: fit-content
}

.recruit__numbers__graph__detail__item {
    display: table-row
}

.recruit__numbers__graph__detail__term {
    display: table-cell;
    font-size: max(1rem, 10px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.5em;
    padding-right: 1rem;
    vertical-align: middle
}

.recruit__numbers__graph__detail__desc {
    display: table-cell;
    vertical-align: baseline;
    white-space: nowrap;
    width: max(9.6rem, 96px)
}

.recruit__numbers__graph__detail__desc__num {
    display: inline-block;
    font-size: max(3.2rem, 32px);
    letter-spacing: 0;
    line-height: 1em;
    white-space: nowrap
}

.recruit__numbers__graph__detail__desc__unit {
    display: inline-block;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1em;
    margin-left: .5rem;
    position: relative;
    top: min(-.4rem, -4px);
    white-space: nowrap
}

.recruit__numbers__graph__note {
    font-size: max(1rem, 10px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.5em;
    margin: 2rem auto 0;
    padding-left: 1em;
    position: relative;
    text-align: center;
    width: -moz-fit-content;
    width: fit-content
}

.recruit__numbers__graph__note:before {
    content: "※";
    left: 0;
    position: absolute
}

.recruit__numbers__digit__unit+.recruit__numbers__graph__note {
    margin-top: max(1rem, 10px)
}

.recruit__numbers__doublegraph {
    flex: 0 0 50%
}

.recruit__numbers__doublegraph__main {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: center
}

.recruit__numbers__doublegraph__block {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    flex-flow: row nowrap;
    gap: 0 1.5rem;
    justify-content: flex-start;
    max-width: 50%;
    padding-right: 1.5rem;
    padding-top: max(3rem, 30px);
    width: auto
}

.recruit__numbers__doublegraph__fig {
    flex: 0 0 10.6rem;
    position: relative
}

.recruit__numbers__doublegraph__fig__label {
    font-size: max(1.6rem, 16px);
    height: auto;
    left: 0;
    letter-spacing: 0;
    line-height: 1.3125em;
    position: absolute;
    text-align: center;
    top: min(-3rem, -30px);
    width: 100%
}

.recruit__numbers__doublegraph__fig__graph {
    border-radius: 50%;
    flex: 0 0 10.6rem;
    height: 10.6rem;
    width: 10.6rem
}

.recruit__numbers__doublegraph__fig__graph__labels {
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.recruit__numbers__doublegraph__fig__graph__labels__label {
    color: #fff;
    font-size: 1.6rem;
    letter-spacing: 0;
    line-height: 1.6rem;
    opacity: 0;
    position: absolute;
    transition: opacity .5s linear 0s
}

.recruit__numbers__block.active .recruit__numbers__doublegraph__fig__graph__labels__label {
    opacity: 1
}

.recruit__numbers__doublegraph__block.male .recruit__numbers__doublegraph__fig__graph__labels__label[data-label=positive] {
    left: 5.3rem;
    top: 6.1rem;
    transition-delay: .4s
}

.recruit__numbers__doublegraph__block.male .recruit__numbers__doublegraph__fig__graph__labels__label[data-label=negative] {
    left: 2.2rem;
    top: 2.2rem;
    transition-delay: .55s
}

.recruit__numbers__doublegraph__block.female .recruit__numbers__doublegraph__fig__graph__labels__label[data-label=negative] {
    left: 4.5rem;
    top: 4.5rem;
    transition-delay: .4s
}

.recruit__numbers__doublegraph__fig__note {
    bottom: -1.5rem;
    font-size: max(1rem, 10px);
    height: auto;
    left: 50%;
    letter-spacing: 0;
    line-height: 1.5em;
    padding-left: 1em;
    position: absolute;
    text-align: center;
    transform: translate(-50%, 100%);
    white-space: nowrap;
    width: -moz-fit-content;
    width: fit-content
}

.recruit__numbers__doublegraph__fig__note:before {
    content: "※";
    left: 0;
    position: absolute
}

.recruit__numbers__doublegraph__detail {
    display: table;
    flex: 0 0 auto;
    font-size: 0;
    height: auto;
    letter-spacing: 0;
    line-height: 0px;
    width: -moz-fit-content;
    width: fit-content
}

.recruit__numbers__doublegraph__detail__item {
    display: table-row
}

.recruit__numbers__doublegraph__detail__item+.recruit__numbers__doublegraph__detail__item {
    margin-top: 1rem
}

.recruit__numbers__doublegraph__detail__term {
    display: table-cell;
    font-size: max(1rem, 10px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.5em;
    padding-right: 1rem;
    vertical-align: middle
}

.recruit__numbers__doublegraph__detail__desc {
    display: table-cell;
    position: relative;
    vertical-align: baseline;
    white-space: nowrap;
    width: max(6.2rem, 62px)
}

.recruit__numbers__doublegraph__detail__desc__num {
    display: inline-block;
    font-size: max(3.2rem, 32px);
    letter-spacing: 0;
    line-height: 1em;
    white-space: nowrap
}

.recruit__numbers__doublegraph__detail__desc__unit {
    display: inline-block;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1em;
    margin-left: .5rem;
    position: relative;
    top: min(-.4rem, -4px);
    white-space: nowrap
}

.recruit__numbers__doublegraph__detail__desc__unit sup {
    position: relative;
    top: min(-1.3rem, -13px)
}

.recruit__numbers__doublegraph__detail__desc__note {
    display: inline-block;
    font-size: max(1rem, 10px);
    letter-spacing: 0;
    line-height: 1em;
    position: absolute;
    right: min(-1rem, -10px);
    top: max(.3rem, 3px)
}

.recruit__numbers__achievement--employees:before,
.recruit__numbers__achievement--gender:before,
.recruit__numbers__achievement--global:before,
.recruit__numbers__achievement--senior:before,
.recruit__numbers__achievement--years:before {
    display: none
}

.recruit__numbers__achievement--type {
    flex: 0 0 50%
}

.recruit__numbers__achievement--childcare:before,
.recruit__numbers__achievement--overtime:before {
    display: none
}

.recruit__numbers__achievement--lunch {
    flex: 0 0 50%
}

.recruit__numbers__achievement--lunch:before {
    display: none
}

.recruit__numbers__achievement--home {
    flex: 0 0 50%
}

.recruit__numbers__back {
    margin: 10rem auto 0;
    width: max(24rem, 240px)
}

.recruit__numbers__block__graph {
    position: relative
}

.recruit__numbers__piechart {
    border-radius: 50%;
    display: block;
    height: 100%;
    overflow: hidden;
    position: relative;
    transform: rotate(-90deg);
    width: 100%
}

.recruit__numbers__piechart__arc {
    cx: 50%;
    cy: 50%;
    fill: transparent;
    r: 100px;
    stroke-width: 200px;
    stroke-dasharray: 0 0 0 628.3px;
    transition: stroke-dasharray 2s cubic-bezier(.19, 1, .22, 1) 0s
}

.recruit__numbers__piechart__arc:first-of-type {
    stroke: #8498c8
}

.recruit__numbers__piechart__arc:nth-of-type(2) {
    stroke: #9dacd3
}

.recruit__numbers__piechart__arc:nth-of-type(3) {
    stroke: #b5c1dd
}

.recruit__numbers__piechart__arc:nth-of-type(4) {
    stroke: #ced6e9
}

.recruit__numbers__piechart__arc:nth-of-type(5) {
    stroke: #e6eaf4
}

.recruit__numbers__piechart__arc:only-of-type {
    stroke: #b5c1dd
}

.recruit__numbers__piechart:not(:has(.recruit__numbers__piechart__arc:nth-of-type(3))) .recruit__numbers__piechart__arc:nth-of-type(2) {
    stroke: #b5c1dd
}

.recruit__numbers__piechart:not(:has(.recruit__numbers__piechart__arc:nth-of-type(4))) .recruit__numbers__piechart__arc:nth-of-type(2) {
    stroke: #b5c1dd
}

.recruit__numbers__piechart:not(:has(.recruit__numbers__piechart__arc:nth-of-type(4))) .recruit__numbers__piechart__arc:nth-of-type(3) {
    stroke: #e6eaf4
}

.recruit__numbers__block.active .recruit__numbers__piechart__arc {
    stroke-dasharray: 0, calc(628.3px*var(--start)), calc(628.3px*var(--length)), calc(628.3px*(1 - var(--start) - var(--length)))
}

.recruit__numbers__piechart__line {
    stroke-width: 1px;
    stroke: #fff;
    transform: translateY(50%) rotate(-90deg);
    transform-origin: center top;
    transition: transform 2s cubic-bezier(.19, 1, .22, 1) 0s
}

.recruit__numbers__piechart__arc:only-of-type~.recruit__numbers__piechart__line {
    display: none
}

.recruit__numbers__block.active .recruit__numbers__piechart__line {
    transform: translateY(50%) rotate(calc(1turn*var(--position) - 90deg))
}

.recruit__digit {
    overflow: hidden;
    position: relative
}

@media (max-width:1023px) {
    .recruit__numbers__section {
        margin-top: 3rem;
        padding: 2rem 1.5rem 0
    }

    .recruit__numbers__section+.recruit__numbers__section {
        margin-top: 10rem
    }

    .recruit__numbers__section__text {
        margin: 3.5rem 0 0 auto;
        width: 100%
    }

    .recruit__numbers__section__text p+p {
        margin-top: 2.3rem
    }

    .recruit__numbers__diagram {
        margin-top: 5rem
    }

    .recruit__numbers__diagram .diagram__body {
        padding: 4rem 2rem;
        position: relative
    }

    .recruit__numbers__diagram__body {
        gap: 2rem 0;
        max-width: 100%;
        width: 100%
    }

    .recruit__numbers__diagram__hr.sp {
        display: block
    }

    .recruit__numbers__diagram__hr.pc {
        display: none
    }

    .recruit__numbers__block {
        padding-bottom: 0;
        padding-top: max(3.5rem, 35px)
    }

    .recruit__numbers__block__label__icon {
        height: max(1.8rem, 18px);
        margin-right: max(.5rem, 5px)
    }

    .recruit__numbers__block__label__icon img {
        height: max(1.8rem, 18px)
    }

    .recruit__numbers__block__label__title {
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1.1428571429em;
        padding-bottom: max(.1rem, 1px);
        padding-top: max(.1rem, 1px)
    }

    .recruit__numbers__block__label__sub {
        bottom: min(-1rem, -10px);
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        transform: scale(.8)
    }

    .recruit__numbers__digit {
        flex: 0 0 50%;
        padding-top: max(3.5rem, 35px);
        position: relative
    }

    .recruit__numbers__digit__num {
        font-size: max(5.6rem, 56px);
        letter-spacing: 0;
        line-height: 1em
    }

    .recruit__numbers__digit__unit {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.3636363636em;
        margin-top: max(.2rem, 2px)
    }

    .recruit__numbers__digit__note {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1.5em;
        padding-left: 1em;
        transform: scale(.8)
    }

    .recruit__numbers__digit__unit+.recruit__numbers__digit__note {
        margin-top: max(.5rem, 5px)
    }

    .recruit__numbers__global {
        display: block;
        flex: 0 0 100%;
        height: auto;
        padding-top: 6rem;
        width: 100%
    }

    .recruit__numbers__global__graph {
        border-radius: 50%;
        height: 19.5rem;
        margin: 0 auto;
        width: 19.5rem
    }

    .recruit__numbers__global__graph__labels__label {
        font-size: max(1.2rem, 12px);
        letter-spacing: 0;
        line-height: 1em
    }

    .recruit__numbers__global__graph__labels__label[data-label=us] {
        left: 12.5rem;
        top: 9rem
    }

    .recruit__numbers__global__graph__labels__label[data-label=jp] {
        left: 5rem;
        top: 13.5rem
    }

    .recruit__numbers__global__graph__labels__label[data-label=in] {
        left: 2.5rem;
        top: 6.5rem
    }

    .recruit__numbers__global__graph__labels__label[data-label=other] {
        left: 3rem;
        top: -1rem
    }

    .recruit__numbers__global__graph__labels__label[data-label=ch] {
        left: 8.5rem;
        top: -2rem
    }

    .recruit__numbers__global__detail {
        align-items: flex-start;
        display: flex;
        flex-flow: row wrap;
        gap: 1.5rem 1rem;
        justify-content: flex-start;
        margin: 2rem auto 0;
        width: 24.5rem
    }

    .recruit__numbers__global__detail__item {
        flex: 0 0 11.5rem;
        position: relative;
        width: 11.5rem
    }

    .recruit__numbers__global__detail__item__country {
        display: block;
        flex: 0 0 3rem;
        height: auto;
        width: 3rem
    }

    .recruit__numbers__global__detail__item__country__icon,
    .recruit__numbers__global__detail__item__country__icon img {
        height: 3rem;
        width: 3rem
    }

    .recruit__numbers__global__detail__item__country__label {
        font-size: max(1rem, 10px);
        left: 4rem;
        letter-spacing: 0;
        line-height: 1em;
        position: absolute;
        top: -.1rem;
        transform: scale(.8);
        transform-origin: left top
    }

    .recruit__numbers__global__detail__item__value {
        align-items: flex-end;
        display: flex;
        flex: 1 1 auto;
        flex-flow: row nowrap;
        gap: 0 .5rem;
        height: auto;
        justify-content: flex-start;
        padding: .8rem 0 0 1rem;
        width: auto
    }

    .recruit__numbers__global__detail__item__value__num {
        font-size: max(2.4rem, 24px);
        letter-spacing: 0;
        line-height: 1em
    }

    .recruit__numbers__global__detail__item__value__unit {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1em;
        top: min(-.3rem, -3px)
    }

    .recruit__numbers__graph {
        flex: 0 0 100%;
        padding-top: max(5rem, 50px);
        position: relative
    }

    .recruit__numbers__graph__body {
        gap: 0 1.5rem
    }

    .recruit__numbers__graph__graph {
        flex: 0 0 9.8rem;
        height: 9.8rem;
        width: 9.8rem
    }

    .recruit__numbers__graph__labels__label {
        font-size: max(1.2rem, 12px);
        letter-spacing: 0;
        line-height: 1em
    }

    .recruit__numbers__achievement--gender .recruit__numbers__graph__labels__label[data-label=male] {
        left: 5.2rem;
        top: 6rem
    }

    .recruit__numbers__achievement--gender .recruit__numbers__graph__labels__label[data-label=female] {
        left: 1.5rem;
        top: -1.5rem
    }

    .recruit__numbers__achievement--career .recruit__numbers__graph__labels__label[data-label=new] {
        left: 6.1rem;
        top: 4.4rem
    }

    .recruit__numbers__achievement--career .recruit__numbers__graph__labels__label[data-label=carreer] {
        left: 1.3rem;
        top: 4.4rem
    }

    .recruit__numbers__achievement--type .recruit__numbers__graph__labels__label[data-label=engineer] {
        left: 2.5rem;
        top: 6.5rem
    }

    .recruit__numbers__achievement--type .recruit__numbers__graph__labels__label[data-label=manage] {
        left: .9rem;
        top: 2.9rem
    }

    .recruit__numbers__achievement--type .recruit__numbers__graph__labels__label[data-label=business] {
        left: 2.3rem;
        top: -1.8rem
    }

    .recruit__numbers__achievement--home .recruit__numbers__graph__labels__label[data-label=aichi] {
        left: 5.2rem;
        top: 6rem
    }

    .recruit__numbers__achievement--home .recruit__numbers__graph__labels__label[data-label=gifu] {
        left: .2rem;
        top: -1rem
    }

    .recruit__numbers__achievement--home .recruit__numbers__graph__labels__label[data-label=mie] {
        left: 3.6rem;
        top: -1.8rem
    }

    .recruit__numbers__graph__detail {
        border-collapse: separate;
        border-spacing: 0 1rem;
        display: table;
        flex: 0 0 auto;
        height: auto;
        width: -moz-fit-content;
        width: fit-content
    }

    .recruit__numbers__graph__detail__item {
        display: table-row
    }

    .recruit__numbers__graph__detail__term {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        padding-right: 1rem
    }

    .recruit__numbers__graph__detail__desc {
        width: max(7rem, 70px)
    }

    .recruit__numbers__graph__detail__desc__num {
        font-size: max(2.4rem, 24px);
        letter-spacing: 0;
        line-height: 1em
    }

    .recruit__numbers__graph__detail__desc__unit {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1em;
        margin-left: .5rem;
        top: min(-.4rem, -4px)
    }

    .recruit__numbers__graph__note {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        margin: 1rem auto 0;
        transform: scale(.8);
        transform-origin: center top
    }

    .recruit__numbers__digit__unit+.recruit__numbers__graph__note {
        margin-top: max(1rem, 10px)
    }

    .recruit__numbers__doublegraph {
        flex: 0 0 100%
    }

    .recruit__numbers__doublegraph__block {
        display: flex;
        flex: 0 0 50%;
        gap: 0 1rem;
        max-width: 50%;
        padding-right: 0;
        padding-top: max(2rem, 20px);
        width: auto
    }

    .recruit__numbers__doublegraph__block:has(.recruit__numbers__doublegraph__fig__note) {
        padding-bottom: max(2rem, 20px)
    }

    .recruit__numbers__doublegraph__fig {
        flex: 0 0 7.8rem;
        position: relative
    }

    .recruit__numbers__doublegraph__fig__label {
        font-size: max(1.2rem, 12px);
        height: auto;
        left: 0;
        letter-spacing: 0;
        line-height: 1em;
        position: absolute;
        text-align: center;
        top: -2rem;
        width: 100%
    }

    .recruit__numbers__doublegraph__fig__graph {
        border-radius: 50%;
        flex: 0 0 7.8rem;
        height: 7.8rem;
        width: 7.8rem
    }

    .recruit__numbers__doublegraph__fig__graph__labels {
        height: 100%;
        left: 0;
        position: absolute;
        top: 0;
        width: 100%
    }

    .recruit__numbers__doublegraph__fig__graph__labels__label {
        font-size: max(1.2rem, 12px);
        letter-spacing: 0;
        line-height: 1em
    }

    .recruit__numbers__doublegraph__block.male .recruit__numbers__doublegraph__fig__graph__labels__label[data-label=positive] {
        left: 3.8rem;
        top: 4.6rem
    }

    .recruit__numbers__doublegraph__block.male .recruit__numbers__doublegraph__fig__graph__labels__label[data-label=negative] {
        left: 1.8rem;
        top: 1.8rem
    }

    .recruit__numbers__doublegraph__block.female .recruit__numbers__doublegraph__fig__graph__labels__label[data-label=negative] {
        left: 3.3rem;
        top: 3.3rem
    }

    .recruit__numbers__doublegraph__fig__note {
        bottom: -1rem;
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        transform: translate(-50%, 100%) scale(.8)
    }

    .recruit__numbers__doublegraph__detail {
        display: table;
        flex: 0 0 auto;
        height: auto;
        width: -moz-fit-content;
        width: fit-content
    }

    .recruit__numbers__doublegraph__detail__item {
        display: table-row;
        position: relative
    }

    .recruit__numbers__doublegraph__detail__item+.recruit__numbers__doublegraph__detail__item {
        margin-top: 1rem
    }

    .recruit__numbers__doublegraph__detail__term {
        display: table-cell;
        font-size: max(1rem, 10px);
        font-weight: 400;
        left: 0;
        letter-spacing: 0;
        line-height: 1.5em;
        padding-right: 1rem;
        position: absolute;
        top: min(-1.5rem, -15px);
        vertical-align: middle
    }

    .recruit__numbers__doublegraph__detail__desc {
        display: table-cell;
        position: relative;
        vertical-align: baseline;
        white-space: nowrap;
        width: max(4.5rem, 45px)
    }

    .recruit__numbers__doublegraph__detail__desc__num {
        display: inline-block;
        font-size: max(2.4rem, 24px);
        letter-spacing: 0;
        line-height: 1em;
        white-space: nowrap
    }

    .recruit__numbers__doublegraph__detail__desc__unit {
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        margin-left: .3rem;
        top: min(-.4rem, -4px)
    }

    .recruit__numbers__doublegraph__detail__desc__unit sup {
        position: relative;
        top: min(-1.3rem, -13px)
    }

    .recruit__numbers__doublegraph__detail__desc__note {
        display: inline-block;
        font-size: max(1rem, 10px);
        letter-spacing: 0;
        line-height: 1em;
        position: absolute;
        right: min(-1rem, -10px);
        top: max(.3rem, 3px)
    }

    .recruit__numbers__achievement--career:before,
    .recruit__numbers__achievement--employees:before,
    .recruit__numbers__achievement--gender:before,
    .recruit__numbers__achievement--global:before,
    .recruit__numbers__achievement--location:before,
    .recruit__numbers__achievement--longest:before,
    .recruit__numbers__achievement--service:before,
    .recruit__numbers__achievement--years:before {
        display: none
    }

    .recruit__numbers__achievement--senior:before {
        display: block
    }

    .recruit__numbers__achievement--senior .recruit__numbers__block__label {
        margin-top: min(-.8rem, -8px)
    }

    .recruit__numbers__achievement--settledown {
        flex: 0 0 100%;
        width: 100%
    }

    .recruit__numbers__achievement--settledown:before {
        display: none
    }

    .recruit__numbers__achievement--type {
        flex: 0 0 100%;
        width: 100%
    }

    .recruit__numbers__achievement--overtime:before,
    .recruit__numbers__achievement--type:before {
        display: none
    }

    .recruit__numbers__achievement--training .recruit__numbers__block__label {
        margin-top: min(-.8rem, -8px)
    }

    .recruit__numbers__achievement--holidays:before {
        display: none
    }

    .recruit__numbers__achievement--days .recruit__numbers__block__label {
        margin-top: min(-.8rem, -8px)
    }

    .recruit__numbers__achievement--back:before,
    .recruit__numbers__achievement--childcare:before {
        display: none
    }

    .recruit__numbers__achievement--back .recruit__numbers__block__label,
    .recruit__numbers__achievement--travel .recruit__numbers__block__label {
        margin-top: min(-.8rem, -8px)
    }

    .recruit__numbers__achievement--lunch {
        flex: 0 0 100%
    }

    .recruit__numbers__achievement--lunch:before {
        display: none
    }

    .recruit__numbers__achievement--home {
        flex: 0 0 100%
    }

    .recruit__numbers__achievement--home:before {
        display: none
    }

    .recruit__numbers__back {
        margin: 6rem auto 0;
        width: max(19.5rem, 195px)
    }
}

.recruit__overview__section {
    border-top: 1px solid #ccc;
    height: auto;
    margin-top: 6rem;
    padding: 4rem 6rem 0;
    width: 100%
}

.recruit__overview__section+.recruit__overview__section {
    margin-top: 20rem
}

.recruit__overview__positions {
    margin: 6rem 0 0 auto;
    position: relative;
    width: 96rem
}

.recruit__overview__positions__section {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start
}

.recruit__overview__positions__section+.recruit__overview__positions__section {
    border-top: 1px solid #ccc;
    margin-top: 10rem;
    padding-top: 10rem
}

.recruit__overview__positions__title {
    flex: 0 0 30rem;
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    padding: 0 3rem 0 0;
    width: 30rem
}

.recruit__overview__positions__body {
    flex: 0 0 66rem;
    width: 66rem
}

.recruit__overview__positions__item dt {
    font-size: max(1.8rem, 18px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.5555555556em
}

.recruit__overview__positions__item dd {
    margin-top: 1rem
}

.recruit__overview__positions__item dd ul {
    list-style: none outside
}

.recruit__overview__positions__item dd ul li {
    padding-left: 1em;
    position: relative
}

.recruit__overview__positions__item dd ul li:before {
    content: "・";
    left: 0;
    position: absolute
}

.recruit__overview__positions__item+.recruit__overview__positions__item {
    margin-top: 4.8rem
}

.recruit__overview__figure,
.recruit__overview__figure+* {
    margin-top: 10rem
}

.recruit__overview__detail {
    margin: 6rem 0 0 auto;
    position: relative;
    width: 96rem
}

.recruit__overview__detail__title {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.3571428571em
}

.recruit__overview__detail__body {
    margin-top: 4rem
}

.recruit__overview__detail__item {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start
}

.recruit__overview__detail__item dt {
    flex: 0 0 30rem;
    font-size: max(1.8rem, 18px);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.3333333333em;
    padding-right: 3rem;
    width: 30rem
}

.recruit__overview__detail__item dd {
    flex: 1 1 66rem;
    width: 66rem
}

.recruit__overview__detail__item+.recruit__overview__detail__item {
    border-top: 1px solid #ccc;
    margin-top: 2.7rem;
    padding-top: 2.7rem
}

.recruit__overview__entry {
    margin: 10rem 0 0 auto;
    position: relative;
    width: 96rem
}

.recruit__overview__entry__title {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.3571428571em
}

.recruit__overview__entry__body {
    align-items: flex-start;
    display: flex;
    flex-flow: row wrap;
    gap: 2rem;
    justify-content: flex-start;
    margin-top: 4rem;
    width: 60rem
}

.recruit__overview__entry__entrybtn {
    flex: 0 0 100%;
    width: 100%
}

.recruit__overview__entry__entrybtn .blockbtn__title {
    padding-left: 0;
    padding-right: 0
}

.recruit__overview__entry__btn {
    flex: 0 0 calc(50% - 1rem);
    width: calc(50% - 1rem)
}

.recruit__overview__entry__btn .blockbtn__title img {
    display: block;
    height: max(2rem, 20px);
    margin: 0 auto;
    width: auto
}

.recruit__overview__back {
    margin: 10rem auto 0;
    width: max(24rem, 240px)
}

.recruit__overview__jobs {
    margin: 6rem 0 0 auto;
    position: relative;
    width: 96rem
}

.recruit__overview__jobs__section+.recruit__overview__jobs__section {
    border-top: 1px solid #ccc;
    margin-top: 10rem;
    padding-top: 10rem
}

.recruit__overview__jobs__section__title {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.3571428571em
}

.recruit__overview__jobs__section__body {
    margin-top: 2rem
}

.recruit__overview__jobs__block+.recruit__overview__jobs__block {
    border-top: 1px solid #ccc
}

.recruit__overview__jobs__block__title {
    cursor: pointer;
    font-size: max(1.8rem, 18px);
    height: auto;
    letter-spacing: 0;
    line-height: 1.2777777778em;
    padding: 2rem 5rem 2rem 0;
    position: relative;
    width: 100%
}

.recruit__overview__jobs__block__title span {
    display: inline-block;
    font-size: max(1.3rem, 13px);
    letter-spacing: 0;
    line-height: 1.7692307692em
}

.recruit__overview__jobs__block__title:after,
.recruit__overview__jobs__block__title:before {
    background-color: #000;
    content: "";
    display: block;
    height: 1px;
    pointer-events: none;
    position: absolute;
    right: 2rem;
    top: 50%;
    transition: opacity .25s linear;
    width: 2rem
}

.recruit__overview__jobs__block__title:before {
    animation: jobPlusRotateBefore2 .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both;
    transform: rotate(0deg)
}

.recruit__overview__jobs__block__title:after {
    animation: jobPlusRotateAfter2 .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both;
    transform: rotate(90deg)
}

.recruit__overview__jobs__block.open .recruit__overview__jobs__block__title:before {
    animation: jobPlusRotateBefore1 .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both;
    opacity: 0
}

.recruit__overview__jobs__block.open .recruit__overview__jobs__block__title:after {
    animation: jobPlusRotateAfter1 .5s cubic-bezier(.19, 1, .22, 1) 0s 1 normal both
}

@keyframes jobPlusRotateBefore1 {
    0% {
        transform: rotate(0deg)
    }

    to {
        transform: rotate(90deg)
    }
}

@keyframes jobPlusRotateAfter1 {
    0% {
        transform: rotate(90deg)
    }

    to {
        transform: rotate(180deg)
    }
}

@keyframes jobPlusRotateBefore2 {
    0% {
        transform: rotate(90deg)
    }

    to {
        transform: rotate(180deg)
    }
}

@keyframes jobPlusRotateAfter2 {
    0% {
        transform: rotate(180deg)
    }

    to {
        transform: rotate(270deg)
    }
}

.recruit__overview__jobs__block__body {
    height: 0;
    overflow: hidden;
    position: relative;
    width: 100%
}

.recruit__overview__jobs__block.open .recruit__overview__jobs__block__body {
    height: auto
}

.recruit__overview__jobs__block.transitioning .recruit__overview__jobs__block__body {
    transition: height 1s cubic-bezier(.19, 1, .22, 1)
}

.recruit__overview__jobs__block__contents {
    height: auto;
    margin: 0 0 0 auto;
    padding-bottom: 3rem;
    position: relative;
    width: 66rem
}

@media (max-width:1023px) {
    .recruit__overview__section {
        height: auto;
        margin-top: 3rem;
        padding: 2rem 1.5rem 0;
        width: 100%
    }

    .recruit__overview__section+.recruit__overview__section {
        margin-top: 10rem
    }

    .recruit__overview__positions {
        margin: 4rem 0 0 auto;
        width: 100%
    }

    .recruit__overview__positions__section {
        display: block
    }

    .recruit__overview__positions__section+.recruit__overview__positions__section {
        border-top: 1px solid #ccc;
        margin-top: 5rem;
        padding-top: 5rem
    }

    .recruit__overview__positions__title {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        padding: 0;
        width: 100%
    }

    .recruit__overview__positions__body {
        margin-top: 3rem;
        width: 100%
    }

    .recruit__overview__positions__item dt {
        font-size: max(1.5rem, 15px);
        font-weight: 400;
        letter-spacing: 0;
        line-height: 1.3333333333em
    }

    .recruit__overview__positions__item dd {
        margin-top: 1rem
    }

    .recruit__overview__positions__item+.recruit__overview__positions__item {
        margin-top: 4rem
    }

    .recruit__overview__detail {
        margin: 4rem 0 0 auto;
        width: 100%
    }

    .recruit__overview__detail__title {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em
    }

    .recruit__overview__detail__body {
        margin-top: 2.5rem
    }

    .recruit__overview__detail__item dt {
        flex: 0 0 9rem;
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.2em;
        padding-right: 1.5rem;
        width: 9rem
    }

    .recruit__overview__detail__item dd {
        flex: 1 1 calc(100% - 9rem);
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.3846153846em;
        width: calc(100% - 9rem)
    }

    .recruit__overview__detail__item dd table {
        border: none;
        height: auto;
        width: -moz-fit-content;
        width: fit-content
    }

    .recruit__overview__detail__item dd table td,
    .recruit__overview__detail__item dd table th {
        font-weight: 400
    }

    .recruit__overview__detail__item dd table td+td,
    .recruit__overview__detail__item dd table th+th {
        padding-left: 1.5rem
    }

    .recruit__overview__detail__item dd table tr+tr td,
    .recruit__overview__detail__item dd table tr+tr th {
        padding-top: 1rem
    }

    .recruit__overview__detail__item+.recruit__overview__detail__item {
        margin-top: 2.4rem;
        padding-top: 2.4rem
    }

    .recruit__overview__figure,
    .recruit__overview__figure+* {
        margin-top: 6rem
    }

    .recruit__overview__entry {
        margin: 6rem 0 0 auto;
        width: 100%
    }

    .recruit__overview__entry__title {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        text-align: center
    }

    .recruit__overview__entry__body {
        gap: 1.5rem;
        margin-top: 3rem;
        width: 100%
    }

    .recruit__overview__entry__entrybtn {
        flex: 0 0 100%;
        width: 100%
    }

    .recruit__overview__entry__btn {
        flex: 0 0 calc(50% - 0.75rem);
        width: calc(50% - .75rem)
    }

    .recruit__overview__entry__btn .blockbtn__title {
        padding-left: 1rem;
        padding-right: 6.4rem
    }

    .recruit__overview__entry__btn .blockbtn__title img {
        display: block;
        height: auto;
        margin: 0 auto;
        max-width: 100%;
        width: auto
    }

    .recruit__overview__back {
        margin: 6rem auto 0;
        width: max(19.5rem, 195px)
    }

    .recruit__overview__jobs {
        margin: 4rem 0 0 auto;
        width: 100%
    }

    .recruit__overview__jobs__section+.recruit__overview__jobs__section {
        border-top: 1px solid #ccc;
        margin-top: 5rem;
        padding-top: 5rem
    }

    .recruit__overview__jobs__section__title {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em
    }

    .recruit__overview__jobs__section__body {
        margin-top: .5rem
    }

    .recruit__overview__jobs__block__title {
        font-size: max(1.5rem, 15px);
        letter-spacing: 0;
        line-height: 1.3333333333em;
        padding: 2.3rem 3.8rem 2.3rem 0
    }

    .recruit__overview__jobs__block__title span {
        display: inline-block;
        font-size: max(1.3rem, 13px);
        letter-spacing: 0;
        line-height: 1.5384615385em
    }

    .recruit__overview__jobs__block__title:after,
    .recruit__overview__jobs__block__title:before {
        right: 1rem;
        width: 1.8rem
    }

    .recruit__overview__jobs__block__body {
        height: 0;
        overflow: hidden;
        position: relative;
        width: 100%
    }

    .recruit__overview__jobs__block.open .recruit__overview__jobs__block__body {
        height: auto
    }

    .recruit__overview__jobs__block.transitioning .recruit__overview__jobs__block__body {
        transition: height 1s cubic-bezier(.19, 1, .22, 1)
    }

    .recruit__overview__jobs__block__contents {
        height: auto;
        margin: 0;
        padding-bottom: 3rem;
        width: 100%
    }
}

.recruit__stories__titleset__title {
    color: #039;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1em
}

.recruit__stories__titleset__lead {
    font-size: max(4.2rem, 42px);
    letter-spacing: 0;
    line-height: 1.2380952381em;
    margin-top: max(2rem, 20px)
}

.recruit__stories__header__main {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    gap: 0 6rem;
    justify-content: flex-start;
    margin: 10rem auto 0;
    position: relative
}

.recruit__stories__header__cover {
    flex: 0 0 60rem
}

.recruit__stories__header__cover__image {
    height: 60rem;
    position: relative;
    width: 60rem
}

.recruit__stories__header__cover__image img {
    display: block;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    width: 100%
}

.recruit__stories__header__cover__profile {
    margin-top: 3rem
}

.recruit__stories__header__cover__profile__position {
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em
}

.recruit__stories__header__cover__profile__name {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.1785714286em;
    margin-top: 1.2rem
}

.recruit__stories__header__cover__profile__en {
    color: #666;
    font-size: max(1.4rem, 14px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    margin-top: .6rem
}

.recruit__stories__header__intro {
    flex: 0 0 66rem
}

.recruit__stories__header__intro__titleset {
    width: calc(100% + max(2rem, 20px))
}

.recruit__stories__header__intro__body {
    margin-top: 6rem
}

.recruit__stories__header__intro__body p+p {
    margin-top: 2.4rem
}

.recruit__stories__main {
    margin: 0 auto;
    position: relative;
    transform: translateZ(0);
    width: calc(100% - 12rem);
    z-index: 1
}

.recruit__stories__group {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    margin-top: 20rem
}

.recruit__stories__group__image {
    aspect-ratio: 1/1;
    flex: 0 0 16.5rem;
    height: auto;
    overflow: hidden;
    position: relative;
    width: 16.5rem
}

.recruit__stories__group__image img {
    display: block;
    height: auto;
    width: 100%
}

.recruit__stories__group__main {
    flex: 0 0 66rem;
    height: auto;
    width: 66rem
}

.recruit__stories__group.layout-left .recruit__stories__group__image {
    order: 2
}

.recruit__stories__group.layout-left .recruit__stories__group__main {
    flex: 0 0 74rem;
    margin-right: auto;
    order: 1;
    padding-left: 8rem;
    width: 74rem
}

.recruit__stories__group.layout-right .recruit__stories__group__image {
    order: 1
}

.recruit__stories__group.layout-right .recruit__stories__group__main {
    margin-left: auto;
    order: 2
}

.recruit__stories__group.layout-center .recruit__stories__group__image {
    display: none
}

.recruit__stories__group.layout-center .recruit__stories__group__main {
    margin-left: auto;
    margin-right: auto;
    order: 1
}

.recruit__stories__section+.recruit__stories__section {
    border-top: 1px solid #ccc;
    margin-top: 10rem;
    padding-top: 10rem
}

.recruit__stories__section__titleset[id] {
    margin-top: -6rem;
    padding-top: 6rem
}

.recruit__stories__section__body {
    margin-top: 6rem
}

.recruit__stories__section__body p+p {
    margin-top: 2.4rem
}

.recruit__stories__section__body .figure {
    margin-top: 6rem
}

.recruit__stories__section__body .figure__img img {
    display: block;
    height: auto;
    margin: 0 auto;
    width: 100%
}

.recruit__stories__section__body .figure__img video {
    display: block;
    height: auto;
    margin: 0 auto;
    max-width: 100%
}

.recruit__stories__section__body .figure__img.border {
    border: 1px solid #ccc;
    padding: 4rem
}

.recruit__stories__section__body .figure__caption {
    color: grey;
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1.4166666667em;
    margin-top: 1.5rem
}

.recruit__stories__eyecatch {
    aspect-ratio: 1320/742;
    height: auto;
    margin: 20rem auto;
    overflow: hidden;
    position: relative;
    width: 100%
}

.recruit__stories__eyecatch img {
    display: block;
    height: 140.161725%;
    -o-object-fit: cover;
    object-fit: cover;
    -o-object-position: center;
    object-position: center;
    transform: translateY(calc(28.65385%*var(--progress)*-1));
    width: 100%
}

.recruit__stories__backstory {
    background-color: #f2f2f2;
    border-radius: .5rem;
    height: auto;
    margin-top: 20rem;
    padding: 0 3rem 3rem;
    position: relative;
    width: 100%
}

.recruit__stories__backstory__title {
    color: #039;
    font-size: max(2.4rem, 24px);
    letter-spacing: 0;
    line-height: 1.2083333333em;
    padding: 2.6rem 3rem;
    text-align: center
}

.recruit__stories__backstory__body {
    background-color: #fff;
    padding: 8rem 18rem
}

.recruit__stories__backstory__lead {
    font-size: max(2.8rem, 28px);
    letter-spacing: 0;
    line-height: 1.3571428571em;
    text-align: center
}

.recruit__stories__backstory__main {
    align-items: flex-start;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    margin-top: 4rem
}

.recruit__stories__backstory__main__images {
    flex: 0 0 21rem;
    width: 21rem
}

.recruit__stories__backstory__main__images .figure {
    position: relative;
    width: 100%
}

.recruit__stories__backstory__main__images .figure+.figure {
    margin-top: 6rem
}

.recruit__stories__backstory__main__images .figure__img img {
    display: block;
    height: auto;
    margin: 0 auto;
    width: 100%
}

.recruit__stories__backstory__main__images .figure__caption {
    color: grey;
    font-size: max(1.2rem, 12px);
    letter-spacing: 0;
    line-height: 1.4166666667em;
    margin-top: 1.5rem
}

.recruit__stories__backstory__main__text {
    flex: 0 0 60rem;
    margin-left: 9rem
}

.recruit__stories__backstory__main__text p+p {
    margin-top: 2.4rem
}

.recruit__stories__back {
    margin: 10rem auto 0;
    width: max(24rem, 240px)
}

@media (max-width:1023px) {
    .recruit__stories__titleset__title {
        color: #039;
        font-size: max(1.4rem, 14px);
        letter-spacing: 0;
        line-height: 1em
    }

    .recruit__stories__titleset__lead {
        font-size: max(2.8rem, 28px);
        letter-spacing: 0;
        line-height: 1.1785714286em;
        margin-top: max(1.5rem, 15px)
    }

    .recruit__stories__titleset__lead br {
        display: none
    }

    .recruit__stories__header__main {
        align-items: flex-start;
        display: flex;
        flex-flow: column nowrap;
        justify-content: flex-start;
        margin: 6rem auto 0
    }

    .recruit__stories__header__cover {
        flex: 0 0 auto;
        height: auto;
        margin: 0 auto;
        order: 1;
        width: 100%
    }

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

    .recruit__stories__header__cover__image img {
        aspect-ratio: 1/1;
        height: auto;
        width: 100%
    }

    .recruit__stories__header__cover__profile {
        margin-top: 1.6rem;
        text-align: right
    }

    .recruit__stories__header__cover__profile__position {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1.4545454545em;
        margin-top: 0
    }

    .recruit__stories__header__cover__profile__name {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: .8rem
    }

    .recruit__stories__header__cover__profile__en {
        font-size: max(1.1rem, 11px);
        letter-spacing: 0;
        line-height: 1em;
        margin-top: .8rem
    }

    .recruit__stories__header__intro {
        flex: 0 0 auto;
        height: auto;
        margin: 5rem auto 0;
        order: 2;
        width: 100%
    }

    .recruit__stories__header__intro__titleset {
        width: 100%
    }

    .recruit__stories__header__intro__body {
        margin-top: 3rem
    }

    .recruit__stories__header__intro__body p+p {
        margin-top: 2.3rem
    }

    .recruit__stories__main {
        width: 100%
    }

    .recruit__stories__group {
        display: block;
        margin: 10rem auto 0;
        width: calc(100% - 3rem)
    }

    .recruit__stories__group__image {
        width: 12rem
    }

    .recruit__stories__group__main {
        width: 100%
    }

    .recruit__stories__group.layout-left .recruit__stories__group__image {
        margin: 0 0 0 auto
    }

    .recruit__stories__group.layout-left .recruit__stories__group__main {
        margin: 3rem auto 0;
        padding: 0;
        width: 100%
    }

    .recruit__stories__group.layout-right .recruit__stories__group__image {
        margin: 0 auto 0 0
    }

    .recruit__stories__group.layout-right .recruit__stories__group__main {
        margin: 3rem auto 0;
        padding: 0;
        width: 100%
    }

    .recruit__stories__group.layout-center .recruit__stories__group__image {
        display: none
    }

    .recruit__stories__group.layout-center .recruit__stories__group__main {
        margin: 3rem auto 0;
        padding: 0;
        width: 100%
    }

    .recruit__stories__section+.recruit__stories__section {
        border-top: 1px solid #ccc;
        margin-top: 5rem;
        padding-top: 5rem
    }

    .recruit__stories__section__body {
        margin-top: 3.5rem
    }

    .recruit__stories__section__body .figure {
        margin-top: 4rem
    }

    .recruit__stories__section__body .figure__img.border {
        border: 1px solid #ccc;
        padding: 2rem
    }

    .recruit__stories__section__body .figure__caption {
        color: grey;
        font-size: max(1.2rem, 12px);
        letter-spacing: 0;
        line-height: 1.4166666667em;
        margin-top: 1.5rem
    }

    .recruit__stories__section__title {
        font-size: max(2.8rem, 28px);
        letter-spacing: 0;
        line-height: 1.1785714286em
    }

    .recruit__stories__section__title[id] {
        margin-top: -3rem;
        padding-top: 3rem
    }

    .recruit__stories__section__lead {
        font-size: max(1.8rem, 18px);
        letter-spacing: 0;
        line-height: 1.2777777778em
    }

    .recruit__stories__section__lead:not(:first-child) {
        margin-top: 5rem
    }

    .recruit__stories__section__title+.recruit__stories__section__lead {
        margin-top: 3.5rem
    }

    .recruit__stories__section__lead br,
    .recruit__stories__section__lead:before {
        display: none
    }

    .recruit__stories__eyecatch {
        aspect-ratio: 3/2;
        margin: 10rem auto
    }

    .recruit__stories__eyecatch img {
        display: block;
        height: 140.161725%;
        -o-object-fit: cover;
        object-fit: cover;
        -o-object-position: center;
        object-position: center;
        transform: translateY(calc(28.65385%*var(--progress)*-1));
        width: 100%
    }

    .recruit__stories__backstory {
        margin: 10rem auto 0;
        padding: 0 1.5rem 1.5rem;
        width: calc(100% - 3rem)
    }

    .recruit__stories__backstory__title {
        font-size: max(1.8rem, 18px);
        letter-spacing: 0;
        line-height: 1.2777777778em;
        padding: 1.8rem 1.5rem
    }

    .recruit__stories__backstory__body {
        padding: 4rem 2rem
    }

    .recruit__stories__backstory__lead {
        font-size: max(2.1rem, 21px);
        letter-spacing: 0;
        line-height: 1.2380952381em;
        text-align: left
    }

    .recruit__stories__backstory__lead br {
        display: none
    }

    .recruit__stories__backstory__main {
        display: flex;
        flex-flow: column nowrap;
        margin-top: 3rem
    }

    .recruit__stories__backstory__main__images {
        flex: 0 0 auto;
        margin: 4rem auto 0;
        order: 2;
        width: 19.5rem
    }

    .recruit__stories__backstory__main__images .figure {
        position: relative;
        width: 100%
    }

    .recruit__stories__backstory__main__images .figure+.figure {
        margin-top: 3rem
    }

    .recruit__stories__backstory__main__images .figure__img img {
        display: block;
        height: auto;
        margin: 0 auto;
        width: 100%
    }

    .recruit__stories__backstory__main__images .figure__caption {
        color: grey;
        font-size: max(1.2rem, 12px);
        letter-spacing: 0;
        line-height: 1.4166666667em;
        margin-top: 1.5rem
    }

    .recruit__stories__backstory__main__text {
        flex: 0 0 auto;
        margin: 0 auto;
        order: 1;
        width: 100%
    }

    .recruit__stories__backstory__main__text p+p {
        margin-top: 2.3rem
    }

    .recruit__stories__back {
        margin: 10rem auto 0;
        width: max(19.5rem, 195px)
    }
}

/* Addred by Azim 2025-06-26 ~*/
/* Company Page Image Size Fix Based on Base Structure */
.page_header_visual {
    font-size: 0; /* Removes inline-block whitespace */
}

.page_header_visual > div {
    display: inline-block;
    vertical-align: top;
}

.page_header_visual_image1 {
    margin-right: 10px; /* Optional spacing */
}

.page_header_visual_image2,
.page_header_visual_image3 {
    width: 300px;
    height: auto;
}

.page_header_visual_image3 {
    margin-top: 30px; /* This will push the third image down */
}


/* Addred ny Azim 2025-07-1 ~*/
/* Contact Page */
/* Fix input text color for Contact Page */
/* Contact page: black background + white text input fixes *//* Contact page: black background + white text input fixes */
body.contact {
  background-color: #000 !important;
}

.contactform input,
.contactform select,
.contactform textarea {
  color: #fff !important;
  background-color: transparent !important;
  border: 1px solid #666 !important;
}

.contactform input::placeholder,
.contactform textarea::placeholder {
  color: #aaa !important;
}

.contactform label {
  color: #fff !important;
}

/* Fix checkbox visibility and tick */
.contactform input[type="checkbox"] {
  accent-color: #fff !important;
  width: 18px;
  height: 18px;
}

/* Fix submit button (confirm) visibility */
.contactform__button .blockbtn {
  background-color: #fff !important;
  color: #000 !important;
  border: none !important;
  font-weight: bold;
}


/* Added by Azim 07/17/2025 */
/* Force checkbox to be visible */
input[type="checkbox"] {
  accent-color: black;
  width: 18px;
  height: 18px;
}

/* Confirm Button on hover */
button[type="submit"]:hover {
  background-color: white;
  color: black;
  border: 1px solid black;
}